91 行
3.2 KiB
Markdown
91 行
3.2 KiB
Markdown
# 配房需求:酒店、房型、房间数均改为非必填
|
||
|
||
> 模块:管理后台 · 调整订单弹窗 · 酒店安排 / 配房需求
|
||
> 类型:前端处理说明(需求口径,需前后端校验同步放宽)
|
||
> 日期:2026-07-03
|
||
|
||
## 背景
|
||
|
||
当前调整订单弹窗的「酒店安排」里,前端会在候选酒店行校验房型必填,出现类似「第 1 晚候选 2 请选择房型」的提示。
|
||
|
||
新需求口径:配房需求只表达定制师诉求,具体酒店 / 房型 / 房间数都可以交给房控处理,因此这三项都不能作为前端提交前的必填项。
|
||
|
||
## 涉及接口
|
||
|
||
- `POST /v3/admin/order/{orderId}/adjustment/submit`,当 `updates.hotelRequirement` 有值时。
|
||
- `PUT /v3/admin/order/{orderId}/hotel-requirement`,独立提交 / 修改用房需求时。
|
||
|
||
## 前端处理口径
|
||
|
||
调整订单 → 酒店安排:
|
||
|
||
- 候选酒店可以不选;不选表示「房控按诉求找酒店」。
|
||
- 房型可以不选;即使已经选择了酒店,也不要再弹「请选择房型」。
|
||
- 房间数可以不填;不要强制默认 1 / 2,也不要把空值转成 `0`。
|
||
- 用户只填写备注 / 诉求、不填酒店 / 房型 / 房间数时,也允许保存。
|
||
- 只有用户主动删除候选行时才移除该候选;空字段本身不等于删除候选。
|
||
|
||
## Payload 建议
|
||
|
||
空值请用 `null` 或直接省略字段,不要传空字符串或 `0`:
|
||
|
||
```json
|
||
{
|
||
"updates": {
|
||
"hotelRequirement": {
|
||
"days": [
|
||
{
|
||
"dayNumber": 1,
|
||
"segments": [
|
||
{
|
||
"remark": "希望离餐厅近,房控按实际可订情况安排",
|
||
"candidates": [
|
||
{
|
||
"hotelId": null,
|
||
"hotelName": null,
|
||
"rooms": [],
|
||
"remark": "酒店待房控确认"
|
||
},
|
||
{
|
||
"hotelId": 2029926129876320258,
|
||
"hotelName": "海拉尔嘉世豪酒店",
|
||
"rooms": [
|
||
{
|
||
"roomTypeId": null,
|
||
"roomTypeName": null,
|
||
"roomCategory": null,
|
||
"roomCount": null,
|
||
"remark": "房型和间数待房控确认"
|
||
}
|
||
],
|
||
"remark": "可优先考虑这家酒店"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## 兼容提醒
|
||
|
||
历史通知里曾要求「选酒店后房型必填、房间数 > 0」。该口径已被本需求覆盖,前端不要再按旧口径做本地必填拦截。
|
||
|
||
当前后端旧校验可能仍会返回:
|
||
|
||
- `582019`:候选方案必须至少含 1 个房型行
|
||
- `582020`:房型行必须指定房型
|
||
- `582016`:roomCount 必须 > 0
|
||
|
||
如联调时仍遇到这些错误码,说明后端校验尚未同步放宽;前端不应恢复必填校验,应按本需求等待后端契约对齐。
|
||
|
||
## 验收点
|
||
|
||
- 第 1 晚候选酒店留空,可以提交。
|
||
- 选择了酒店但房型留空,不再提示「请选择房型」。
|
||
- 房间数留空,不再提示必填或自动写入 `0`。
|
||
- 只填备注 / 诉求、不填酒店 / 房型 / 房间数,前端允许保存。
|