feat: 小童/幼童定价模式扩展 (PR #83)

这个提交包含在:
API Changelog Bot 2026-03-31 13:01:45 +08:00
父节点 632c16d5fa
当前提交 d1cfb79bdf

查看文件

@ -0,0 +1,65 @@
# 小童/幼童定价模式扩展
**日期**: 2026-03-31
**PR**: #83
**类型**: feat新功能
**影响服务**: hl-product-service, hl-mp-service
---
## 变更说明
小童和幼童的定价方式从固定模式改为"百分比 / 固定价"二选一。
### 之前
- 小童:只能按儿童价百分比(`childDiscountPercent`
- 幼童:只能用固定价(`babyPrice`
### 现在
- 小童:**百分比**或**固定价**,由 `youngChildPriceMode` 控制
- 幼童:**百分比**或**固定价**,由 `babyPriceMode` 控制
- 百分比基数统一为**儿童售价**
---
## 新增字段(定价配置接口)
### POST/PUT `/api/product/internal/{productId}/pricing`
| 字段 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `youngChildPriceMode` | String | `"PERCENT"` | 小童定价模式:`PERCENT`=按儿童价百分比, `FIXED`=固定价 |
| `youngChildFixedPrice` | BigDecimal | null | 小童固定价格(`FIXED`模式时使用) |
| `babyPriceMode` | String | `"FIXED"` | 幼童定价模式:`PERCENT`=按儿童价百分比, `FIXED`=固定价 |
| `babyDiscountPercent` | BigDecimal | null | 幼童折扣百分比(`PERCENT`模式时使用,如50=儿童价的50% |
### GET `/api/product/internal/{productId}/pricing` 响应同步新增以上4个字段
---
## 前端适配要点
### 管理后台 - 定价配置页面
1. **小童定价**区域新增切换:
- 百分比模式(默认):显示 `childDiscountPercent` 输入框(已有)
- 固定价模式:显示 `youngChildFixedPrice` 输入框(新增)
2. **幼童定价**区域新增切换:
- 固定价模式(默认):显示 `babyPrice` 输入框(已有)
- 百分比模式:显示 `babyDiscountPercent` 输入框(新增)
### 小程序端
无需改动。价格日历返回的 `youngChildPrice``babyPrice` 已经是计算后的最终价格。
---
## 向后兼容
- 不传 `youngChildPriceMode`/`babyPriceMode` 时使用默认值,行为与改动前完全一致
- 已有产品数据无需迁移
## 部署注意
需要执行 SQL 迁移脚本:`sql/young_child_baby_price_mode.sql`