docs(house): align assignment pricing with resource settlement

这个提交包含在:
API Changelog Bot 2026-07-05 15:26:25 +08:00
父节点 98094ec861
当前提交 6d6ee1ced1

查看文件

@ -0,0 +1,126 @@
# 房务配房弹窗改用资源结算价,并移除“同步协议价”(前端待处理)
- 日期2026-07-05
- 端:管理后台
- 页面:房务管家 / 待处理 / 订单详情配房弹窗
- 关联前序:`05_4745_资源结算价结算方式-修改接口-管理后台.md`
- 结论:房务配房里的“协议价 / 结算价”都应以资源价格日历为准,不再把结算价作为房务模块自有价格维护。
## 背景
资源侧酒店房型价格日历已经新增 `settlementPrice`(结算价)。当前房务配房弹窗里的“结算价”历史上直接使用或等同 `protocolPrice`,并且底部已选配房行还有“同步协议价”开关,这个交互已经不符合新口径。
新口径:
- 协议价:资源酒店房型价格日历 `protocolPrice`
- 结算价:资源酒店房型价格日历 `settlementPrice`
- 房务模块不再维护自己的结算价单源;配房时只选择酒店、房型、日期、间数等业务信息。
- “同步协议价”功能废弃,不再需要把房务结算价写回资源协议价。
## 前端必须调整
### 1. 结算价展示来源
房务选择酒店弹窗中,“结算价”列不要再用协议价兜底成同一个值。
应使用当前房型当前入住日期在资源价格日历上的:
| 页面字段 | 取值 |
|----------|------|
| 协议价 | `protocolPrice` |
| 结算价 | `settlementPrice` |
如果候选列表接口暂时只返回 `protocolPrice`,前端不要把 `protocolPrice` 当成结算价展示;应等待候选接口补 `settlementPrice`,或按房型和日期读取价格日历接口后再展示。
### 2. 去掉“同步协议价”
底部已选配房行里的“同步协议价”勾选项需要移除。
前端也不要再提交:
```json
{
"syncProtocolPrice": true
}
```
这个功能的旧含义是“把本次房务结算价写回资源协议价”,现在协议价和结算价已经是资源价格日历里的两个独立字段,不应再通过房务配房动作互相覆盖。
### 3. 弹窗内支持修改协议价 / 结算价
在选择酒店弹窗里,需要让房务可以直接修改当前行的协议价和结算价。
建议交互位置:
- 候选酒店 / 房型行:在协议价、结算价列提供可编辑入口或内联输入。
- 底部“已选配房”行:移除“同步协议价”后,提供协议价、结算价的修改入口。
保存时应写资源价格日历,而不是写房务 assignment 自有价格。
酒店房型价格日历接口:
```http
GET /admin/hotel/room-type/{roomTypeId}/prices
PUT /admin/hotel/room-type/{roomTypeId}/prices
```
单日修改时,请按当前入住日期提交:
```json
{
"startDate": "2026-07-24",
"endDate": "2026-07-24",
"protocolPrice": 320.00,
"settlementPrice": 300.00
}
```
保存成功后需要刷新候选列表和底部已选配房行,避免页面仍显示旧价格。
## 后端契约依赖
资源价格日历接口已按 4745/4746 约定新增:
| 字段 | 含义 |
|------|------|
| `protocolPrice` | 协议价 |
| `settlementPrice` | 结算价 |
房务候选酒店接口也需要透出房型维度的 `settlementPrice`,否则前端无法在配房弹窗中直接展示正确结算价。
候选链路涉及:
```http
GET /internal/resource/hotels/available
```
前端页面实际使用的房务候选接口如果由 order-v3 包装,也需要同步透出:
```json
{
"roomTypes": [
{
"roomTypeId": "80125",
"protocolPrice": "320.00",
"settlementPrice": "300.00"
}
]
}
```
当前旧房务提交/修改接口里仍可见历史字段:
- `sellPrice`
- `syncProtocolPrice`
这些字段属于旧口径。前端后续不要依赖 `syncProtocolPrice`;如测试环境后端在过渡期仍要求 `sellPrice` 必填,只能临时按资源 `settlementPrice` 透传兼容,不要把它当成房务模块可独立维护的结算价,也不要再提供“同步协议价”操作。
## 验收标准
- 房务配房弹窗候选行可同时看到协议价和结算价,且结算价取资源 `settlementPrice`
- 协议价与结算价不同时,页面不能把二者显示成同一个协议价。
- 底部已选配房行不再出现“同步协议价”勾选项。
- 提交配房或修改配房时,前端不再发送 `syncProtocolPrice`
- 在弹窗内修改协议价 / 结算价后,资源价格日历对应日期被更新,重新打开弹窗能看到新值。
- 修改结算价不会覆盖协议价;修改协议价也不会覆盖结算价,除非用户明确同时改两个字段。