package com.leeroa.dydb.datasource.qiyu.web; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.leeroa.base.utils.DownloadResponseWrapper; import com.leeroa.base.utils.export.ExcelUtils; import com.leeroa.dydb.cache.ScheduleLock; import com.leeroa.dydb.datasource.lianjia.bo.DataLianjiaCodeBo; import com.leeroa.dydb.datasource.lianjia.domain.DataLianjiaCode; import com.leeroa.dydb.datasource.lianjia.service.DataLianjiaCodeService; import com.leeroa.dydb.datasource.qiyu.bo.DataQiYuDealBo; import com.leeroa.dydb.datasource.qiyu.domain.DataQiYuDeal; import com.leeroa.dydb.datasource.qiyu.service.DataQiYuDealService; import com.leeroa.dydb.datasource.qiyu.vo.DataQiYuDealVo; import com.leeroa.utils.gson.DoubleAdapter; import com.michael.common.JspAccessType; import com.michael.core.pager.PageVo; import com.michael.core.web.BaseController; import com.michael.poi.exp.ExportEngine; import com.michael.utils.gson.DateStringConverter; import com.michael.utils.gson.GsonUtils; import org.apache.commons.io.IOUtils; import org.springframework.stereotype.Controller; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * @author Michael */ @Controller @RequestMapping(value = {"/dydb/datasource/dataQiYuDeal"}) public class DataQiYuDealCtrl extends BaseController { @Resource private DataQiYuDealService dataQiYuDealService; @Resource private DataLianjiaCodeService dataLianjiaCodeService; @RequestMapping(value = {""}, method = RequestMethod.GET) public String toList() { return "dydb/datasource/dataQiYuDeal/dataQiYuDeal_list"; } @RequestMapping(value = "/add", method = RequestMethod.GET) public String toAdd(HttpServletRequest request) { request.setAttribute(JspAccessType.PAGE_TYPE, JspAccessType.ADD); return "dydb/datasource/dataQiYuDeal/dataQiYuDeal_edit"; } @RequestMapping(value = "/save", method = RequestMethod.POST) @ResponseBody public void save(HttpServletRequest request, HttpServletResponse response) { DataQiYuDeal dataQiYuDeal = GsonUtils.wrapDataToEntity(request, DataQiYuDeal.class); dataQiYuDealService.save(dataQiYuDeal); GsonUtils.printSuccess(response); } @RequestMapping(value = "/modify", params = {"id"}, method = RequestMethod.GET) public String toModify(@RequestParam String id, HttpServletRequest request) { request.setAttribute(JspAccessType.PAGE_TYPE, JspAccessType.MODIFY); request.setAttribute("id", id); return "dydb/datasource/dataQiYuDeal/dataQiYuDeal_edit"; } @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody public void update(HttpServletRequest request, HttpServletResponse response) { DataQiYuDeal dataQiYuDeal = GsonUtils.wrapDataToEntity(request, DataQiYuDeal.class); dataQiYuDealService.update(dataQiYuDeal); GsonUtils.printSuccess(response); } @RequestMapping(value = {"/detail"}, params = {"id"}, method = RequestMethod.GET) public String toDetail(@RequestParam String id, HttpServletRequest request) { request.setAttribute(JspAccessType.PAGE_TYPE, JspAccessType.DETAIL); request.setAttribute("id", id); return "dydb/datasource/dataQiYuDeal/dataQiYuDeal_edit"; } @ResponseBody @RequestMapping(value = "/get", params = {"id"}, method = RequestMethod.GET) public void findById(@RequestParam String id, HttpServletResponse response) { DataQiYuDealVo vo = dataQiYuDealService.findById(id); GsonUtils.printData(response, vo); } @ResponseBody @RequestMapping(value = "/pageQuery", method = RequestMethod.POST) public void pageQuery(HttpServletRequest request, HttpServletResponse response) { DataQiYuDealBo bo = GsonUtils.wrapDataToEntity(request, DataQiYuDealBo.class); PageVo pageVo = dataQiYuDealService.pageQuery(bo); GsonUtils.printData(response, pageVo); } @ResponseBody @RequestMapping(value = "/query", method = RequestMethod.POST) public void query(HttpServletRequest request, HttpServletResponse response) { DataQiYuDealBo bo = GsonUtils.wrapDataToEntity(request, DataQiYuDealBo.class); List vos = dataQiYuDealService.query(bo); GsonUtils.printData(response, vos); } @ResponseBody @RequestMapping(value = "/delete", method = RequestMethod.POST) public void deleteByIds(HttpServletRequest request, HttpServletResponse response) { String[] ids = GsonUtils.wrapDataToEntity(request, String[].class); dataQiYuDealService.deleteByIds(ids); GsonUtils.printSuccess(response); } // 导出数据 @RequestMapping(value = "/export", method = RequestMethod.GET) public String export(HttpServletRequest request, HttpServletResponse response) throws IOException { Gson gson = new GsonBuilder() .registerTypeAdapter(Date.class, new DateStringConverter("yyyy-MM-dd HH:mm:ss")) .registerTypeAdapter(Double.class,new DoubleAdapter()) .create(); DataQiYuDealBo bo = GsonUtils.wrapDataToEntity(request, DataQiYuDealBo.class); List data = dataQiYuDealService.query(bo); String json = gson.toJson(data); JsonElement element = gson.fromJson(json, JsonElement.class); JsonObject o = new JsonObject(); o.add("c", element); DownloadResponseWrapper.wrap(response, "七鱼成交数据" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + ".xlsx"); InputStream inputStream = DataQiYuDealCtrl.class.getClassLoader().getResourceAsStream("exp/export_dataQiyuDeal.xlsx"); Assert.notNull(inputStream, "数据导出失败!模板文件不存在,请与管理员联系!"); new ExportEngine().export(response.getOutputStream(), inputStream, o); return null; } // 全部导出 @RequestMapping(value = "/export-all", method = RequestMethod.GET) public void exportAll(HttpServletRequest request, HttpServletResponse response) throws IOException { DownloadResponseWrapper.wrap(response, "七鱼成交.xlsx"); ExcelUtils.export(DataQiYuDeal.class, response.getOutputStream()); } // 下载模板 @RequestMapping(value = "/template", method = RequestMethod.GET) public void downloadTemplate(HttpServletRequest request, HttpServletResponse response) throws IOException { InputStream input = DataQiYuDealCtrl.class.getClassLoader().getResourceAsStream("import_dataQiYuDeal.xlsx"); if (input == null) { request.setAttribute("javax.servlet.error.message", "模板[import_dataQiYuDeal.xlsx]不存在!"); request.getRequestDispatcher("/app/500.jsp"); return; } DownloadResponseWrapper.wrap(response, "七鱼成交数据导入模板.xlsx"); IOUtils.copy(input, response.getOutputStream()); } // 跳转到导入页面 @RequestMapping(value = "/import", method = RequestMethod.GET) public String toImport(HttpServletRequest request) { return "dydb/datasource/dataQiYuDeal/dataQiYuDeal_import"; } // 执行导入(通过DTO模板的方式) @ResponseBody @RequestMapping(value = "/import", method = RequestMethod.POST) public void importData(HttpServletRequest request, HttpServletResponse response) { String[] o = GsonUtils.wrapDataToEntity(request, String[].class); ScheduleLock.getInstance().lock(); int total = dataQiYuDealService.importData(o); ScheduleLock.getInstance().release(); GsonUtils.printData(response, total); } // 获取成都的所有区域信息 @RequestMapping("/citymap") @ResponseBody public void queryCityMap(HttpServletRequest request, HttpServletResponse response) { //GsonUtils.printData(response, LianjiaUtils.getCityMap()); DataLianjiaCodeBo bo = GsonUtils.wrapDataToEntity(request, DataLianjiaCodeBo.class); List cityMap = dataLianjiaCodeService.queryCityMap(bo); GsonUtils.printData(response, cityMap); } }