Commit 1871a01944a267254760e53a6d62271178352a8a

Authored by puhui999
1 parent 16f2a5b9

fix:seckill:调整相关类属性和表字段对齐

Showing 17 changed files with 49 additions and 58 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityCreateReqVO.java
@@ -16,6 +16,13 @@ import java.util.List; @@ -16,6 +16,13 @@ import java.util.List;
16 @ToString(callSuper = true) 16 @ToString(callSuper = true)
17 public class SeckillActivityCreateReqVO extends SeckillActivityBaseVO { 17 public class SeckillActivityCreateReqVO extends SeckillActivityBaseVO {
18 18
  19 + /**
  20 + * 秒杀活动商品
  21 + */
  22 + @Schema(description = "秒杀活动商品", example = "1")
  23 + @NotNull(message = "秒杀活动商品不能为空")
  24 + private Long spuId;
  25 +
19 @Schema(description = "备注", example = "限时秒杀活动") 26 @Schema(description = "备注", example = "限时秒杀活动")
20 private String remark; 27 private String remark;
21 28
@@ -25,7 +32,7 @@ public class SeckillActivityCreateReqVO extends SeckillActivityBaseVO { @@ -25,7 +32,7 @@ public class SeckillActivityCreateReqVO extends SeckillActivityBaseVO {
25 32
26 @Schema(description = "秒杀时段id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3") 33 @Schema(description = "秒杀时段id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3")
27 @NotEmpty(message = "参与场次不能为空") 34 @NotEmpty(message = "参与场次不能为空")
28 - private List<Long> timeIds; 35 + private List<Long> configIds;
29 36
30 /** 37 /**
31 * 商品列表 38 * 商品列表
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityPageReqVO.java
@@ -26,7 +26,7 @@ public class SeckillActivityPageReqVO extends PageParam { @@ -26,7 +26,7 @@ public class SeckillActivityPageReqVO extends PageParam {
26 private Integer status; 26 private Integer status;
27 27
28 @Schema(description = "秒杀时段id", example = "1") 28 @Schema(description = "秒杀时段id", example = "1")
29 - private Long timeId; 29 + private Long configId;
30 30
31 @Schema(description = "创建时间") 31 @Schema(description = "创建时间")
32 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 32 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityRespVO.java
@@ -17,7 +17,7 @@ public class SeckillActivityRespVO extends SeckillActivityBaseVO { @@ -17,7 +17,7 @@ public class SeckillActivityRespVO extends SeckillActivityBaseVO {
17 @Schema(description = "秒杀活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 17 @Schema(description = "秒杀活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
18 private Long id; 18 private Long id;
19 19
20 - @Schema(description = "付款订单数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 20 + @Schema(description = "新增订单数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
21 private Integer orderCount; 21 private Integer orderCount;
22 22
23 @Schema(description = "付款人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 23 @Schema(description = "付款人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@@ -27,7 +27,7 @@ public class SeckillActivityRespVO extends SeckillActivityBaseVO { @@ -27,7 +27,7 @@ public class SeckillActivityRespVO extends SeckillActivityBaseVO {
27 private LocalDateTime createTime; 27 private LocalDateTime createTime;
28 28
29 @Schema(description = "秒杀时段id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3") 29 @Schema(description = "秒杀时段id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3")
30 - private List<Long> timeIds; 30 + private List<Long> configIds;
31 31
32 @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 32 @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
33 private Integer sort; 33 private Integer sort;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityUpdateReqVO.java
@@ -29,7 +29,7 @@ public class SeckillActivityUpdateReqVO extends SeckillActivityBaseVO { @@ -29,7 +29,7 @@ public class SeckillActivityUpdateReqVO extends SeckillActivityBaseVO {
29 29
30 @Schema(description = "秒杀时段id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3") 30 @Schema(description = "秒杀时段id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3")
31 @NotEmpty(message = "秒杀时段id不能为空") 31 @NotEmpty(message = "秒杀时段id不能为空")
32 - private List<Long> timeIds; 32 + private List<Long> configIds;
33 33
34 /** 34 /**
35 * 商品列表 35 * 商品列表
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigBaseVO.java
@@ -2,12 +2,8 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config; @@ -2,12 +2,8 @@ package cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.Data; 4 import lombok.Data;
5 -import org.springframework.format.annotation.DateTimeFormat;  
6 5
7 import javax.validation.constraints.NotNull; 6 import javax.validation.constraints.NotNull;
8 -import java.time.LocalTime;  
9 -  
10 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_HOUR_MINUTE_SECOND;  
11 7
12 /** 8 /**
13 * 秒杀时段 Base VO,提供给添加、修改、详细的子 VO 使用 9 * 秒杀时段 Base VO,提供给添加、修改、详细的子 VO 使用
@@ -24,13 +20,11 @@ public class SeckillConfigBaseVO { @@ -24,13 +20,11 @@ public class SeckillConfigBaseVO {
24 20
25 @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:00:00") 21 @Schema(description = "开始时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "09:00:00")
26 @NotNull(message = "开始时间点不能为空") 22 @NotNull(message = "开始时间点不能为空")
27 - @DateTimeFormat(pattern = FORMAT_HOUR_MINUTE_SECOND)  
28 - private LocalTime startTime; 23 + private String startTime;
29 24
30 @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16:00:00") 25 @Schema(description = "结束时间点", requiredMode = Schema.RequiredMode.REQUIRED, example = "16:00:00")
31 @NotNull(message = "结束时间点不能为空") 26 @NotNull(message = "结束时间点不能为空")
32 - @DateTimeFormat(pattern = FORMAT_HOUR_MINUTE_SECOND)  
33 - private LocalTime endTime; 27 + private String endTime;
34 28
35 @Schema(description = "秒杀主图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn") 29 @Schema(description = "秒杀主图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
36 @NotNull(message = "秒杀主图不能为空") 30 @NotNull(message = "秒杀主图不能为空")
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/vo/config/SeckillConfigPageReqVO.java
@@ -5,9 +5,6 @@ import io.swagger.v3.oas.annotations.media.Schema; @@ -5,9 +5,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
5 import lombok.Data; 5 import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
7 import lombok.ToString; 7 import lombok.ToString;
8 -import org.springframework.format.annotation.DateTimeFormat;  
9 -  
10 -import java.time.LocalTime;  
11 8
12 /** 9 /**
13 * 管理后台 - 秒杀时段分页 Request VO 10 * 管理后台 - 秒杀时段分页 Request VO
@@ -26,12 +23,4 @@ public class SeckillConfigPageReqVO extends PageParam { @@ -26,12 +23,4 @@ public class SeckillConfigPageReqVO extends PageParam {
26 @Schema(description = "状态", example = "0") 23 @Schema(description = "状态", example = "0")
27 private Integer status; 24 private Integer status;
28 25
29 - @Schema(description = "开始时间点", example = "16:30:40")  
30 - @DateTimeFormat(pattern = "HH:mm:ss")  
31 - private LocalTime[] startTime;  
32 -  
33 - @Schema(description = "结束时间点", example = "16:30:40")  
34 - @DateTimeFormat(pattern = "HH:mm:ss")  
35 - private LocalTime[] endTime;  
36 -  
37 } 26 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java
@@ -55,7 +55,7 @@ public interface SeckillActivityConvert { @@ -55,7 +55,7 @@ public interface SeckillActivityConvert {
55 return ObjectUtil.equals(productDO.getSpuId(), productVO.getSpuId()) 55 return ObjectUtil.equals(productDO.getSpuId(), productVO.getSpuId())
56 && ObjectUtil.equals(productDO.getSkuId(), productVO.getSkuId()) 56 && ObjectUtil.equals(productDO.getSkuId(), productVO.getSkuId())
57 && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice()) 57 && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice())
58 - && ObjectUtil.equals(productDO.getStock(), productVO.getStock()) 58 + && ObjectUtil.equals(productDO.getQuota(), productVO.getQuota())
59 && ObjectUtil.equals(productDO.getLimitCount(), productVO.getLimitCount()); 59 && ObjectUtil.equals(productDO.getLimitCount(), productVO.getLimitCount());
60 } 60 }
61 61
@@ -70,14 +70,14 @@ public interface SeckillActivityConvert { @@ -70,14 +70,14 @@ public interface SeckillActivityConvert {
70 return ObjectUtil.equals(productDO.getSpuId(), productVO.getSpuId()) 70 return ObjectUtil.equals(productDO.getSpuId(), productVO.getSpuId())
71 && ObjectUtil.equals(productDO.getSkuId(), productVO.getSkuId()) 71 && ObjectUtil.equals(productDO.getSkuId(), productVO.getSkuId())
72 && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice()) 72 && ObjectUtil.equals(productDO.getSeckillPrice(), productVO.getSeckillPrice())
73 - && ObjectUtil.equals(productDO.getStock(), productVO.getStock()) 73 + && ObjectUtil.equals(productDO.getQuota(), productVO.getQuota())
74 && ObjectUtil.equals(productDO.getLimitCount(), productVO.getLimitCount()); 74 && ObjectUtil.equals(productDO.getLimitCount(), productVO.getLimitCount());
75 75
76 } 76 }
77 77
78 default List<SeckillProductDO> convertList(List<SeckillActivityBaseVO.Product> products, SeckillActivityDO seckillActivity) { 78 default List<SeckillProductDO> convertList(List<SeckillActivityBaseVO.Product> products, SeckillActivityDO seckillActivity) {
79 return CollectionUtils.convertList(products, product -> convert(product) 79 return CollectionUtils.convertList(products, product -> convert(product)
80 - .setActivityId(seckillActivity.getId()).setTimeIds(seckillActivity.getTimeIds())); 80 + .setActivityId(seckillActivity.getId()).setConfigIds(seckillActivity.getConfigIds()));
81 } 81 }
82 82
83 } 83 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java
@@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.Seck @@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.Seck
6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO; 6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
7 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO; 7 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.seckillconfig.SeckillConfigDO;
8 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
9 -import org.mapstruct.Mapping;  
10 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
11 10
12 import java.util.List; 11 import java.util.List;
@@ -25,7 +24,6 @@ public interface SeckillConfigConvert { @@ -25,7 +24,6 @@ public interface SeckillConfigConvert {
25 24
26 SeckillConfigDO convert(SeckillConfigUpdateReqVO bean); 25 SeckillConfigDO convert(SeckillConfigUpdateReqVO bean);
27 26
28 - @Mapping(target = "s")  
29 SeckillConfigRespVO convert(SeckillConfigDO bean); 27 SeckillConfigRespVO convert(SeckillConfigDO bean);
30 28
31 List<SeckillConfigRespVO> convertList(List<SeckillConfigDO> list); 29 List<SeckillConfigRespVO> convertList(List<SeckillConfigDO> list);
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillActivityDO.java
@@ -32,12 +32,16 @@ public class SeckillActivityDO extends BaseDO { @@ -32,12 +32,16 @@ public class SeckillActivityDO extends BaseDO {
32 @TableId 32 @TableId
33 private Long id; 33 private Long id;
34 /** 34 /**
  35 + * 秒杀活动商品
  36 + */
  37 + private Long spuId;
  38 + /**
35 * 秒杀活动名称 39 * 秒杀活动名称
36 */ 40 */
37 private String name; 41 private String name;
38 /** 42 /**
39 * 活动状态 43 * 活动状态
40 - * 44 + * <p>
41 * 枚举 {@link PromotionActivityStatusEnum 对应的类} 45 * 枚举 {@link PromotionActivityStatusEnum 对应的类}
42 */ 46 */
43 private Integer status; 47 private Integer status;
@@ -61,9 +65,9 @@ public class SeckillActivityDO extends BaseDO { @@ -61,9 +65,9 @@ public class SeckillActivityDO extends BaseDO {
61 * 秒杀时段 id 65 * 秒杀时段 id
62 */ 66 */
63 @TableField(typeHandler = LongListTypeHandler.class) 67 @TableField(typeHandler = LongListTypeHandler.class)
64 - private List<Long> timeIds; 68 + private List<Long> configIds;
65 /** 69 /**
66 - * 付款订单数 70 + * 新增订单数
67 */ 71 */
68 private Integer orderCount; 72 private Integer orderCount;
69 /** 73 /**
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java
@@ -21,6 +21,7 @@ import java.util.List; @@ -21,6 +21,7 @@ import java.util.List;
21 @EqualsAndHashCode(callSuper = true) 21 @EqualsAndHashCode(callSuper = true)
22 @ToString(callSuper = true) 22 @ToString(callSuper = true)
23 public class SeckillProductDO extends BaseDO { 23 public class SeckillProductDO extends BaseDO {
  24 +
24 /** 25 /**
25 * 秒杀参与商品编号 26 * 秒杀参与商品编号
26 */ 27 */
@@ -36,7 +37,7 @@ public class SeckillProductDO extends BaseDO { @@ -36,7 +37,7 @@ public class SeckillProductDO extends BaseDO {
36 * 秒杀时段id 37 * 秒杀时段id
37 */ 38 */
38 @TableField(typeHandler = LongListTypeHandler.class) 39 @TableField(typeHandler = LongListTypeHandler.class)
39 - private List<Long> timeIds; 40 + private List<Long> configIds;
40 41
41 /** 42 /**
42 * 商品id 43 * 商品id
@@ -53,9 +54,8 @@ public class SeckillProductDO extends BaseDO { @@ -53,9 +54,8 @@ public class SeckillProductDO extends BaseDO {
53 */ 54 */
54 private Integer seckillPrice; 55 private Integer seckillPrice;
55 56
56 - // TODO @芋艿:改成 quota 限量库存;每次购买时,需要减小;  
57 /** 57 /**
58 - * 秒杀库存 58 + * 秒杀库存 限量库存;每次购买时,需要减小;
59 */ 59 */
60 private Integer quota; 60 private Integer quota;
61 61
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/seckillconfig/SeckillConfigDO.java
@@ -9,8 +9,6 @@ import lombok.Data; @@ -9,8 +9,6 @@ import lombok.Data;
9 import lombok.EqualsAndHashCode; 9 import lombok.EqualsAndHashCode;
10 import lombok.ToString; 10 import lombok.ToString;
11 11
12 -import java.time.LocalTime;  
13 -  
14 /** 12 /**
15 * 秒杀时段 DO 13 * 秒杀时段 DO
16 * 14 *
@@ -35,11 +33,11 @@ public class SeckillConfigDO extends BaseDO { @@ -35,11 +33,11 @@ public class SeckillConfigDO extends BaseDO {
35 /** 33 /**
36 * 开始时间点 34 * 开始时间点
37 */ 35 */
38 - private LocalTime startTime; 36 + private String startTime;
39 /** 37 /**
40 * 结束时间点 38 * 结束时间点
41 */ 39 */
42 - private LocalTime endTime; 40 + private String endTime;
43 /** 41 /**
44 * 秒杀主图 42 * 秒杀主图
45 */ 43 */
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java
@@ -20,7 +20,7 @@ public interface SeckillActivityMapper extends BaseMapperX&lt;SeckillActivityDO&gt; { @@ -20,7 +20,7 @@ public interface SeckillActivityMapper extends BaseMapperX&lt;SeckillActivityDO&gt; {
20 .likeIfPresent(SeckillActivityDO::getName, reqVO.getName()) 20 .likeIfPresent(SeckillActivityDO::getName, reqVO.getName())
21 .eqIfPresent(SeckillActivityDO::getStatus, reqVO.getStatus()) 21 .eqIfPresent(SeckillActivityDO::getStatus, reqVO.getStatus())
22 .betweenIfPresent(SeckillActivityDO::getCreateTime, reqVO.getCreateTime()) 22 .betweenIfPresent(SeckillActivityDO::getCreateTime, reqVO.getCreateTime())
23 - .apply(ObjectUtil.isNotNull(reqVO.getTimeId()),"FIND_IN_SET(" + reqVO.getTimeId() + ",time_ids) > 0") 23 + .apply(ObjectUtil.isNotNull(reqVO.getConfigId()), "FIND_IN_SET(" + reqVO.getConfigId() + ",time_ids) > 0")
24 .orderByDesc(SeckillActivityDO::getId)); 24 .orderByDesc(SeckillActivityDO::getId));
25 } 25 }
26 } 26 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java
@@ -27,7 +27,7 @@ public interface SeckillProductMapper extends BaseMapperX&lt;SeckillProductDO&gt; { @@ -27,7 +27,7 @@ public interface SeckillProductMapper extends BaseMapperX&lt;SeckillProductDO&gt; {
27 27
28 default void updateTimeIdsByActivityId(Long id, List<Long> timeIds) { 28 default void updateTimeIdsByActivityId(Long id, List<Long> timeIds) {
29 new LambdaUpdateChainWrapper<>(this) 29 new LambdaUpdateChainWrapper<>(this)
30 - .set(SeckillProductDO::getTimeIds, CollUtil.join(timeIds, ",")) 30 + .set(SeckillProductDO::getConfigIds, CollUtil.join(timeIds, ","))
31 .eq(SeckillProductDO::getActivityId, id) 31 .eq(SeckillProductDO::getActivityId, id)
32 .update(); 32 .update();
33 } 33 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java
@@ -36,8 +36,6 @@ public interface SeckillConfigMapper extends BaseMapperX&lt;SeckillConfigDO&gt; { @@ -36,8 +36,6 @@ public interface SeckillConfigMapper extends BaseMapperX&lt;SeckillConfigDO&gt; {
36 default PageResult<SeckillConfigDO> selectPage(SeckillConfigPageReqVO reqVO) { 36 default PageResult<SeckillConfigDO> selectPage(SeckillConfigPageReqVO reqVO) {
37 return selectPage(reqVO, new LambdaQueryWrapperX<SeckillConfigDO>() 37 return selectPage(reqVO, new LambdaQueryWrapperX<SeckillConfigDO>()
38 .likeIfPresent(SeckillConfigDO::getName, reqVO.getName()) 38 .likeIfPresent(SeckillConfigDO::getName, reqVO.getName())
39 - .betweenIfPresent(SeckillConfigDO::getStartTime, reqVO.getStartTime())  
40 - .betweenIfPresent(SeckillConfigDO::getEndTime, reqVO.getEndTime())  
41 .eqIfPresent(SeckillConfigDO::getStatus, reqVO.getStatus()) 39 .eqIfPresent(SeckillConfigDO::getStatus, reqVO.getStatus())
42 .orderByDesc(SeckillConfigDO::getId)); 40 .orderByDesc(SeckillConfigDO::getId));
43 } 41 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java
@@ -47,7 +47,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -47,7 +47,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
47 // 校验商品是否冲突 47 // 校验商品是否冲突
48 validateSeckillActivityProductConflicts(null, createReqVO.getProducts()); 48 validateSeckillActivityProductConflicts(null, createReqVO.getProducts());
49 // 校验秒杀时段是否存在 49 // 校验秒杀时段是否存在
50 - seckillConfigService.validateSeckillConfigExists(createReqVO.getTimeIds()); 50 + seckillConfigService.validateSeckillConfigExists(createReqVO.getConfigIds());
51 51
52 // 插入秒杀活动 52 // 插入秒杀活动
53 SeckillActivityDO seckillActivity = SeckillActivityConvert.INSTANCE.convert(createReqVO) 53 SeckillActivityDO seckillActivity = SeckillActivityConvert.INSTANCE.convert(createReqVO)
@@ -57,7 +57,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -57,7 +57,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
57 List<SeckillProductDO> productDOs = SeckillActivityConvert.INSTANCE.convertList(createReqVO.getProducts(), seckillActivity); 57 List<SeckillProductDO> productDOs = SeckillActivityConvert.INSTANCE.convertList(createReqVO.getProducts(), seckillActivity);
58 seckillProductMapper.insertBatch(productDOs); 58 seckillProductMapper.insertBatch(productDOs);
59 // 更新秒杀时段的秒杀活动数量 59 // 更新秒杀时段的秒杀活动数量
60 - seckillConfigService.seckillActivityCountIncr(createReqVO.getTimeIds()); 60 + seckillConfigService.seckillActivityCountIncr(createReqVO.getConfigIds());
61 return seckillActivity.getId(); 61 return seckillActivity.getId();
62 } 62 }
63 63
@@ -78,7 +78,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -78,7 +78,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
78 // 更新商品 78 // 更新商品
79 updateSeckillProduct(updateReqVO); 79 updateSeckillProduct(updateReqVO);
80 // 更新秒杀时段的秒杀活动数量 80 // 更新秒杀时段的秒杀活动数量
81 - updateSeckillConfigActivityCount(seckillActivity, updateReqVO.getTimeIds()); 81 + updateSeckillConfigActivityCount(seckillActivity, updateReqVO.getConfigIds());
82 } 82 }
83 83
84 /** 84 /**
@@ -89,7 +89,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -89,7 +89,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
89 */ 89 */
90 private void updateSeckillConfigActivityCount(SeckillActivityDO seckillActivity, List<Long> updateTimeIds) { 90 private void updateSeckillConfigActivityCount(SeckillActivityDO seckillActivity, List<Long> updateTimeIds) {
91 // 查询出 timeIds 91 // 查询出 timeIds
92 - List<Long> existsTimeIds = seckillActivity.getTimeIds(); 92 + List<Long> existsTimeIds = seckillActivity.getConfigIds();
93 // 需要减少的时间段 93 // 需要减少的时间段
94 Collection<Long> reduceIds = CollUtil.filterNew(existsTimeIds, existsTimeId -> !updateTimeIds.contains(existsTimeId)); 94 Collection<Long> reduceIds = CollUtil.filterNew(existsTimeIds, existsTimeId -> !updateTimeIds.contains(existsTimeId));
95 // 需要添加的时间段 95 // 需要添加的时间段
@@ -134,7 +134,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -134,7 +134,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
134 } 134 }
135 135
136 //全量更新当前活动商品的秒杀时段id列表(timeIds) 136 //全量更新当前活动商品的秒杀时段id列表(timeIds)
137 - seckillProductMapper.updateTimeIdsByActivityId(updateReqVO.getId(), updateReqVO.getTimeIds()); 137 + seckillProductMapper.updateTimeIdsByActivityId(updateReqVO.getId(), updateReqVO.getConfigIds());
138 } 138 }
139 139
140 /** 140 /**
@@ -190,7 +190,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { @@ -190,7 +190,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
190 throw exception(SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END); 190 throw exception(SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END);
191 } 191 }
192 // 更新秒杀时段的秒杀活动数量 192 // 更新秒杀时段的秒杀活动数量
193 - seckillConfigService.seckillActivityCountDecr(seckillActivity.getTimeIds()); 193 + seckillConfigService.seckillActivityCountDecr(seckillActivity.getConfigIds());
194 // 删除 194 // 删除
195 seckillActivityMapper.deleteById(id); 195 seckillActivityMapper.deleteById(id);
196 } 196 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/seckillconfig/SeckillConfigServiceImpl.java
@@ -36,7 +36,8 @@ public class SeckillConfigServiceImpl implements SeckillConfigService { @@ -36,7 +36,8 @@ public class SeckillConfigServiceImpl implements SeckillConfigService {
36 @Override 36 @Override
37 public Long createSeckillConfig(SeckillConfigCreateReqVO createReqVO) { 37 public Long createSeckillConfig(SeckillConfigCreateReqVO createReqVO) {
38 // 校验时间段是否冲突 38 // 校验时间段是否冲突
39 - validateSeckillConfigConflict(null, createReqVO.getStartTime(), createReqVO.getEndTime()); 39 + //validateSeckillConfigConflict(null, createReqVO.getStartTime(), createReqVO.getEndTime());
  40 +
40 // 插入 41 // 插入
41 SeckillConfigDO seckillConfig = SeckillConfigConvert.INSTANCE.convert(createReqVO); 42 SeckillConfigDO seckillConfig = SeckillConfigConvert.INSTANCE.convert(createReqVO);
42 seckillConfigMapper.insert(seckillConfig); 43 seckillConfigMapper.insert(seckillConfig);
@@ -49,7 +50,8 @@ public class SeckillConfigServiceImpl implements SeckillConfigService { @@ -49,7 +50,8 @@ public class SeckillConfigServiceImpl implements SeckillConfigService {
49 // 校验存在 50 // 校验存在
50 this.validateSeckillConfigExists(updateReqVO.getId()); 51 this.validateSeckillConfigExists(updateReqVO.getId());
51 // 校验时间段是否冲突 52 // 校验时间段是否冲突
52 - validateSeckillConfigConflict(updateReqVO.getId(), updateReqVO.getStartTime(), updateReqVO.getEndTime()); 53 + //validateSeckillConfigConflict(updateReqVO.getId(), updateReqVO.getStartTime(), updateReqVO.getEndTime());
  54 +
53 // 更新 55 // 更新
54 SeckillConfigDO updateObj = SeckillConfigConvert.INSTANCE.convert(updateReqVO); 56 SeckillConfigDO updateObj = SeckillConfigConvert.INSTANCE.convert(updateReqVO);
55 seckillConfigMapper.updateById(updateObj); 57 seckillConfigMapper.updateById(updateObj);
@@ -77,6 +79,7 @@ public class SeckillConfigServiceImpl implements SeckillConfigService { @@ -77,6 +79,7 @@ public class SeckillConfigServiceImpl implements SeckillConfigService {
77 */ 79 */
78 private void validateSeckillConfigConflict(Long id, LocalTime startTime, LocalTime endTime) { 80 private void validateSeckillConfigConflict(Long id, LocalTime startTime, LocalTime endTime) {
79 //查询开始时间,结束时间,是否在别人的时间段内 81 //查询开始时间,结束时间,是否在别人的时间段内
  82 + // TODO 为什么要检查这个时间段是否冲突 比如早上 09:00:00 - 10:00:00 我再添加一个 09:00:00 - 09:30:00 不可以这样吗?
80 List<SeckillConfigDO> startTimeList = seckillConfigMapper.selectListByTime(startTime); 83 List<SeckillConfigDO> startTimeList = seckillConfigMapper.selectListByTime(startTime);
81 List<SeckillConfigDO> endTimeList = seckillConfigMapper.selectListByTime(endTime); 84 List<SeckillConfigDO> endTimeList = seckillConfigMapper.selectListByTime(endTime);
82 //查询自己时间段内是否有时间段 85 //查询自己时间段内是否有时间段
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/seckillactivity/SeckillActivityServiceImplTest.java
@@ -108,7 +108,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { @@ -108,7 +108,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest {
108 SeckillActivityDO dbSeckillActivity = randomPojo(SeckillActivityDO.class, o -> { // 等会查询到 108 SeckillActivityDO dbSeckillActivity = randomPojo(SeckillActivityDO.class, o -> { // 等会查询到
109 o.setName(null); 109 o.setName(null);
110 o.setStatus(null); 110 o.setStatus(null);
111 - o.setTimeIds(null); 111 + o.setConfigIds(null);
112 o.setCreateTime(null); 112 o.setCreateTime(null);
113 }); 113 });
114 seckillActivityMapper.insert(dbSeckillActivity); 114 seckillActivityMapper.insert(dbSeckillActivity);
@@ -117,15 +117,15 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { @@ -117,15 +117,15 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest {
117 // 测试 status 不匹配 117 // 测试 status 不匹配
118 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null))); 118 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null)));
119 // 测试 timeId 不匹配 119 // 测试 timeId 不匹配
120 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setTimeIds(null))); 120 + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setConfigIds(null)));
121 // 测试 createTime 不匹配 121 // 测试 createTime 不匹配
122 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null))); 122 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null)));
123 // 准备参数 123 // 准备参数
124 SeckillActivityPageReqVO reqVO = new SeckillActivityPageReqVO(); 124 SeckillActivityPageReqVO reqVO = new SeckillActivityPageReqVO();
125 reqVO.setName(null); 125 reqVO.setName(null);
126 - reqVO.setStatus(null);  
127 - reqVO.setTimeId(null);  
128 - reqVO.setCreateTime((new LocalDateTime[]{})); 126 + reqVO.setStatus(null);
  127 + reqVO.setConfigId(null);
  128 + reqVO.setCreateTime((new LocalDateTime[]{}));
129 129
130 // 调用 130 // 调用
131 PageResult<SeckillActivityDO> pageResult = seckillActivityService.getSeckillActivityPage(reqVO); 131 PageResult<SeckillActivityDO> pageResult = seckillActivityService.getSeckillActivityPage(reqVO);
@@ -142,7 +142,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { @@ -142,7 +142,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest {
142 SeckillActivityDO dbSeckillActivity = randomPojo(SeckillActivityDO.class, o -> { // 等会查询到 142 SeckillActivityDO dbSeckillActivity = randomPojo(SeckillActivityDO.class, o -> { // 等会查询到
143 o.setName(null); 143 o.setName(null);
144 o.setStatus(null); 144 o.setStatus(null);
145 - o.setTimeIds(null); 145 + o.setConfigIds(null);
146 o.setCreateTime(null); 146 o.setCreateTime(null);
147 }); 147 });
148 seckillActivityMapper.insert(dbSeckillActivity); 148 seckillActivityMapper.insert(dbSeckillActivity);
@@ -151,7 +151,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest { @@ -151,7 +151,7 @@ public class SeckillActivityServiceImplTest extends BaseDbUnitTest {
151 // 测试 status 不匹配 151 // 测试 status 不匹配
152 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null))); 152 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setStatus(null)));
153 // 测试 timeId 不匹配 153 // 测试 timeId 不匹配
154 - seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setTimeIds(null))); 154 + seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setConfigIds(null)));
155 // 测试 createTime 不匹配 155 // 测试 createTime 不匹配
156 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null))); 156 seckillActivityMapper.insert(cloneIgnoreId(dbSeckillActivity, o -> o.setCreateTime(null)));
157 // 准备参数 157 // 准备参数