docs(changelog-v2): 房务详情逐日城市改区县+候选真实房型roomTypeId(#4300/#4305)+聊天发送人企微名(#4309)

这个提交包含在:
API Changelog Bot 2026-06-23 16:39:33 +08:00
父节点 a47eeeedcb
当前提交 b658d8671d

查看文件

@ -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 门禁全绿;双实例滚动部署健康。