Browse Source

【代码优化】拼团活动和SPU详情分开查询

卢越 10 months ago
parent
commit
39a6eb4792

+ 3 - 16
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/combination/CombinationActivityController.java

@@ -100,32 +100,19 @@ public class CombinationActivityController {
         // 转换活动列表
         List<CombinationActivityRespVO> activityVOs = CombinationActivityConvert.INSTANCE.convertList(activities);
 
-        // 获取商品SPU列表和拼团产品列表
-        Set<Long> spuIds = activities.stream().map(CombinationActivityDO::getSpuId).collect(Collectors.toSet());
-        List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(spuIds);
-
+        // 获取拼团产品列表
         Set<Long> activityIds = activities.stream().map(CombinationActivityDO::getId).collect(Collectors.toSet());
         List<CombinationProductDO> productList = combinationActivityService.getCombinationProductListByActivityIds(activityIds);
 
         // 创建SPU和产品的映射
-        Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId);
         Map<Long, List<CombinationProductDO>> productMap = convertMultiMap(productList, CombinationProductDO::getActivityId);
 
-        // 更新VO列表
-        activityVOs.forEach(vo -> {
-            ProductSpuRespDTO spu = spuMap.get(vo.getSpuId());
-            if (spu != null) {
-                vo.setSpuName(spu.getName())
-                        .setPicUrl(spu.getPicUrl())
-                        .setMarketPrice(spu.getMarketPrice());
-            }
-            vo.setProducts(CombinationActivityConvert.INSTANCE.convertList2(productMap.get(vo.getId())));
-        });
+        // 往活动VO赋值产品列表
+        activityVOs.forEach(vo -> vo.setProducts(CombinationActivityConvert.INSTANCE.convertList2(productMap.get(vo.getId()))));
 
         return success(activityVOs);
     }
 
-
     @GetMapping("/page")
     @Operation(summary = "获得拼团活动分页")
     @PreAuthorize("@ss.hasPermission('promotion:combination-activity:query')")

+ 0 - 12
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/combination/vo/activity/CombinationActivityRespVO.java

@@ -27,16 +27,4 @@ public class CombinationActivityRespVO extends CombinationActivityBaseVO {
     @Schema(description = "拼团商品", requiredMode = Schema.RequiredMode.REQUIRED)
     private List<CombinationProductRespVO> products;
 
-    // ========== 商品字段 ==========
-
-    @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 name 读取
-            example = "618大促")
-    private String spuName;
-    @Schema(description = "商品主图", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 picUrl 读取
-            example = "https://www.iocoder.cn/xx.png")
-    private String picUrl;
-    @Schema(description = "商品市场价,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 marketPrice 读取
-            example = "50")
-    private Integer marketPrice;
-
 }

+ 3 - 2
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationActivityController.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.promotion.controller.app.combination;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
@@ -126,9 +127,9 @@ public class AppCombinationActivityController {
                         !ObjectUtil.equal(combinationActivityDO.getStatus(), CommonStatusEnum.DISABLE.getStatus()))
                 .toList();
 
-        // 如果没有有效的活动,返回 null 或者适当的错误信息
+        // 如果没有有效的活动,返回空列表
         if (validActivities.isEmpty()) {
-            return success(null);
+            return success(ListUtil.empty());
         }
 
         // 2. 构建结果列表