From 639435ec45e24283e7856ebed0a28cdb9f18f679 Mon Sep 17 00:00:00 2001 From: lifenlong Date: Mon, 24 May 2021 14:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E6=9C=89=E9=99=90=E6=9C=9F=E8=AE=BE=E7=BD=AE=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CouponActivityExecute.java | 2 +- .../handler/impl/coupon/CouponExecute.java | 38 +++++++++++++++++++ .../promotion/entity/dos/MemberCoupon.java | 17 +++++---- .../CouponActivityServiceImpl.java | 2 +- .../serviceimpl/PromotionServiceImpl.java | 3 +- 5 files changed, 52 insertions(+), 10 deletions(-) rename consumer/src/main/java/cn/lili/timetask/handler/impl/{couponActivity => coupon}/CouponActivityExecute.java (98%) create mode 100644 consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponExecute.java diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/couponActivity/CouponActivityExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponActivityExecute.java similarity index 98% rename from consumer/src/main/java/cn/lili/timetask/handler/impl/couponActivity/CouponActivityExecute.java rename to consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponActivityExecute.java index 9481998d..0bca3df4 100644 --- a/consumer/src/main/java/cn/lili/timetask/handler/impl/couponActivity/CouponActivityExecute.java +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponActivityExecute.java @@ -1,4 +1,4 @@ -package cn.lili.timetask.handler.impl.couponActivity; +package cn.lili.timetask.handler.impl.coupon; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponExecute.java new file mode 100644 index 00000000..68a66e98 --- /dev/null +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/coupon/CouponExecute.java @@ -0,0 +1,38 @@ +package cn.lili.timetask.handler.impl.coupon; + +import cn.hutool.core.date.DateUtil; +import cn.lili.modules.promotion.entity.dos.MemberCoupon; +import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum; +import cn.lili.modules.promotion.service.MemberCouponService; +import cn.lili.timetask.handler.EveryDayExecute; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 优惠券状态监测 + * + * @author Bulbasaur + * @date: 2021/5/24 10:08 上午 + */ +@Component +public class CouponExecute implements EveryDayExecute { + + @Autowired + private MemberCouponService memberCouponService; + + /** + * 检测优惠券的使用时间,超期未使用则失效 + * 此方法用于领取*天后失效优惠券使用 + */ + @Override + public void execute() { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() + .eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name()) + .le(MemberCoupon::getEndTime, DateUtil.date()) + .set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name()); + this.memberCouponService.update(updateWrapper); + + } + +} diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/MemberCoupon.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/MemberCoupon.java index 62028958..21e1f1ab 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/MemberCoupon.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/MemberCoupon.java @@ -1,6 +1,10 @@ package cn.lili.modules.promotion.entity.dos; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.lili.base.BaseEntity; +import cn.lili.modules.promotion.entity.enums.CouponRangeDayEnum; import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -114,14 +118,13 @@ public class MemberCoupon extends BaseEntity { setScopeId(coupon.getScopeId()); setCouponType(coupon.getCouponType()); setStartTime(coupon.getStartTime()); - setEndTime(coupon.getEndTime()); + setGetType(coupon.getGetType()); setStoreCommission(coupon.getStoreCommission()); + if(coupon.getRangeDayType().equals(CouponRangeDayEnum.FIXEDTIME.name())) { + setEndTime(coupon.getEndTime()); + }else { + setEndTime(DateUtil.offset(new DateTime(), DateField.DAY_OF_YEAR,coupon.getEffectiveDays())); + } } - - public boolean canUse() { - return this.getMemberCouponStatus().equals(MemberCouponStatusEnum.NEW.name()); - } - - } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponActivityServiceImpl.java index c78b41ae..fbe337d9 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponActivityServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponActivityServiceImpl.java @@ -130,8 +130,8 @@ public class CouponActivityServiceImpl extends ServiceImpl memberCouponList = new LinkedList<>(); //循环会员列表,添加优惠券 + MemberCoupon memberCoupon = new MemberCoupon(coupon); for (Map map : memberList) { - MemberCoupon memberCoupon = new MemberCoupon(coupon); memberCoupon.setMemberId(map.get("id").toString()); memberCoupon.setMemberName(map.get("nick_name").toString()); memberCoupon.setMemberCouponStatus(MemberCouponStatusEnum.NEW.name()); diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java index e16874dc..4e72d1a1 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java @@ -285,10 +285,11 @@ public class PromotionServiceImpl implements PromotionService { //修改优惠券 couponVO.setPromotionStatus(promotionMessage.getPromotionStatus()); result = this.couponService.update(promotionMessage.updateWrapper()); - //优惠券活动结束,会员已领取的优惠券状态修改为:已过期 + //优惠券活动结束,会员已领取未使用的优惠券状态修改为:已过期 if(couponVO.getPromotionStatus().equals(PromotionStatusEnum.END)){ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() .eq(MemberCoupon::getCouponId, couponVO.getId()) + .eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name()) .set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name()); this.memberCouponService.update(updateWrapper); }