From dc181d4428c85f681d342e2ca5c7760aea5f254d Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期五, 08 八月 2025 17:22:53 +0800 Subject: [PATCH] 导出,商品标签 --- framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 92 insertions(+), 5 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java index 8fb237a..b80f5b5 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java @@ -15,10 +15,7 @@ import cn.lili.common.security.context.UserContext; import cn.lili.common.security.enums.UserEnums; import cn.lili.modules.goods.entity.dos.*; -import cn.lili.modules.goods.entity.dto.GoodsOperationDTO; -import cn.lili.modules.goods.entity.dto.GoodsParamsDTO; -import cn.lili.modules.goods.entity.dto.GoodsSearchParams; -import cn.lili.modules.goods.entity.dto.GoodsSortDTO; +import cn.lili.modules.goods.entity.dto.*; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.vos.GoodsSkuVO; @@ -50,6 +47,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +58,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @@ -311,9 +315,91 @@ return this.page(PageUtil.initPage(goodsSearchParams), goodsSearchParams.queryWrapper()); } + @Override + public void queryExportGoods(HttpServletResponse response, GoodsSearchParams searchParams) { + List<Goods> list = this.list(searchParams.queryWrapper()); + + XSSFWorkbook workbook = initGoodsExportData(list); + try { + // 璁剧疆鍝嶅簲澶� + String fileName = URLEncoder.encode("鍟嗗搧娓呭崟", "UTF-8"); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); + + ServletOutputStream out = response.getOutputStream(); + workbook.write(out); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + workbook.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + private XSSFWorkbook initGoodsExportData(List<Goods> list) { + List<GoodsExportDTO> goodsExportDTOs = new ArrayList<>(); + for (Goods goods : list) { + GoodsExportDTO goodsExportDTO = new GoodsExportDTO(); + BeanUtils.copyProperties(goods, goodsExportDTO); + goodsExportDTOs.add(goodsExportDTO); + } + + XSSFWorkbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet("鍟嗗搧娓呭崟"); + Row header = sheet.createRow(0); + String[] headers = {"鍟嗗搧鍚嶇О", "鍟嗗搧缂栧彿", "浠锋牸", "閿�鍞ā寮�", "鍟嗗搧绫诲瀷", "鐘舵��", "瀹℃牳鐘舵��", "搴楅摵鍚嶇О"}; + for (int i = 0; i < headers.length; i++) { + Cell cell = header.createCell(i); + cell.setCellValue(headers[i]); + } + for (int i = 0; i < goodsExportDTOs.size(); i++) { + GoodsExportDTO goodsExportDTO = goodsExportDTOs.get(i); + Row row = sheet.createRow(i + 1); + row.createCell(0).setCellValue(goodsExportDTO.getGoodsName()); + row.createCell(1).setCellValue(goodsExportDTO.getId()); + row.createCell(2).setCellValue(goodsExportDTO.getPrice()); + if ("RETAIL".equals(goodsExportDTO.getSalesModel())) { + row.createCell(3).setCellValue("闆跺敭"); + } else if ("WHOLESALE".equals(goodsExportDTO.getSalesModel())) { + row.createCell(3).setCellValue("鎵瑰彂"); + } else if ("PRESALE".equals(goodsExportDTO.getSalesModel())) { + row.createCell(3).setCellValue("棰勫敭"); + } else { + row.createCell(3).setCellValue("鍏朵粬绫诲瀷"); + } + + if ("PHYSICAL_GOODS".equals(goodsExportDTO.getGoodsType())) { + row.createCell(4).setCellValue("瀹炵墿鍟嗗搧"); + } else if ("VIRTUAL_GOODS".equals(goodsExportDTO.getGoodsType())) { + row.createCell(4).setCellValue("铏氭嫙鍟嗗搧"); + } else { + row.createCell(4).setCellValue("鐢靛瓙鍗″埜"); + } + + if ("DOWN".equals(goodsExportDTO.getMarketEnable())) { + row.createCell(5).setCellValue("涓嬫灦"); + } else if ("UPPER".equals(goodsExportDTO.getMarketEnable())) { + row.createCell(5).setCellValue("涓婃灦"); + } + + if ("TOBEAUDITED".equals(goodsExportDTO.getAuthFlag())) { + row.createCell(6).setCellValue("寰呭鏍�"); + } else if ("PASS".equals(goodsExportDTO.getAuthFlag())) { + row.createCell(6).setCellValue("閫氳繃"); + } else if ("REFUSE".equals(goodsExportDTO.getAuthFlag())) { + row.createCell(6).setCellValue("鎷掔粷"); + } + row.createCell(7).setCellValue(goodsExportDTO.getStoreName()); + + } + return workbook; + } /** * 鍟嗗搧鏌ヨ - * + *g * @param goodsSearchParams 鏌ヨ鍙傛暟 * @return 鍟嗗搧淇℃伅 */ @@ -587,6 +673,7 @@ this.baseMapper.addGoodsCommentNum(commentNum, goodsId); } + /** * 鏇存柊鍟嗗搧鐘舵�� * -- Gitblit v1.8.0