fix(pricing): 完善券码验证逻辑并优化使用权限判断

- 新增用户在指定批次下的使用次数统计和最后使用时间获取功能
- 重构券码验证逻辑,支持未领取券码的使用权限判断
- 优化已领取券码的使用限制检查,包括使用次数和间隔时间- 改进日志记录,增加剩余使用次数信息
-修复一些潜在的逻辑问题和边界情况处理
This commit is contained in:
2025-09-16 17:55:24 +08:00
parent 57266eb535
commit 90a21c0933
3 changed files with 125 additions and 35 deletions

View File

@@ -89,6 +89,26 @@ public interface PriceVoucherUsageRecordMapper extends BaseMapper<PriceVoucherUs
@Select("SELECT COUNT(*) FROM price_voucher_usage_record WHERE batch_id = #{batchId} AND deleted = 0")
Integer countByBatchId(@Param("batchId") Long batchId);
/**
* 统计用户在指定批次下的使用次数
*
* @param faceId 用户faceId
* @param batchId 批次ID
* @return 使用次数
*/
@Select("SELECT COUNT(*) FROM price_voucher_usage_record WHERE face_id = #{faceId} AND batch_id = #{batchId} AND deleted = 0")
Integer countByFaceIdAndBatchId(@Param("faceId") Long faceId, @Param("batchId") Long batchId);
/**
* 获取用户在指定批次下最后一次使用时间
*
* @param faceId 用户faceId
* @param batchId 批次ID
* @return 最后使用时间
*/
@Select("SELECT MAX(use_time) FROM price_voucher_usage_record WHERE face_id = #{faceId} AND batch_id = #{batchId} AND deleted = 0")
Date getLastUseTimeByFaceIdAndBatchId(@Param("faceId") Long faceId, @Param("batchId") Long batchId);
/**
* 分页查询券码使用记录
*