From d1c6988d0fe685e0f7ad510f88774808cfc18313 Mon Sep 17 00:00:00 2001 From: Chopper711 Date: Fri, 13 Oct 2023 15:35:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=9A=E6=97=B6=E7=B2=BE=E5=87=86?= =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BC=98=E6=83=A0=E5=88=B8=E8=A2=AB=E7=AB=8B?= =?UTF-8?q?=E5=8D=B3=E5=8F=91=E9=80=81=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= =?UTF-8?q?=E3=80=82=E8=87=AA=E5=8A=A8=E9=A2=86=E5=8F=96=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E6=97=B6=E4=BC=9A=E8=A7=A6=E5=8F=91=E7=B2=BE=E5=87=86?= =?UTF-8?q?=E5=8F=91=E5=88=B8=E5=85=A8=E5=B9=B3=E5=8F=B0=E4=BC=9A=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CouponActivityTriggerExecutor.java | 31 ++++++++++++ .../entity/enums/CouponFrequencyEnum.java | 3 ++ .../service/CouponActivityService.java | 7 +++ .../CouponActivityServiceImpl.java | 47 +++++++++++++++++-- .../MemberCouponSignServiceImpl.java | 11 ++--- .../cn/lili/trigger/enums/DelayTypeEnums.java | 4 ++ .../message/CouponActivityMessage.java | 25 ++++++++++ .../trigger/model/TimeExecuteConstant.java | 4 ++ 8 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 consumer/src/main/java/cn/lili/trigger/executor/CouponActivityTriggerExecutor.java create mode 100644 framework/src/main/java/cn/lili/trigger/message/CouponActivityMessage.java diff --git a/consumer/src/main/java/cn/lili/trigger/executor/CouponActivityTriggerExecutor.java b/consumer/src/main/java/cn/lili/trigger/executor/CouponActivityTriggerExecutor.java new file mode 100644 index 00000000..1bf35454 --- /dev/null +++ b/consumer/src/main/java/cn/lili/trigger/executor/CouponActivityTriggerExecutor.java @@ -0,0 +1,31 @@ +package cn.lili.trigger.executor; + +import cn.hutool.json.JSONUtil; +import cn.lili.modules.promotion.service.CouponActivityService; +import cn.lili.trigger.TimeTriggerExecutor; +import cn.lili.trigger.message.CouponActivityMessage; +import cn.lili.trigger.model.TimeExecuteConstant; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 优惠券活动精准发圈延时触发 + * + * @author Bulbasaur + * @since 2021/6/1 5:02 下午 + */ +@Slf4j +@Component(TimeExecuteConstant.COUPON_ACTIVITY_EXECUTOR) +public class CouponActivityTriggerExecutor implements TimeTriggerExecutor { + + + @Autowired + private CouponActivityService couponActivityService; + + @Override + public void execute(Object object) { + CouponActivityMessage couponActivityMessage = JSONUtil.toBean(JSONUtil.parseObj(object), CouponActivityMessage.class); + couponActivityService.specifyCoupon(couponActivityMessage.getCouponActivityId()); + } +} diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/enums/CouponFrequencyEnum.java b/framework/src/main/java/cn/lili/modules/promotion/entity/enums/CouponFrequencyEnum.java index f5db6007..b3da10fc 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/enums/CouponFrequencyEnum.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/enums/CouponFrequencyEnum.java @@ -24,6 +24,9 @@ public enum CouponFrequencyEnum { } public static boolean exist(String name) { + if (name == null) { + return false; + } try { CouponFrequencyEnum.valueOf(name); } catch (IllegalArgumentException e) { diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/CouponActivityService.java b/framework/src/main/java/cn/lili/modules/promotion/service/CouponActivityService.java index b9bf6820..96d2f04a 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/CouponActivityService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/CouponActivityService.java @@ -32,6 +32,13 @@ public interface CouponActivityService extends AbstractPromotionsService> cache; + /** + * 延时任务 + */ + @Autowired + private TimeTrigger timeTrigger; + /** + * RocketMQ + */ + @Autowired + private RocketmqCustomProperties rocketmqCustomProperties; @Override public CouponActivityVO getCouponActivityVO(String couponActivityId) { @@ -67,9 +84,31 @@ public class CouponActivityServiceImpl extends AbstractPromotionsServiceImpl> member = this.getMemberList(couponActivity); @@ -92,7 +131,6 @@ public class CouponActivityServiceImpl extends AbstractPromotionsServiceImpl ongoingActivities(List activityVOS) { - if (activityVOS == null || activityVOS.size() == 0) { + if (activityVOS == null || activityVOS.isEmpty()) { return new ArrayList<>(); } return activityVOS.stream().filter(item -> { diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponSignServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponSignServiceImpl.java index ce2bea9d..e4afe14d 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponSignServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponSignServiceImpl.java @@ -1,19 +1,17 @@ package cn.lili.modules.promotion.serviceimpl; -import cn.lili.cache.Cache; -import cn.lili.cache.CachePrefix; import cn.lili.common.exception.ServiceException; import cn.lili.common.security.context.UserContext; import cn.lili.common.utils.DateUtil; import cn.lili.modules.promotion.entity.dos.CouponActivity; import cn.lili.modules.promotion.entity.dos.MemberCouponSign; +import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum; import cn.lili.modules.promotion.entity.enums.CouponFrequencyEnum; import cn.lili.modules.promotion.entity.vos.CouponActivityVO; import cn.lili.modules.promotion.mapper.MemberCouponSignMapper; import cn.lili.modules.promotion.service.MemberCouponSignService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -33,15 +31,11 @@ import java.util.List; public class MemberCouponSignServiceImpl extends ServiceImpl implements MemberCouponSignService { - @Autowired - private Cache cache; - @Override public void clean() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.lt(MemberCouponSign::getInvalidTime, DateUtil.getCurrentDayStartTime()); this.baseMapper.delete(queryWrapper); - cache.remove(CachePrefix.MEMBER_COUPON_SIGN.getPrefix()); } @Override @@ -115,6 +109,9 @@ public class MemberCouponSignServiceImpl extends ServiceImpl