diff --git a/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponClaimRecord.java b/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponClaimRecord.java index dd5c24b5..9e5dbcfb 100644 --- a/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponClaimRecord.java +++ b/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponClaimRecord.java @@ -33,7 +33,13 @@ public class PriceCouponClaimRecord { * 领取时间 */ private Date claimTime; - + + /** + * 过期时间(根据领取时间+领取后有效期计算) + */ + @TableField("expire_time") + private Date expireTime; + /** * 使用时间 */ diff --git a/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponConfig.java b/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponConfig.java index fd85c025..9be942bb 100644 --- a/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponConfig.java +++ b/src/main/java/com/ycwl/basic/pricing/entity/PriceCouponConfig.java @@ -85,7 +85,12 @@ public class PriceCouponConfig { * 失效时间 */ private Date validUntil; - + + /** + * 领取后有效天数(NULL表示不限制,仅使用全局有效期) + */ + private Integer validDaysAfterClaim; + /** * 是否启用 */ diff --git a/src/main/java/com/ycwl/basic/pricing/mapper/PriceCouponClaimRecordMapper.java b/src/main/java/com/ycwl/basic/pricing/mapper/PriceCouponClaimRecordMapper.java index d5484183..8ebfde58 100644 --- a/src/main/java/com/ycwl/basic/pricing/mapper/PriceCouponClaimRecordMapper.java +++ b/src/main/java/com/ycwl/basic/pricing/mapper/PriceCouponClaimRecordMapper.java @@ -25,7 +25,8 @@ public interface PriceCouponClaimRecordMapper extends BaseMapper NOW()") + "AND c.is_active = 1 AND c.valid_from <= NOW() AND c.valid_until > NOW() " + + "AND (r.expire_time IS NULL OR r.expire_time > NOW())") List selectUserAvailableCoupons(Long userId); /** @@ -58,8 +59,8 @@ public interface PriceCouponClaimRecordMapper extends BaseMapper 0) { + java.util.Calendar calendar = java.util.Calendar.getInstance(); + calendar.setTime(claimTime); + calendar.add(java.util.Calendar.DAY_OF_MONTH, coupon.getValidDaysAfterClaim()); + claimRecord.setExpireTime(calendar.getTime()); + } + claimRecord.setStatus(CouponStatus.CLAIMED); claimRecord.setScenicId(request.getScenicId()); claimRecord.setCreateTime(claimTime);