package com.cdf.controller.back; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.cdf.common.PageInfo; import com.cdf.common.ResultData; import com.cdf.entity.Shop; import com.cdf.httpClient.client.CdfClient; import com.cdf.httpClient.client.FdkkClient; import com.cdf.httpClient.request.FdkkAllSceneRequest; import com.cdf.httpClient.response.FdkkResponse; import com.cdf.httpClient.response.cdf.CdfProductListRequest; import com.cdf.request.ShopRequest; import com.cdf.response.ShopVo; import com.cdf.schedule.ScheduleTask; import com.cdf.service.IShopService; import com.cdf.util.ExcelUtil; import com.cdf.util.ReadCmdLine; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; @RestController public class TestController { @Autowired IShopService shopService; @Resource CdfClient cdfClient; @Autowired private ScheduleTask scheduleTask; @Resource FdkkClient fdkkClient; @RequestMapping("/test/getProductById") public ResultData getProductById(@RequestParam(required = false) String productId){ return ResultData.ok(cdfClient.getProductById(productId)); } @RequestMapping("/test/getProductList") public ResultData getProductList(@RequestBody CdfProductListRequest param){ return ResultData.ok(cdfClient.getProductList(param)); } @RequestMapping("/test/getCatNum") public ResultData getCatNum(@RequestParam(required = false) String accessToken){ return ResultData.ok(cdfClient.getCatNum(accessToken)); } @RequestMapping("/test/task") public ResultData statisticsH5Data(@RequestParam(required = false) String day) throws Exception { if(StringUtils.isNotBlank(day)){ ScheduleTask.day = day; } scheduleTask.statisticsH5Data(); return ResultData.ok(); } @RequestMapping("/test/shell") public ResultData shell(@RequestParam(required = false) String day) throws Exception { String sell = "aws s3 sync s3://4dkankan/cdf s3://4dage-moderate2/cdf --profile user1"; ReadCmdLine.callShellByExec(sell); return ResultData.ok(); } @RequestMapping("/test/one") public ResultData test1(@RequestHeader String token) throws Exception{ FdkkResponse allScene = fdkkClient.getAllScene(new FdkkAllSceneRequest() ,token); return ResultData.ok(allScene); } @GetMapping("/export") public void export(HttpServletRequest request, HttpServletResponse response) throws Exception { ShopRequest param = new ShopRequest(); param.setPageNum(1); param.setPageSize(1000); PageInfo pageInfo = shopService.pageList(param); List list = (List) pageInfo.getList(); this.commonExport(request,response,"店铺列表",list,ShopVo.class); } @PostMapping("uploadExcel") public ResultData uploadExcel(@RequestParam(required = false) MultipartFile file) throws IOException { List> excelRowList = ExcelUtil.getExcelRowList(file); for (HashMap map : excelRowList) { String id = map.get(2); String sort = map.get(4); LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Shop::getId,id); wrapper.set(Shop::getSort,sort); shopService.update(wrapper); } return ResultData.ok(); } public void commonExport(HttpServletRequest request, HttpServletResponse response, String name, List result, Class clazz) throws Exception { response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = name + ".xlsx"; fileName = URLEncoder.encode(fileName, "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName); ExcelWriter excelWriter = null; try { excelWriter = EasyExcel.write(response.getOutputStream(), clazz).build(); WriteSheet writeSheet = EasyExcel.writerSheet(name).build(); excelWriter.write(result, writeSheet); }catch (Exception e){ e.printStackTrace(); }finally { if(excelWriter != null){ excelWriter.finish(); } } } }