You've already forked FrameTour-BE
- 在 PriceCouponClaimRecord 实体中添加过期时间字段 - 在 PriceCouponConfig 实体中添加领取后有效天数配置 - 更新查询可用优惠券的 SQL 条件以过滤过期券 - 修改插入领用记录的 SQL 语句以包含过期时间 - 实现领取时根据配置计算过期时间的逻辑
118 lines
2.2 KiB
Java
118 lines
2.2 KiB
Java
package com.ycwl.basic.pricing.entity;
|
|
|
|
import com.baomidou.mybatisplus.annotation.IdType;
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
import com.baomidou.mybatisplus.annotation.TableId;
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
|
import com.ycwl.basic.pricing.enums.CouponType;
|
|
import lombok.Data;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.util.Date;
|
|
|
|
/**
|
|
* 优惠券配置实体
|
|
*/
|
|
@Data
|
|
@TableName("price_coupon_config")
|
|
public class PriceCouponConfig {
|
|
|
|
@TableId(value = "id", type = IdType.AUTO)
|
|
private Long id;
|
|
|
|
/**
|
|
* 优惠券名称
|
|
*/
|
|
private String couponName;
|
|
|
|
/**
|
|
* 优惠券类型
|
|
*/
|
|
private CouponType couponType;
|
|
|
|
/**
|
|
* 优惠值
|
|
*/
|
|
private BigDecimal discountValue;
|
|
|
|
/**
|
|
* 最小使用金额
|
|
*/
|
|
private BigDecimal minAmount;
|
|
|
|
/**
|
|
* 最大优惠金额
|
|
*/
|
|
private BigDecimal maxDiscount;
|
|
|
|
/**
|
|
* 适用商品类型(JSON)
|
|
*/
|
|
private String applicableProducts;
|
|
|
|
/**
|
|
* 优惠券使用门槛:要求在可折扣商品范围内出现指定属性Key(JSON)
|
|
* 为空表示不限制
|
|
*/
|
|
private String requiredAttributeKeys;
|
|
|
|
/**
|
|
* 发行总量
|
|
*/
|
|
private Integer totalQuantity;
|
|
|
|
/**
|
|
* 已使用数量
|
|
*/
|
|
private Integer usedQuantity;
|
|
|
|
/**
|
|
* 已领取数量(区分于已使用数量)
|
|
*/
|
|
private Integer claimedQuantity;
|
|
|
|
/**
|
|
* 每个用户可领取数量限制(NULL表示不限制)
|
|
*/
|
|
private Integer userClaimLimit;
|
|
|
|
/**
|
|
* 生效时间
|
|
*/
|
|
private Date validFrom;
|
|
|
|
/**
|
|
* 失效时间
|
|
*/
|
|
private Date validUntil;
|
|
|
|
/**
|
|
* 领取后有效天数(NULL表示不限制,仅使用全局有效期)
|
|
*/
|
|
private Integer validDaysAfterClaim;
|
|
|
|
/**
|
|
* 是否启用
|
|
*/
|
|
private Boolean isActive;
|
|
|
|
/**
|
|
* 景区ID - 限制优惠券只能在该景区使用
|
|
*/
|
|
private String scenicId;
|
|
|
|
@TableField("create_time")
|
|
private Date createTime;
|
|
|
|
@TableField("update_time")
|
|
private Date updateTime;
|
|
|
|
private Long createBy;
|
|
|
|
private Long updateBy;
|
|
|
|
private Integer deleted;
|
|
|
|
private Date deletedAt;
|
|
}
|