You've already forked FrameTour-BE
feat(voucher): 支持券码重复使用
- 新增VoucherBatchCreateReqV2 请求对象,用于创建支持重复使用的券码批次 - 添加 VoucherUsageController 控制器,实现券码使用记录和统计功能 - 在VoucherInfo 对象中增加与重复使用相关的字段 - 修改 PriceVoucherBatchConfig 和 PriceVoucherCode 实体,支持重复使用相关属性 - 更新 VoucherBatchServiceImpl 和 VoucherServiceImpl,增加处理重复使用逻辑的方法
This commit is contained in:
@@ -16,14 +16,29 @@ public enum VoucherCodeStatus {
|
||||
UNCLAIMED(0, "未领取"),
|
||||
|
||||
/**
|
||||
* 已领取未使用
|
||||
* 已领取可使用(可重复使用状态,替代原CLAIMED_UNUSED)
|
||||
*/
|
||||
CLAIMED_AVAILABLE(1, "已领取可使用"),
|
||||
|
||||
/**
|
||||
* 已领取未使用(兼容原有逻辑,等同于CLAIMED_AVAILABLE)
|
||||
*/
|
||||
CLAIMED_UNUSED(1, "已领取未使用"),
|
||||
|
||||
/**
|
||||
* 已使用
|
||||
* 已使用(兼容原有逻辑,当达到最大使用次数时为此状态)
|
||||
*/
|
||||
USED(2, "已使用");
|
||||
USED(2, "已使用"),
|
||||
|
||||
/**
|
||||
* 已领取已用完(达到最大使用次数)
|
||||
*/
|
||||
CLAIMED_EXHAUSTED(3, "已领取已用完"),
|
||||
|
||||
/**
|
||||
* 已过期
|
||||
*/
|
||||
EXPIRED(4, "已过期");
|
||||
|
||||
private final Integer code;
|
||||
private final String name;
|
||||
@@ -55,20 +70,38 @@ public enum VoucherCodeStatus {
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否可以使用(已领取未使用状态)
|
||||
* 检查是否可以使用(已领取可使用状态)
|
||||
* @param code 状态代码
|
||||
* @return 是否可以使用
|
||||
*/
|
||||
public static boolean canUse(Integer code) {
|
||||
return CLAIMED_UNUSED.getCode().equals(code);
|
||||
return CLAIMED_AVAILABLE.getCode().equals(code) || CLAIMED_UNUSED.getCode().equals(code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否已使用
|
||||
* 检查是否已完全使用完(已使用或已用完状态)
|
||||
* @param code 状态代码
|
||||
* @return 是否已完全使用完
|
||||
*/
|
||||
public static boolean isExhausted(Integer code) {
|
||||
return USED.getCode().equals(code) || CLAIMED_EXHAUSTED.getCode().equals(code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否为已使用状态(兼容原有逻辑)
|
||||
* @param code 状态代码
|
||||
* @return 是否已使用
|
||||
*/
|
||||
public static boolean isUsed(Integer code) {
|
||||
return USED.getCode().equals(code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否已过期
|
||||
* @param code 状态代码
|
||||
* @return 是否已过期
|
||||
*/
|
||||
public static boolean isExpired(Integer code) {
|
||||
return EXPIRED.getCode().equals(code);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user