Commit 39a6eb4792b11df14100a65573a52bc3419c86bb
1 parent
efd0a860
【代码优化】拼团活动和SPU详情分开查询
Showing
3 changed files
with
6 additions
and
30 deletions
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. 构建结果列表 | ... | ... |