feat(pricing): 增加景区优惠券统计功能并优化优惠券使用逻辑

- 新增景区优惠券统计接口和相关查询方法
- 为优惠券配置和使用记录添加景区ID字段
- 实现优惠券使用时的景区限制检查
- 优化优惠券适用性的判断逻辑,增加对景区和商品类型的检查
This commit is contained in:
2025-08-18 04:58:38 +08:00
parent 9fef17bae5
commit 9e0286e66e
10 changed files with 184 additions and 39 deletions

View File

@@ -85,11 +85,12 @@ public class CouponManagementController {
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) Boolean isActive,
@RequestParam(required = false) String couponName) {
log.info("分页查询优惠券配置: pageNum={}, pageSize={}, isActive={}, couponName={}",
pageNum, pageSize, isActive, couponName);
@RequestParam(required = false) String couponName,
@RequestParam(required = false) String scenicId) {
log.info("分页查询优惠券配置: pageNum={}, pageSize={}, isActive={}, couponName={}, scenicId={}",
pageNum, pageSize, isActive, couponName, scenicId);
PageInfo<PriceCouponConfig> pageInfo = couponManagementService.getCouponConfigsPage(
pageNum, pageSize, isActive, couponName);
pageNum, pageSize, isActive, couponName, scenicId);
return ApiResponse.success(pageInfo);
}
@@ -136,11 +137,12 @@ public class CouponManagementController {
@RequestParam(required = false) Long couponId,
@RequestParam(required = false) CouponStatus status,
@RequestParam(required = false) String startTime,
@RequestParam(required = false) String endTime) {
log.info("分页查询优惠券领取记录: pageNum={}, pageSize={}, userId={}, couponId={}, status={}, startTime={}, endTime={}",
pageNum, pageSize, userId, couponId, status, startTime, endTime);
@RequestParam(required = false) String endTime,
@RequestParam(required = false) String scenicId) {
log.info("分页查询优惠券领取记录: pageNum={}, pageSize={}, userId={}, couponId={}, status={}, startTime={}, endTime={}, scenicId={}",
pageNum, pageSize, userId, couponId, status, startTime, endTime, scenicId);
PageInfo<PriceCouponClaimRecord> pageInfo = couponManagementService.getClaimRecordsPage(
pageNum, pageSize, userId, couponId, status, startTime, endTime);
pageNum, pageSize, userId, couponId, status, startTime, endTime, scenicId);
return ApiResponse.success(pageInfo);
}
@@ -202,9 +204,20 @@ public class CouponManagementController {
@GetMapping("/stats/period")
public ApiResponse<Map<String, Object>> getPeriodStats(
@RequestParam String startDate,
@RequestParam String endDate) {
log.info("查询时间范围统计: startDate={}, endDate={}", startDate, endDate);
Map<String, Object> stats = couponManagementService.getPeriodStats(startDate, endDate);
@RequestParam String endDate,
@RequestParam(required = false) String scenicId) {
log.info("查询时间范围统计: startDate={}, endDate={}, scenicId={}", startDate, endDate, scenicId);
Map<String, Object> stats = couponManagementService.getPeriodStats(startDate, endDate, scenicId);
return ApiResponse.success(stats);
}
/**
* 查询景区优惠券统计
*/
@GetMapping("/stats/scenic/{scenicId}")
public ApiResponse<Map<String, Object>> getScenicCouponStats(@PathVariable String scenicId) {
log.info("查询景区优惠券统计: scenicId={}", scenicId);
Map<String, Object> stats = couponManagementService.getScenicCouponStats(scenicId);
return ApiResponse.success(stats);
}