diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java index 970ff34d..c67ef4fe 100644 --- a/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java @@ -8,6 +8,7 @@ import cn.lili.modules.system.entity.dto.SeckillSetting; import cn.lili.modules.system.entity.enums.SettingEnum; import cn.lili.modules.system.service.SettingService; import cn.lili.timetask.handler.EveryDayExecute; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -70,8 +71,14 @@ public class PromotionEverydayExecute implements EveryDayExecute { log.info("生成秒杀活动设置:{}", seckillSetting); for (int i = 1; i <= SeckillService.PRE_CREATION; i++) { Seckill seckill = new Seckill(i, seckillSetting.getHours(), seckillSetting.getSeckillRule()); - boolean result = seckillService.savePromotions(seckill); - log.info("生成秒杀活动参数:{},结果:{}", seckill, result); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Seckill::getStartTime, seckill.getStartTime()); + //如果已经存在促销,则不再次保存 + if (seckillService.list(lambdaQueryWrapper).size() == 0) { + boolean result = seckillService.savePromotions(seckill); + log.info("生成秒杀活动参数:{},结果:{}", seckill, result); + } } } } diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/Seckill.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/Seckill.java index c15d19e2..f80c4b77 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/Seckill.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/Seckill.java @@ -59,7 +59,7 @@ public class Seckill extends BasePromotions { public Seckill(int day, String hours, String seckillRule) { //默认创建*天后的秒杀活动 DateTime dateTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), day)); - this.applyEndTime = DateUtil.offsetHour(new Date(), Integer.parseInt(hours) - 1); + this.applyEndTime = dateTime; this.hours = hours; this.seckillRule = seckillRule; this.goodsNum = 0;