Commit 39a6eb4792b11df14100a65573a52bc3419c86bb

Authored by 卢越
1 parent efd0a860

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

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 {
100 100 // 转换活动列表
101 101 List<CombinationActivityRespVO> activityVOs = CombinationActivityConvert.INSTANCE.convertList(activities);
102 102  
103   - // 获取商品SPU列表和拼团产品列表
104   - Set<Long> spuIds = activities.stream().map(CombinationActivityDO::getSpuId).collect(Collectors.toSet());
105   - List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(spuIds);
106   -
  103 + // 获取拼团产品列表
107 104 Set<Long> activityIds = activities.stream().map(CombinationActivityDO::getId).collect(Collectors.toSet());
108 105 List<CombinationProductDO> productList = combinationActivityService.getCombinationProductListByActivityIds(activityIds);
109 106  
110 107 // 创建SPU和产品的映射
111   - Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId);
112 108 Map<Long, List<CombinationProductDO>> productMap = convertMultiMap(productList, CombinationProductDO::getActivityId);
113 109  
114   - // 更新VO列表
115   - activityVOs.forEach(vo -> {
116   - ProductSpuRespDTO spu = spuMap.get(vo.getSpuId());
117   - if (spu != null) {
118   - vo.setSpuName(spu.getName())
119   - .setPicUrl(spu.getPicUrl())
120   - .setMarketPrice(spu.getMarketPrice());
121   - }
122   - vo.setProducts(CombinationActivityConvert.INSTANCE.convertList2(productMap.get(vo.getId())));
123   - });
  110 + // 往活动VO赋值产品列表
  111 + activityVOs.forEach(vo -> vo.setProducts(CombinationActivityConvert.INSTANCE.convertList2(productMap.get(vo.getId()))));
124 112  
125 113 return success(activityVOs);
126 114 }
127 115  
128   -
129 116 @GetMapping("/page")
130 117 @Operation(summary = "获得拼团活动分页")
131 118 @PreAuthorize("@ss.hasPermission('promotion:combination-activity:query')")
... ...
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 {
27 27 @Schema(description = "拼团商品", requiredMode = Schema.RequiredMode.REQUIRED)
28 28 private List<CombinationProductRespVO> products;
29 29  
30   - // ========== 商品字段 ==========
31   -
32   - @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 name 读取
33   - example = "618大促")
34   - private String spuName;
35   - @Schema(description = "商品主图", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 picUrl 读取
36   - example = "https://www.iocoder.cn/xx.png")
37   - private String picUrl;
38   - @Schema(description = "商品市场价,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, // 从 SPU 的 marketPrice 读取
39   - example = "50")
40   - private Integer marketPrice;
41   -
42 30 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationActivityController.java
1 1 package cn.iocoder.yudao.module.promotion.controller.app.combination;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.collection.ListUtil;
4 5 import cn.hutool.core.util.ObjectUtil;
5 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
... ... @@ -126,9 +127,9 @@ public class AppCombinationActivityController {
126 127 !ObjectUtil.equal(combinationActivityDO.getStatus(), CommonStatusEnum.DISABLE.getStatus()))
127 128 .toList();
128 129  
129   - // 如果没有有效的活动,返回 null 或者适当的错误信息
  130 + // 如果没有有效的活动,返回空列表
130 131 if (validActivities.isEmpty()) {
131   - return success(null);
  132 + return success(ListUtil.empty());
132 133 }
133 134  
134 135 // 2. 构建结果列表
... ...