diff --git a/changelogs-v2/2026-07/03_配房需求酒店房型房间数均非必填-前端处理-管理后台.md b/changelogs-v2/2026-07/03_配房需求酒店房型房间数均非必填-前端处理-管理后台.md new file mode 100644 index 0000000..75d8467 --- /dev/null +++ b/changelogs-v2/2026-07/03_配房需求酒店房型房间数均非必填-前端处理-管理后台.md @@ -0,0 +1,90 @@ +# 配房需求:酒店、房型、房间数均改为非必填 + +> 模块:管理后台 · 调整订单弹窗 · 酒店安排 / 配房需求 +> 类型:前端处理说明(需求口径,需前后端校验同步放宽) +> 日期: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`。 +- 只填备注 / 诉求、不填酒店 / 房型 / 房间数,前端允许保存。