|
@@ -16,19 +16,21 @@ import cn.iocoder.yudao.module.promotion.service.combination.CombinationRecordSe
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
+import jakarta.validation.Valid;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
-import jakarta.annotation.Resource;
|
|
|
-import jakarta.validation.Valid;
|
|
|
+import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static cn.hutool.core.collection.CollectionUtil.newArrayList;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
|
|
|
|
|
|
@Tag(name = "管理后台 - 拼团活动")
|
|
|
@RestController
|
|
@@ -87,6 +89,43 @@ public class CombinationActivityController {
|
|
|
return success(CombinationActivityConvert.INSTANCE.convert(activity, products));
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/list")
|
|
|
+ @Operation(summary = "获得拼团活动详情列表")
|
|
|
+ @Parameter(name = "combinationActivityIds", description = "拼团活动编号列表", required = true, example = "[1,2,3]")
|
|
|
+ @PreAuthorize("@ss.hasPermission('product:spu:query')")
|
|
|
+ public CommonResult<List<CombinationActivityRespVO>> getCombinationActivityDetailList(@RequestParam("combinationActivityIds") Collection<Long> combinationActivityIds) {
|
|
|
+ // 查询拼团活动列表
|
|
|
+ List<CombinationActivityDO> activities = combinationActivityService.getCombinationActivityListByIds(combinationActivityIds);
|
|
|
+
|
|
|
+ // 转换活动列表
|
|
|
+ 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())));
|
|
|
+ });
|
|
|
+
|
|
|
+ return success(activityVOs);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得拼团活动分页")
|
|
|
@PreAuthorize("@ss.hasPermission('promotion:combination-activity:query')")
|