feat: 房间数自动计算 + 多档位最低价 changelog
这个提交包含在:
父节点
6fd61ee06f
当前提交
61f1e279c0
@ -0,0 +1,68 @@
|
|||||||
|
# 小蒙马房间数自动计算 + 多档位最低价
|
||||||
|
|
||||||
|
- **日期**: 2026-04-15
|
||||||
|
- **服务**: hl-product-service-v2
|
||||||
|
- **PR**: #595, #596
|
||||||
|
- **类型**: feat (新功能)
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
1. 行程设计中的住宿房间数自动取最小值作为班期默认房间数,不再需要班期里单独传
|
||||||
|
2. 多档位产品详情返回各档位各自的最低价
|
||||||
|
|
||||||
|
## 功能1:房间数自动计算
|
||||||
|
|
||||||
|
### 行为变更
|
||||||
|
|
||||||
|
- **保存行程(Step2)时**,后端自动计算各天住宿(档位1)的最小 `roomCount`,写入 `defaultRoomCount`
|
||||||
|
- 例:D1=8间、D2=9间、D3=8间 → `defaultRoomCount = 8`
|
||||||
|
- **创建班期时**,如果 `maxRooms` 未传或传0,自动使用 `defaultRoomCount`
|
||||||
|
- 批量创建班期同样适用
|
||||||
|
- 如果手动传了 `maxRooms > 0`,仍以手动值为准
|
||||||
|
|
||||||
|
### 接口影响
|
||||||
|
|
||||||
|
无新增接口。现有接口行为变更:
|
||||||
|
|
||||||
|
**PUT /admin/product/item/{id}/itinerary**(Step2 保存行程)
|
||||||
|
- 保存后自动更新 `defaultRoomCount`
|
||||||
|
|
||||||
|
**POST /admin/product/item/{id}/schedule**(创建班期)
|
||||||
|
- `maxRooms` 为空或0时自动取 `defaultRoomCount`
|
||||||
|
|
||||||
|
**POST /admin/product/item/{id}/schedule/batch-create**(批量创建班期)
|
||||||
|
- 同上
|
||||||
|
|
||||||
|
## 功能2:多档位最低价
|
||||||
|
|
||||||
|
### GET /mp/product/{id} 新增字段
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `tierPrices` | Array/null | 各档位起步价,仅多档位产品返回 |
|
||||||
|
|
||||||
|
`tierPrices` 数组元素结构:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `tierSeq` | Integer | 档位序号 |
|
||||||
|
| `tierName` | String | 档位名称 |
|
||||||
|
| `startPrice` | BigDecimal | 该档位未来可售最低成人售价 |
|
||||||
|
|
||||||
|
### 响应示例
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"startPrice": 7980.0,
|
||||||
|
"tierPrices": [
|
||||||
|
{"tierSeq": 1, "tierName": "精选", "startPrice": 7980.0},
|
||||||
|
{"tierSeq": 2, "tierName": "臻享", "startPrice": 9980.0}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 规则
|
||||||
|
|
||||||
|
- `startPrice` 保留为全局最低价(向后兼容)
|
||||||
|
- `tierPrices` 仅多档位产品返回,单档位产品为 `null`
|
||||||
|
- 每个档位的 `startPrice` 独立计算(未来日期 + 售价>0 的最低值)
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户