docs(CLAUDE.md): 更新价格查询系统指导文档

- 新增价格查询系统的核心架构、关键组件、商品类型支持等内容
- 详细说明价格计算流程和优惠券系统
- 添加分页查询和统计功能的说明
- 新增开发模式下的操作指南,包括添加新商品类型和优惠券类型的步骤
- 介绍自定义TypeHandler的使用和测试策略
This commit is contained in:
2025-08-18 04:34:13 +08:00
parent 4787efd328
commit 9fef17bae5

View File

@@ -1,6 +1,6 @@
# CLAUDE.md
本文件为 Claude Code (claude.ai/code) 在此代码仓库中工作时提供指导。
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 构建和开发命令
@@ -121,3 +121,70 @@ mvn test -DskipTests=false
2. 添加 `@Component``@Profile("prod")` 注解
3. 使用 `@Scheduled` 进行基于 cron 的执行
4. 遵循现有的错误处理和日志记录模式
## 价格查询系统 (Pricing Module)
### 核心架构
价格查询系统是一个独立的业务模块,位于 `com.ycwl.basic.pricing` 包中,提供商品定价、优惠券管理和价格计算功能。
#### 关键组件
- **PriceCalculationController** (`/api/pricing/calculate`):价格计算API
- **CouponManagementController** (`/api/pricing/admin/coupons/`):优惠券管理API
- **PricingConfigController** (`/api/pricing/config/`):价格配置管理API
#### 商品类型支持
```java
ProductType枚举定义了支持的商品类型
- VLOG_VIDEO: Vlog视频
- RECORDING_SET: 录像集
- PHOTO_SET: 照相集
- PHOTO_PRINT: 照片打印
- MACHINE_PRINT: 一体机打印
```
#### 价格计算流程
1. 接收PriceCalculationRequest(包含商品列表和用户ID)
2. 查找商品基础配置和分层定价
3. 处理套餐商品(BundleProductItem)
4. 自动应用最优优惠券
5. 返回PriceCalculationResult(包含原价、最终价格、优惠详情)
#### 优惠券系统
- **CouponType**: PERCENTAGE(百分比)、FIXED_AMOUNT(固定金额)
- **CouponStatus**: CLAIMED(已领取)、USED(已使用)、EXPIRED(已过期)
- 支持商品类型限制 (`applicableProducts` JSON字段)
- 最小消费金额和最大折扣限制
- 时间有效期控制
#### 分页查询功能
所有管理接口都支持分页查询,使用PageHelper实现:
- 优惠券配置分页:支持按状态、名称筛选
- 领取记录分页:支持按用户、优惠券、状态、时间范围筛选
#### 统计功能
- 基础统计:领取数、使用数、可用数
- 详细统计:使用率、平均使用天数
- 时间范围统计:指定时间段的整体数据分析
### 开发模式
#### 添加新商品类型
1. 在ProductType枚举中添加新类型
2. 在PriceProductConfig表中配置default配置
3. 根据需要添加分层定价(PriceTierConfig)
4. 更新前端产品类型映射
#### 添加新优惠券类型
1. 在CouponType枚举中添加类型
2. 在CouponServiceImpl中实现计算逻辑
3. 更新applicableProducts验证规则
#### 自定义TypeHandler使用
项目使用自定义TypeHandler处理复杂JSON字段:
- `BundleProductListTypeHandler`:处理套餐商品列表JSON序列化
### 测试策略
- 单元测试:每个服务类都有对应测试类
- 配置验证测试:DefaultConfigValidationTest验证default配置
- JSON序列化测试:验证复杂对象的数据库存储
- 分页功能测试:验证PageHelper集成