From d7b0ff4cd1e287104f096c2760c9a0c777543beb Mon Sep 17 00:00:00 2001 From: lifenlong Date: Sat, 19 Jun 2021 17:43:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=88=A4=E5=AE=9A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/CouponServiceImpl.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java index d5ae1ac8..04941ab5 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java @@ -89,14 +89,18 @@ public class CouponServiceImpl extends ServiceImpl impleme this.updateScopePromotionGoods(coupon); // 保存到MONGO中 this.mongoTemplate.save(coupon); - PromotionMessage promotionMessage = new PromotionMessage(coupon.getId(), PromotionTypeEnum.COUPON.name(), PromotionStatusEnum.START.name(), coupon.getStartTime(), coupon.getEndTime()); - TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR, - coupon.getStartTime().getTime(), - promotionMessage, - DelayQueueTools.wrapperUniqueKey(DelayTypeEnums.PROMOTION, (promotionMessage.getPromotionType() + promotionMessage.getPromotionId())), - rocketmqCustomProperties.getPromotionTopic()); - // 发送促销活动开始的延时任务 - this.timeTrigger.addDelay(timeTriggerMsg); + //如果优惠券是固定时间则添加延时任务 + if (coupon.getRangeDayType().equals(CouponRangeDayEnum.FIXEDTIME.name())) { + PromotionMessage promotionMessage = new PromotionMessage(coupon.getId(), PromotionTypeEnum.COUPON.name(), PromotionStatusEnum.START.name(), coupon.getStartTime(), coupon.getEndTime()); + TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR, + coupon.getStartTime().getTime(), + promotionMessage, + DelayQueueTools.wrapperUniqueKey(DelayTypeEnums.PROMOTION, (promotionMessage.getPromotionType() + promotionMessage.getPromotionId())), + rocketmqCustomProperties.getPromotionTopic()); + // 发送促销活动开始的延时任务 + this.timeTrigger.addDelay(timeTriggerMsg); + } + return coupon; } @@ -278,12 +282,14 @@ public class CouponServiceImpl extends ServiceImpl impleme throw new ServiceException("优惠券折扣必须小于10且大于0"); } - long nowTime = DateUtil.getDateline() * 1000; - if (coupon.getStartTime().getTime() < nowTime && coupon.getEndTime().getTime() > nowTime) { - throw new ServiceException("活动时间小于当前时间,不能进行编辑删除操作"); - } + if (coupon.getRangeDayType().equals(CouponRangeDayEnum.FIXEDTIME.name())) { + long nowTime = DateUtil.getDateline() * 1000; + if (coupon.getStartTime().getTime() < nowTime && coupon.getEndTime().getTime() > nowTime) { + throw new ServiceException("活动时间小于当前时间,不能进行编辑删除操作"); + } - PromotionTools.checkPromotionTime(coupon.getStartTime().getTime(), coupon.getEndTime().getTime()); + PromotionTools.checkPromotionTime(coupon.getStartTime().getTime(), coupon.getEndTime().getTime()); + } this.checkCouponScope(coupon); //对状态的处理.如果未传递状态则需要 根据当前时间来确认优惠券状态 @@ -326,7 +332,7 @@ public class CouponServiceImpl extends ServiceImpl impleme * @param coupon 优惠券参数 */ private void promotionStatusEmpty(CouponVO coupon) { - if (StringUtils.isEmpty(coupon.getPromotionStatus())) { + if (StringUtils.isEmpty(coupon.getPromotionStatus()) && coupon.getRangeDayType().equals(CouponRangeDayEnum.FIXEDTIME.name())) { //格式时间 long startTme = coupon.getStartTime().getTime() / 1000; long endTime = coupon.getEndTime().getTime() / 1000;