Commit dae4e64a646988bb58d52d42a737f8bdc175ad95

Authored by YunaiV
1 parent bbfff1ba

【修复】商城系统:管理后台发放优惠劵时,只能发送未修改过有效期类型的优惠券

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/coupon/CouponTemplateMapper.java
@@ -7,12 +7,12 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -7,12 +7,12 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
7 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
8 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO; 8 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;
9 import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO; 9 import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;
  10 +import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;
10 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 11 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
11 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 12 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
12 import org.apache.ibatis.annotations.Mapper; 13 import org.apache.ibatis.annotations.Mapper;
13 14
14 import java.time.LocalDateTime; 15 import java.time.LocalDateTime;
15 -import java.util.Collection;  
16 import java.util.List; 16 import java.util.List;
17 import java.util.function.Consumer; 17 import java.util.function.Consumer;
18 18
@@ -68,9 +68,9 @@ public interface CouponTemplateMapper extends BaseMapperX<CouponTemplateDO> { @@ -68,9 +68,9 @@ public interface CouponTemplateMapper extends BaseMapperX<CouponTemplateDO> {
68 canTakeConsumer = w -> 68 canTakeConsumer = w ->
69 w.eq(CouponTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) // 1. 状态为可用的 69 w.eq(CouponTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) // 1. 状态为可用的
70 .in(CouponTemplateDO::getTakeType, canTakeTypes) // 2. 领取方式一致 70 .in(CouponTemplateDO::getTakeType, canTakeTypes) // 2. 领取方式一致
71 - .and(ww -> ww.isNull(CouponTemplateDO::getValidEndTime) // 3. 未过期  
72 - .or().gt(CouponTemplateDO::getValidEndTime, LocalDateTime.now()))  
73 - .apply(" take_count < total_count "); // 4. 剩余数量大于 0 71 + .and(ww -> ww.gt(CouponTemplateDO::getValidEndTime, LocalDateTime.now()) // 3.1 未过期
  72 + .or().eq(CouponTemplateDO::getValidityType, CouponTemplateValidityTypeEnum.TERM.getType())) // 3.2 领取之后
  73 + .apply(" (take_count < total_count OR total_count = -1 )"); // 4. 剩余数量大于 0,或者无限领取
74 } 74 }
75 return canTakeConsumer; 75 return canTakeConsumer;
76 } 76 }