feat(pricing): 添加优惠券管理功能

- 新增 CouponManagementController 控制器,实现优惠券配置和领取记录的管理
- 新增 ICouponManagementService 接口和 CouponManagementServiceImpl 实现类,提供优惠券管理服务
- 在 PricingConfigController 中添加获取所有优惠券配置和领取记录的接口
- 新增 BundleProductListTypeHandler 类,用于处理一口价商品列表的序列化和反序列化
- 更新 PriceCouponClaimRecordMapper 和 PriceCouponConfigMapper,添加管理端所需的查询接口
This commit is contained in:
2025-08-18 04:33:58 +08:00
parent 16e07ee9ef
commit 4787efd328
7 changed files with 813 additions and 0 deletions

View File

@@ -4,9 +4,12 @@ import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.pricing.entity.PriceProductConfig;
import com.ycwl.basic.pricing.entity.PriceTierConfig;
import com.ycwl.basic.pricing.entity.PriceBundleConfig;
import com.ycwl.basic.pricing.entity.PriceCouponConfig;
import com.ycwl.basic.pricing.entity.PriceCouponClaimRecord;
import com.ycwl.basic.pricing.service.IProductConfigService;
import com.ycwl.basic.pricing.service.IPriceBundleService;
import com.ycwl.basic.pricing.service.IPricingManagementService;
import com.ycwl.basic.pricing.service.ICouponManagementService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@@ -25,6 +28,7 @@ public class PricingConfigController {
private final IProductConfigService productConfigService;
private final IPriceBundleService bundleService;
private final IPricingManagementService managementService;
private final ICouponManagementService couponManagementService;
// ==================== 查询API ====================
@@ -273,4 +277,24 @@ public class PricingConfigController {
List<PriceBundleConfig> configs = bundleService.getAllBundlesForAdmin();
return ApiResponse.success(configs);
}
/**
* 管理端:获取所有优惠券配置(包含禁用的)
*/
@GetMapping("/admin/coupons")
public ApiResponse<List<PriceCouponConfig>> getAllCouponConfigsForAdmin() {
log.info("管理端获取所有优惠券配置");
List<PriceCouponConfig> configs = couponManagementService.getAllCouponConfigs();
return ApiResponse.success(configs);
}
/**
* 管理端:获取所有优惠券领取记录
*/
@GetMapping("/admin/coupon-records")
public ApiResponse<List<PriceCouponClaimRecord>> getAllCouponClaimRecordsForAdmin() {
log.info("管理端获取所有优惠券领取记录");
List<PriceCouponClaimRecord> records = couponManagementService.getAllClaimRecords();
return ApiResponse.success(records);
}
}