新增优惠券有限期设置类型

This commit is contained in:
lifenlong 2021-05-24 14:00:07 +08:00
parent 777226dc95
commit 639435ec45
5 changed files with 52 additions and 10 deletions

View File

@ -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;

View File

@ -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<MemberCoupon> updateWrapper = new LambdaUpdateWrapper<MemberCoupon>()
.eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name())
.le(MemberCoupon::getEndTime, DateUtil.date())
.set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name());
this.memberCouponService.update(updateWrapper);
}
}

View File

@ -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());
}
}

View File

@ -130,8 +130,8 @@ public class CouponActivityServiceImpl extends ServiceImpl<CouponActivityMapper,
if (coupon != null) {
List<MemberCoupon> memberCouponList = new LinkedList<>();
//循环会员列表添加优惠券
MemberCoupon memberCoupon = new MemberCoupon(coupon);
for (Map<String, Object> 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());

View File

@ -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<MemberCoupon> updateWrapper = new LambdaUpdateWrapper<MemberCoupon>()
.eq(MemberCoupon::getCouponId, couponVO.getId())
.eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name())
.set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name());
this.memberCouponService.update(updateWrapper);
}