diff --git a/changelogs-v2/2026-06/23_4300_4305_房务订单详情逐日城市改区县+候选真实房型roomTypeId_管理后台.md b/changelogs-v2/2026-06/23_4300_4305_房务订单详情逐日城市改区县+候选真实房型roomTypeId_管理后台.md new file mode 100644 index 0000000..e8d1c38 --- /dev/null +++ b/changelogs-v2/2026-06/23_4300_4305_房务订单详情逐日城市改区县+候选真实房型roomTypeId_管理后台.md @@ -0,0 +1,46 @@ +# 房务订单详情:逐日城市改显区县(跨区县拆分)+ 配房需求候选酒店暴露真实房型 roomTypeId(已上线测试服·可对接) + +> 变更类型:✅ 修改接口(字段语义变更 + 新增字段,已部署测试服并 API 验证,可对接) +> 端类型:管理后台(房务订单详情「配房行程 / 定制师需求」DAY 卡片) +> 日期:2026-06-23 | 工单:#4297、#4204(P3) | PR:#4300、#4305 | 服务:hl-order-service-v3 +> 接口:`GET /admin/house/orders/{orderId}` → `data.requirement.current.days[]`(及历史版本 `recentHistory[].snapshot.days[]`) + +--- + +## 背景 +1. 之前 DAY 卡片的「城市」显示**市级**(呼伦贝尔市)。wx 要求改显**区县**(海拉尔区),且**同一天多家候选酒店分属不同区县时,全部拆分展示**。 +2. wx 要求配房需求**按酒店分类、一个酒店一个房型**——候选酒店应携带**自己的真实房型**(#4204 epic 的房控侧读取 P3)。 + +## 1. `days[].city` 语义变更:市级 → 区县(可多值) +`requirement.current.days[].city`(字段名**不变**)取值由市级改为**区县级**,取该天**全部候选酒店**的资源区县去重: +- 单区县:`"海拉尔区"` +- **多区县**(候选跨区县):用顿号 `、` 拼接,如 `"满洲里市、海拉尔区"`、`"额尔古纳市、满洲里市"` +- 区县均解析不到时兜底市级,**绝不为空**。 + +**前端注意**:该字段现在**可能是多个区县拼接的字符串**,按整串原样展示即可,**勿假设单值/勿按固定宽度截断**。无需改数据结构,仅展示语义。 + +## 2. 候选/酒店新增真实房型字段(#4204 P3,additive) +`days[].hotels[]`(逐酒店平铺)与 `days[].segments[].candidates[]`(逐段候选)各**新增 3 字段**: + +| 字段 | 类型 | 说明 | +|---|---|---| +| `roomTypeId` | String(雪花,可空) | 该候选酒店的**真实房型 ID**(指向 resource 域具体房型) | +| `roomTypeName` | String(可空) | 该候选酒店的**真实房型名称**(如「豪华大床房」),定制师提交时所选 | +| `protocolPrice` | 数值(可空) | 该候选的协议价快照 | + +**前端「按酒店分类」渲染**:以 `hotels[]` 为主体逐家展示,每家显示**它自己的** `roomTypeName`(而非段级抽象 `roomCategory`)。段级 `roomCategory/roomCount/budget` 仍保留(兼容、分住分组用)。 + +**数据可见性**:`roomTypeId/roomTypeName` 仅当定制师提交需求时**录入了每家酒店的真实房型**才有值;历史/旧单缺数据时为 `null`(前端回退展示段级 `roomCategory` 即可)。 + +## 3. 待前端配合(#4204 P5,mmg) +要让候选酒店都带上真实房型,定制师**提交配房需求的面板**需改为「**先选候选酒店 → 再从该酒店真实房型里选**」,把所选 `roomTypeId` 随候选提交(后端写入侧 P1 已就绪)。本条后端读侧(P3)已备好,该面板改造完成后真实房型即贯穿展示。 + +--- + +## 附:聊天发送人名(#4309,纯后端,前端无需改) +内部留言/聊天发送人名解析(hl-user-service `resolveName`)改为「**绑企微 → 企微名,未绑 → 用户名**」三级口径(落地已登记 P2)。`senderName` 字段**不变**,为发送时快照(改名不影响历史),**对新发消息生效**,历史消息保持原快照。前端无需任何改动。 + +## 验证(测试服 order `2068234602970828802` 实测) +- `days[0].city = "满洲里市、海拉尔区"`、`days[1].city = "额尔古纳市、满洲里市"`(多区县拆分生效)。 +- `days[].hotels[].roomTypeId/roomTypeName` 已暴露(如 `普通标间`/`俄式标准房` + 真实 roomTypeId)。 +- order-v3 全量单测 + ArchTest 门禁全绿;双实例滚动部署健康。