|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.promotion.controller.admin.seckill;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
|
|
@@ -13,15 +14,17 @@ import cn.iocoder.yudao.module.promotion.service.seckill.SeckillActivityService;
|
|
|
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.Collections;
|
|
|
import java.util.List;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
|
|
|
@Tag(name = "管理后台 - 秒杀活动")
|
|
@@ -89,11 +92,27 @@ public class SeckillActivityController {
|
|
|
}
|
|
|
|
|
|
// 拼接数据
|
|
|
- List<SeckillProductDO> products = seckillActivityService.getSeckillProductListByActivityId(
|
|
|
+ List<SeckillProductDO> products = seckillActivityService.getSeckillProductListByActivityIds(
|
|
|
convertSet(pageResult.getList(), SeckillActivityDO::getId));
|
|
|
List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(
|
|
|
convertSet(pageResult.getList(), SeckillActivityDO::getSpuId));
|
|
|
return success(SeckillActivityConvert.INSTANCE.convertPage(pageResult, products, spuList));
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/list-by-ids")
|
|
|
+ @Operation(summary = "获得秒杀活动列表,基于活动编号数组")
|
|
|
+ @Parameter(name = "ids", description = "活动编号数组", required = true, example = "[1024, 1025]")
|
|
|
+ public CommonResult<List<SeckillActivityRespVO>> getCombinationActivityListByIds(@RequestParam("ids") List<Long> ids) {
|
|
|
+ // 1. 获得开启的活动列表
|
|
|
+ List<SeckillActivityDO> activityList = seckillActivityService.getSeckillActivityListByIds(ids);
|
|
|
+ activityList.removeIf(activity -> CommonStatusEnum.isDisable(activity.getStatus()));
|
|
|
+ if (CollUtil.isEmpty(activityList)) {
|
|
|
+ return success(Collections.emptyList());
|
|
|
+ }
|
|
|
+ // 2. 拼接返回
|
|
|
+ List<SeckillProductDO> productList = seckillActivityService.getSeckillProductListByActivityIds(
|
|
|
+ convertList(activityList, SeckillActivityDO::getId));
|
|
|
+ List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(convertList(activityList, SeckillActivityDO::getSpuId));
|
|
|
+ return success(SeckillActivityConvert.INSTANCE.convertList(activityList, productList, spuList));
|
|
|
+ }
|
|
|
}
|