# 统一价格日历接口 /admin/product/item/{id}/pricing-calendar **日期**: 2026-04-23 **PR**: #1290 (Closes #1286) **服务**: hl-product-service-v2 **类型**: feat(新增接口,零破坏性) --- ## 背景 之前 admin 查价格日历需要分场景调两个不同接口: - CORE/CUSTOM → `GET /admin/product/item/{id}/price-calendar` - GROUP(小蒙马) → `GET /admin/product/item/{id}/schedule/list` **根因**:GROUP 定价真相源是 `group_tour_batch.adult_price`(班期表),不走 `product_price_calendar`。前端要按 `productType` 分流调用。 本次新增**统一入口**,后端按 productType 聚合两种数据源,前端一个接口搞定。 --- ## 新接口 ### `GET /admin/product/item/{id}/pricing-calendar` **Query 参数** - `month`(可选):`yyyy-MM`,过滤月份。不传返全部 - `tierSeq`(可选):档位序号,**仅 CORE/CUSTOM 生效**,GROUP 忽略 **响应** ```json { "code": 200, "data": { "productType": "CORE | GROUP | CUSTOM", "items": [ { ... 统一条目 VO ... } ] } } ``` ### 统一条目 VO 字段表 | 字段 | 类型 | CORE/CUSTOM | GROUP | |------|------|-------------|-------| | **通用** | | `date` | LocalDate | 每日价格日 | 出发日(departureDate)| | `adultPrice` | BigDecimal | adultSellPrice | adultPrice | | `childPrice` | BigDecimal | childSellPrice | childPrice | | `toddlerDiscount` | BigDecimal | ✅ | ✅ | | `infantPrice` | BigDecimal | ✅ | ✅ | | `stock` | Integer | dailyStock | productStockLimit(无则 maxParticipants)| | `sold` | Integer | sold | enrolledCount | | `sellable` | Boolean | dailyStock 空或 sold