package platform.modules.carrier.web; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import platform.common.base.controller.BaseController; import platform.common.base.service.DictionaryItemService; import platform.common.util.excel.DynamicOneSheetEasyExcel; import platform.common.util.excel.OneSheetEasyExcel; import platform.modules.carrier.dto.CustomSearchCondition; import platform.modules.carrier.dto.SearchCondition; import platform.modules.carrier.entity.Park; import platform.modules.carrier.entity.RentalProject; import platform.modules.carrier.service.ParkService; import platform.modules.carrier.service.RentalProjectService; import platform.modules.government.entity.Street; import platform.modules.government.service.StreetService; import platform.modules.sys.web.ResponseMessage; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author kevin * @since 2019/7/4 10:20 AM */ @RestController @RequestMapping("/platform") public class PlatformController extends BaseController { @Autowired private RentalProjectService rentalProjectService; @Autowired private StreetService streetService; @Autowired private DictionaryItemService dictionaryItemService; @Autowired private ParkService parkService; /** * 我的项目查询 * * @param condition * @return * @throws Exception */ @PostMapping(value = "/rentals") @ResponseBody public ResponseMessage list(@RequestBody CustomSearchCondition condition) throws Exception { log.info("分页查询招商信息,pageNum = {},condition = {}", condition.getPageNum(), condition.toString(), false); condition.setFile_url(setFileUrl()); PageInfo pageInfo = rentalProjectService.findMyList(condition.getPageNum(), condition.getPageSize(), condition); log.info("分页查询招商信息列表结果! pageInfo = {}", pageInfo); return ResponseMessage.success("success", pageInfo); } /** * 获取所有园区 * * @return */ @GetMapping("/parkPages") public Object getCarrierInfo( @RequestParam(defaultValue = "1", required = false) Integer pageNum, @RequestParam(defaultValue = "10", required = false) Integer pageSize, SearchCondition condition){ condition.setFileUrl(setFileUrl()); PageInfo pageInfo = parkService.findParkList(pageNum, pageSize, condition); return ResponseMessage.success("success", pageInfo); } /** * 获取所有园区 * 本地导出链接:localhost:8080/myboot/platform/exportPageInfo * @return */ @GetMapping("/exportPageInfo") public Object exportCarrierInfo( HttpServletResponse response, SearchCondition condition ) throws IOException, IllegalAccessException { condition.setFileUrl(setFileUrl()); PageInfo pageInfo = parkService.findParkList(1, 10000, condition); OneSheetEasyExcel excel = new DynamicOneSheetEasyExcel(); // 这里URLEncoder.encode可以防止中文乱码 String fileName = URLEncoder.encode("园区信息", "UTF-8"); // 设置excel文件名称 excel.setName(fileName); // 设置sheet名称,只导出一个sheet,所以只设置一次 excel.setSheetName("data"); // 按顺序设置列头 excel.setHeader("ID") .setHeader("编号") .setHeader("名称") .setHeader("位置") .setHeader("logo图片地址") .setHeader("所属街道ID") .setHeader("所属街道名称") // .setHeader("面积") // .setHeader("剩余可用面积") .setHeader("内容(园内特色服务)") .setHeader("园区概况介绍") .setHeader("园区概况介绍-超出"); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); // 设置返回文件名称 response.setHeader("Content-disposition", "attachment;filename=" + excel.getName()); // 准备数据 , 下面这部分代码可以直接由service里完成 List> data = new ArrayList<>(); List list = pageInfo.getList(); list.forEach(park -> { String overview = park.getOverview(); String overview2 = ""; if (overview !=null && overview.length() > 32000) { overview = park.getOverview().substring(0, 32000); overview2 = park.getOverview().substring(32000); } String content = park.getContent(); // if (content != null && content.length() > 32000) { // content = park.getContent().substring(0, 32000); // } String picUrl = ""; if (park.getMain_pic_url() != null) { picUrl = "http://escloud.snd.gov.cn/uploads" + park.getMain_pic_url(); } data.add( Arrays.asList( park.getId().toString(), park.getNo(), park.getName(), park.getLocation(), picUrl, park.getStreet_id().toString(), park.getStreetName(), // park.getArea().toString(), // park.getRest_area().toString(), content, overview, overview2 )); }); // 将准备好的data 塞入excel对象里,实现导出 excel.exportData(data, response); return ResponseMessage.success("success"); } /** * 获取所有街道 * * @return */ @GetMapping("/streets") public Object getStreetList(){ Street street = new Street(); street.setIs_start(true); List streets = streetService.findListByWhere(street); return ResponseMessage.success("success", streets); } }