Commit 6d00b02795e0bf18c6435d72b92b39410df91660

Authored by 芋道源码
Committed by Gitee
2 parents 0ce0c3f3 39a6eb47

!1073 代码补充

Merge pull request !1073 from 卢越/master-jdk17
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/combination/CombinationActivityController.java
... ... @@ -16,19 +16,21 @@ import cn.iocoder.yudao.module.promotion.service.combination.CombinationRecordSe
16 16 import io.swagger.v3.oas.annotations.Operation;
17 17 import io.swagger.v3.oas.annotations.Parameter;
18 18 import io.swagger.v3.oas.annotations.tags.Tag;
  19 +import jakarta.annotation.Resource;
  20 +import jakarta.validation.Valid;
19 21 import org.springframework.security.access.prepost.PreAuthorize;
20 22 import org.springframework.validation.annotation.Validated;
21 23 import org.springframework.web.bind.annotation.*;
22 24  
23   -import jakarta.annotation.Resource;
24   -import jakarta.validation.Valid;
  25 +import java.util.Collection;
25 26 import java.util.List;
26 27 import java.util.Map;
27 28 import java.util.Set;
  29 +import java.util.stream.Collectors;
28 30  
29 31 import static cn.hutool.core.collection.CollectionUtil.newArrayList;
30 32 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
31   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  33 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
32 34  
33 35 @Tag(name = "管理后台 - 拼团活动")
34 36 @RestController
... ... @@ -87,6 +89,30 @@ public class CombinationActivityController {
87 89 return success(CombinationActivityConvert.INSTANCE.convert(activity, products));
88 90 }
89 91  
  92 + @GetMapping("/detail-list")
  93 + @Operation(summary = "获得拼团活动详情列表")
  94 + @Parameter(name = "ids", description = "拼团活动编号列表", required = true, example = "[1,2,3]")
  95 + @PreAuthorize("@ss.hasPermission('product:spu:query')")
  96 + public CommonResult<List<CombinationActivityRespVO>> getCombinationActivityDetailList(@RequestParam("ids") Collection<Long> ids) {
  97 + // 查询拼团活动列表
  98 + List<CombinationActivityDO> activities = combinationActivityService.getCombinationActivityListByIds(ids);
  99 +
  100 + // 转换活动列表
  101 + List<CombinationActivityRespVO> activityVOs = CombinationActivityConvert.INSTANCE.convertList(activities);
  102 +
  103 + // 获取拼团产品列表
  104 + Set<Long> activityIds = activities.stream().map(CombinationActivityDO::getId).collect(Collectors.toSet());
  105 + List<CombinationProductDO> productList = combinationActivityService.getCombinationProductListByActivityIds(activityIds);
  106 +
  107 + // 创建SPU和产品的映射
  108 + Map<Long, List<CombinationProductDO>> productMap = convertMultiMap(productList, CombinationProductDO::getActivityId);
  109 +
  110 + // 往活动VO赋值产品列表
  111 + activityVOs.forEach(vo -> vo.setProducts(CombinationActivityConvert.INSTANCE.convertList2(productMap.get(vo.getId()))));
  112 +
  113 + return success(activityVOs);
  114 + }
  115 +
90 116 @GetMapping("/page")
91 117 @Operation(summary = "获得拼团活动分页")
92 118 @PreAuthorize("@ss.hasPermission('promotion:combination-activity:query')")
... ...
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;
... ... @@ -26,9 +27,13 @@ import org.springframework.web.bind.annotation.RequestParam;
26 27 import org.springframework.web.bind.annotation.RestController;
27 28  
28 29 import jakarta.annotation.Resource;
  30 +
29 31 import java.time.Duration;
  32 +import java.util.ArrayList;
  33 +import java.util.Collection;
30 34 import java.util.Collections;
31 35 import java.util.List;
  36 +import java.util.stream.Collectors;
32 37  
33 38 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
34 39 import static cn.iocoder.yudao.framework.common.util.cache.CacheUtils.buildAsyncReloadingCache;
... ... @@ -109,4 +114,38 @@ public class AppCombinationActivityController {
109 114 return success(CombinationActivityConvert.INSTANCE.convert3(activity, products));
110 115 }
111 116  
  117 + @GetMapping("/detail-list")
  118 + @Operation(summary = "获得拼团活动明细")
  119 + @Parameter(name = "ids", description = "活动编号列表", required = true, example = "[1024, 1025]")
  120 + public CommonResult<List<AppCombinationActivityDetailRespVO>> getCombinationActivityDetailList(@RequestParam("ids") Collection<Long> ids) {
  121 + // 1. 获取活动
  122 + List<CombinationActivityDO> combinationActivityDOList = activityService.getCombinationActivityListByIds(ids);
  123 +
  124 + // 过滤掉无效的活动
  125 + List<CombinationActivityDO> validActivities = combinationActivityDOList.stream()
  126 + .filter(combinationActivityDO -> combinationActivityDO != null &&
  127 + !ObjectUtil.equal(combinationActivityDO.getStatus(), CommonStatusEnum.DISABLE.getStatus()))
  128 + .toList();
  129 +
  130 + // 如果没有有效的活动,返回空列表
  131 + if (validActivities.isEmpty()) {
  132 + return success(ListUtil.empty());
  133 + }
  134 +
  135 + // 2. 构建结果列表
  136 + List<AppCombinationActivityDetailRespVO> detailRespVOList = new ArrayList<>();
  137 + for (CombinationActivityDO activity : validActivities) {
  138 + // 获取活动商品
  139 + List<CombinationProductDO> products = activityService.getCombinationProductsByActivityId(activity.getId());
  140 +
  141 + // 调用转换方法并添加到结果列表
  142 + AppCombinationActivityDetailRespVO detailRespVO = CombinationActivityConvert.INSTANCE.convert3(activity, products);
  143 + detailRespVOList.add(detailRespVO);
  144 + }
  145 +
  146 + // 3. 返回转换后的结果
  147 + return success(detailRespVOList);
  148 + }
  149 +
  150 +
112 151 }
... ...