From 529ea1cbefdc616eaded9d4af9195c94ae699596 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 24 Jun 2026 16:42:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E6=88=BF=E9=9C=80=E6=B1=82=E6=AE=B5?= =?UTF-8?q?=C3=97=E5=80=99=E9=80=89=E5=80=99=E9=80=89=E9=85=92=E5=BA=97?= =?UTF-8?q?=E8=A1=A5=E7=9C=9F=E5=AE=9E=E6=88=BF=E5=9E=8B=20roomTypeId/room?= =?UTF-8?q?TypeName=EF=BC=88itinerary=20#4351/#4352=EF=BC=89+=20=E8=AF=89?= =?UTF-8?q?=E6=B1=82=E6=A0=87=E7=AD=BE/=E6=95=B4=E5=8D=95=E5=A4=87?= =?UTF-8?q?=E6=B3=A8=E5=89=8D=E7=AB=AF=E5=9B=9E=E6=98=BE=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...实房型roomTypeId+诉求备注前端回显提醒_管理后台.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 changelogs-v2/2026-06/24_4351_配房需求段候选补真实房型roomTypeId+诉求备注前端回显提醒_管理后台.md diff --git a/changelogs-v2/2026-06/24_4351_配房需求段候选补真实房型roomTypeId+诉求备注前端回显提醒_管理后台.md b/changelogs-v2/2026-06/24_4351_配房需求段候选补真实房型roomTypeId+诉求备注前端回显提醒_管理后台.md new file mode 100644 index 0000000..95f54b1 --- /dev/null +++ b/changelogs-v2/2026-06/24_4351_配房需求段候选补真实房型roomTypeId+诉求备注前端回显提醒_管理后台.md @@ -0,0 +1,48 @@ +# 配房需求「段×候选」候选酒店补真实房型 roomTypeId/roomTypeName(itinerary 接口,已上线测试服·可对接) + +> 变更类型:✅ 修改接口(新增字段,已部署测试服并 API + 前端 UI 双实证,可对接) +> 端类型:管理后台(定制师侧·订单详情「行程安排」→「修改需求 / 调整订单」弹窗「酒店安排」) +> 日期:2026-06-24 | 工单:#4351 | PR:#4352 | 服务:hl-order-service-v3 +> 关联:补 #4313(#4204 P2)的遗漏——#4313 只给 itinerary 平铺 `hotels[]`(RequirementHotelVO)加了房型,**遗漏了「段×候选」结构 `segments[].candidates[]`(RequirementCandidateVO)**,而调整弹窗实际用后者回显,故房型仍不回显。 + +--- + +## ⚠️ 关键说明 +- **现象**:调整订单弹窗「酒店安排」每个候选酒店的**房型下拉恒显示「该酒店暂无可选房型」**,提交时已选的真实房型(如「精品标间」「普通标间」)修改时无法回显。 +- **根因**:itinerary 接口 `RequirementCandidateVO`(段×候选的候选项)缺 `roomTypeId/roomTypeName`,#4313 只补了平铺 `hotels[]`、漏了这里。后端 `order_hotel_requirement.days` JSON 已存房型,纯属 VO + Converter 透传遗漏。 +- **已修复并实证**:候选项补字段 + Converter 透传,已部署测试服,API + 前端 UI 双实证房型正确回显,纯 additive 向后兼容。 + +## 1. 新增字段(itinerary 接口·段×候选的候选维度) +`GET /v3/admin/order/{id}/itinerary` → `data.hotelGroup.requirement.days[].segments[].candidates[]`(`RequirementCandidateVO`)各**新增**: + +| 字段 | 类型 | 说明 | +|---|---|---| +| `roomTypeId` | String(雪花,可空) | 该候选酒店的**真实房型 ID** | +| `roomTypeName` | String(可空) | 该候选酒店的**真实房型名称** | + +为 null(旧单 / 无房型候选 / 定制师未录真实房型)时,前端回退展示段级 `roomCategory`(与 #4313 平铺 hotels[] 口径一致)。 + +## 2. 真实响应示例(测试服 order 2069593503129636865,本次实测) +```json +"segments": [{ + "roomCount": 1, "budget": "320.00", "remark": "测试信仰 要窗户", + "candidates": [ + {"hotelId":"3001000000000000002","hotelName":"海拉尔海棠酒店","roomTypeId":"3002000000000000002","roomTypeName":"精品标间","remark":"测试信仰 要窗户"}, + {"hotelId":"2023714929877450753","hotelName":"呼伦贝尔香格里拉大酒店","roomTypeId":"2023727403196502017","roomTypeName":"普通标间","remark":"要窗户"} + ] +}] +``` +(未选房型的候选 `roomTypeId/roomTypeName` 为 null / 空串,属正常。) + +## 3. 前端动作 +- 调整弹窗「酒店安排」候选酒店房型下拉,回显值改从 `segments[].candidates[].roomTypeId/roomTypeName` 取(原先该结构无此字段,致「该酒店暂无可选房型」)。 + +## 4. 另需前端处理(同弹窗其余回显缺失·非本次后端范围) +排查「修改房需求回显信息不全」时实测发现,同弹窗以下两项后端 itinerary **早已返回**(在 `data.hotelGroup.requirement` 顶层),属**前端未渲染**,后端无需改: + +| 缺失项 | 后端返回路径 | 测试服实测值 | 前端待办 | +|---|---|---|---| +| 特殊诉求标签 | `requirement.specialTags`(String 数组) | `["高楼层","安静楼层","无烟房","景观房","可加床","含双早","含早餐","可拆分双床","相邻房间","远离电梯"]` | 调整弹窗补「特殊诉求标签」回显 + 编辑区 | +| 整单备注 | `requirement.remark`(String) | `"客人怕吵"` | 调整弹窗补「整单备注」回显 + 编辑区 | + +⚠️ **数据丢失风险**:当前这两项不回显,定制师在弹窗改房需求并「提交调整」时,若提交 payload 不带这两个字段,可能覆盖丢失已填的诉求标签 + 整单备注,建议优先补回显。