Răsfoiți Sursa

商品导出调整

yzc 2 ani în urmă
părinte
comite
279838f9f8

+ 12 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/KwpGoodsController.java

@@ -1,6 +1,10 @@
 package com.sckw.product.controller;
 
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.easyexcel.RequestHolder;
+import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.product.model.GoodsListExport;
 import com.sckw.product.model.vo.req.*;
 import com.sckw.product.service.KwpGoodsService;
 import jakarta.servlet.http.HttpServletResponse;
@@ -107,8 +111,14 @@ public class KwpGoodsController {
      * @return: com.sckw.core.web.response.HttpResult
      */
     @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
-    public void export(@RequestBody ExportGoodsListParam params, HttpServletResponse response) {
-        kwpGoodsService.export(params,response);
+    public HttpResult export(@RequestBody ExportGoodsListParam params) {
+        HttpServletResponse response = RequestHolder.getResponse();
+        List<GoodsListExport> list = kwpGoodsService.export(params);
+        if (CollectionUtils.isNotEmpty(list)) {
+            ExcelUtil.download(response, GoodsListExport.class, list);
+            return HttpResult.ok();
+        }
+        return HttpResult.error("没有可导出的数据");
     }
 
 

+ 4 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/GoodsListExport.java

@@ -5,6 +5,8 @@ import com.sckw.excel.annotation.ExcelContext;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * @desc: 商品列表导出对象
  * @author: yzc
@@ -12,8 +14,8 @@ import lombok.experimental.Accessors;
  */
 @Data
 @Accessors(chain = true)
-@ExcelContext(sheetName = "商品列表信息",fileName = "商品列表信息")
-public class GoodsListExport {
+@ExcelContext(fileName = "商品列表信息", sheetName = "商品列表信息")
+public class GoodsListExport implements Serializable {
 
     @ExcelProperty(value = "上架状态", index = 0)
     private String statusLabel;

+ 6 - 8
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -17,7 +17,6 @@ import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.DateUtil;
-import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.product.dao.KwpGoodsMapper;
 import com.sckw.product.enums.GoodsStatusEnum;
 import com.sckw.product.model.*;
@@ -27,7 +26,6 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysAreaCacheResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
-import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -458,9 +456,12 @@ public class KwpGoodsService {
      * @Param params:
      * @return: void
      */
-    public void export(ExportGoodsListParam params, HttpServletResponse response) {
+    public List<GoodsListExport> export(ExportGoodsListParam params) {
         PageResult pageResult = select(BeanUtils.copyProperties(params, SelectGoodsListParam.class), false);
         List<GoodsList> goodsLists = pageResult.getList();
+        if (CollectionUtils.isEmpty(goodsLists)) {
+            return Collections.emptyList();
+        }
         List<GoodsListExport> list = new ArrayList<>();
         goodsLists.forEach(e -> {
             GoodsListExport export = BeanUtils.copyProperties(e, GoodsListExport.class);
@@ -470,11 +471,8 @@ public class KwpGoodsService {
                     .setAddedTime(Objects.isNull(e.getShelfTime()) ? null : DateUtil.getDateTime(e.getShelfTime()));
             list.add(export);
         });
-        try {
-            ExcelUtil.download(response, GoodsListExport.class, list);
-        } catch (Exception e) {
-            throw new BusinessException("导出商品列表异常", e.getMessage());
-        }
+        return list;
+
     }
 
     /**