You've already forked FrameTour-BE
feat(voucher): 支持券码重复使用
- 新增VoucherBatchCreateReqV2 请求对象,用于创建支持重复使用的券码批次 - 添加 VoucherUsageController 控制器,实现券码使用记录和统计功能 - 在VoucherInfo 对象中增加与重复使用相关的字段 - 修改 PriceVoucherBatchConfig 和 PriceVoucherCode 实体,支持重复使用相关属性 - 更新 VoucherBatchServiceImpl 和 VoucherServiceImpl,增加处理重复使用逻辑的方法
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package com.ycwl.basic.pricing.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ycwl.basic.pricing.dto.req.VoucherUsageHistoryReq;
|
||||
import com.ycwl.basic.pricing.dto.resp.VoucherUsageRecordResp;
|
||||
import com.ycwl.basic.pricing.dto.resp.VoucherUsageStatsResp;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 券码使用记录服务接口
|
||||
*/
|
||||
public interface IVoucherUsageService {
|
||||
|
||||
/**
|
||||
* 分页查询券码使用记录
|
||||
*
|
||||
* @param req 查询请求
|
||||
* @return 分页结果
|
||||
*/
|
||||
Page<VoucherUsageRecordResp> getUsageHistory(VoucherUsageHistoryReq req);
|
||||
|
||||
/**
|
||||
* 获取指定券码的使用记录
|
||||
*
|
||||
* @param voucherCode 券码
|
||||
* @return 使用记录列表
|
||||
*/
|
||||
List<VoucherUsageRecordResp> getUsageRecordsByCode(String voucherCode);
|
||||
|
||||
/**
|
||||
* 获取用户在指定景区的券码使用记录
|
||||
*
|
||||
* @param faceId 用户faceId
|
||||
* @param scenicId 景区ID
|
||||
* @return 使用记录列表
|
||||
*/
|
||||
List<VoucherUsageRecordResp> getUserUsageRecords(Long faceId, Long scenicId);
|
||||
|
||||
/**
|
||||
* 获取券码使用统计信息
|
||||
*
|
||||
* @param voucherCode 券码
|
||||
* @return 统计信息
|
||||
*/
|
||||
VoucherUsageStatsResp getUsageStats(String voucherCode);
|
||||
|
||||
/**
|
||||
* 获取批次券码使用统计信息
|
||||
*
|
||||
* @param batchId 批次ID
|
||||
* @return 统计信息列表
|
||||
*/
|
||||
List<VoucherUsageStatsResp> getBatchUsageStats(Long batchId);
|
||||
|
||||
/**
|
||||
* 记录券码使用(内部方法,由VoucherService调用)
|
||||
*
|
||||
* @param voucherCode 券码
|
||||
* @param faceId 用户faceId
|
||||
* @param orderId 订单ID
|
||||
* @param discountAmount 优惠金额
|
||||
* @param remark 备注
|
||||
*/
|
||||
void recordVoucherUsage(String voucherCode, Long faceId, String orderId,
|
||||
java.math.BigDecimal discountAmount, String remark);
|
||||
}
|
||||
Reference in New Issue
Block a user