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 7 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
8 8 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;
9 9 import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;
  10 +import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;
10 11 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
11 12 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
12 13 import org.apache.ibatis.annotations.Mapper;
13 14  
14 15 import java.time.LocalDateTime;
15   -import java.util.Collection;
16 16 import java.util.List;
17 17 import java.util.function.Consumer;
18 18  
... ... @@ -68,9 +68,9 @@ public interface CouponTemplateMapper extends BaseMapperX<CouponTemplateDO> {
68 68 canTakeConsumer = w ->
69 69 w.eq(CouponTemplateDO::getStatus, CommonStatusEnum.ENABLE.getStatus()) // 1. 状态为可用的
70 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 75 return canTakeConsumer;
76 76 }
... ...