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 000000000..1bf354543 --- /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 f5db60073..b3da10fcb 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 b9bf68204..96d2f04a5 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 ce2bea9d3..e4afe14d8 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