docs(changelog-v2): 站内信会话化前端待办总览(汇总6项: 会话聚合/团号/简介条/跳转/铃铛/tab, 后端均已就绪)

这个提交包含在:
API Changelog Bot 2026-06-25 15:13:21 +08:00
父节点 c8e3769e3f
当前提交 e27954e833

查看文件

@ -0,0 +1,63 @@
# 站内信会话化改造 · 前端待办总览(管理后台)
- **类型**:前端对接总览(**后端全部就绪**,本文汇总 mmg 一次接完)
- **端类型**管理后台hl-ui
- **日期**2026-06-25
- **后端联系人**王骁wx
> 站内信升级聊天后,wx 提了一连串改造(按会话聚合 / 团号 / 订单简介条 / 跳转 / 铃铛红点)。**后端侧已全部实现并测试服实测通过**,剩下的都是前端接入。本文是总索引,每项指向已写好的详细 spec。
---
## 待办清单(后端均已就绪,按此接入)
### 1. 「订单消息」改按会话聚合(一会话一行)
- **做什么**站内信「订单消息」tab 改为一会话一行(对方+最新消息+未读+时间),点开看整段对话。不要再逐条铺消息。
- **后端接口(现成)**`GET /admin/message/chat/conversations?bizModule=HOUSE&pageNo&pageSize`,返回每会话一行。
- **为什么**:逐条混排只显示「你收到的那一半」+ 释放转单致归属变动,数据不全;按会话聚合才完整。
- **详见**`25_站内信订单消息改按会话聚合+团号+跳转_前端对接` §2/§3。
### 2. 标题加团号
- **做什么**:每行标题 = 团号 `orderNo`(建议拼客户名 `customerName`),如 `HL20260625134754752 · 库凡巧`
- **字段**:会话 VO 的 `orderNo` / `customerName`(已有)。
- **注意**`orderNo` 为 null 是**订单被删/不存在**(软依赖降级),不是 bug;真实订单都有团号。
### 3. 订单简介条(打开对话顶部)
- **做什么**:从会话列表打开对话时,对话顶部「订单简介条」也要显示 = **产品名 · 客户·人数 · 团号**(此前仅从订单页进才有)。
- **字段PR #4394 新增,已上线)**`productName`(产品名)+ `customerName`(客户)+ `adultCount`/`childCount`拼「2大1小」+ `orderNo`(团号)——全在会话列表 VO 里,打开对话直接用,无需再查订单页。
- **详见**`25_站内信订单消息改按会话聚合+团号+跳转_前端对接` §6。
### 4. 每行跳转按钮(按你在该会话的身份)
- **做什么**:每行加跳转按钮,**按 peerRole 反推你是哪一方**(不能用登录账号全局角色,超管同时是两边人):
- 对方是房务/车务(`peerRole=HOUSE/FLEET`)→ 你是定制师 → **订单详情** `/order-v2/detail/{bizId}`
- 对方是定制师(`peerRole=CUSTOMIZER`+ `bizModule=HOUSE` → 你是房务 → **配房页** `/housekeeper/orders?orderId={bizId}&requirementId={requirementId}`(用 `requirementId` 自动开配房详情)
- 对方是定制师 + `bizModule=FLEET` → 你是车务 → **配车页**(路由 best-effort,待车务模块核对
- **字段**`peerRole` / `bizModule` / `bizId` / `requirementId`PR #4394 新增,房务自动开详情用)——全在会话 VO。
- **详见**`25_站内信订单消息改按会话聚合+团号+跳转_前端对接` §3.3。
### 5. 顶部铃铛未读红点
- **做什么**:收到消息时收件方铃铛要亮红点/数字。
- 每个带铃铛的页面**加载时调** `GET /admin/message/unread-count` 取初值。
- 订阅 SSE 流(`/ws/admin-msg/stream`),在 `im-chat`/`message`/`unread-count` 事件里读 `payload.unreadCount` 实时刷角标。`im-chat` 既驱动聊天 UI 也驱动铃铛——别只 append 聊天。
- **后端已就绪**:未读已落库、聊天发送 afterCommit 已推带 `unreadCount` 的 SSE 信令、`unread-count` 接口返真值(实测 countUnread=1 但前端铃铛没亮 = 前端没接)。
- **详见**`25_站内信顶部铃铛未读角标接入_前端对接`
### 6. tab 归属 / 全部 tab前端 IA 自定)
- 订单消息 = 会话列表项1;普通消息 = `GET /admin/message/list?messageType=NORMAL`(仅系统通知);全部 = 前端决定(会话列表+系统通知合并 或 仅通知)。
- **详见**`25_站内信订单消息改按会话聚合+团号+跳转_前端对接` §4。
---
## 后端就绪情况一览(无需前端等后端)
| 能力 | 后端状态 | 接口/字段 |
|------|---------|-----------|
| 会话列表(按会话聚合) | ✅ 现成 | `/admin/message/chat/conversations` |
| 团号/客户 | ✅ | `orderNo` / `customerName` |
| 订单简介条(产品名/人数) | ✅ PR #4394 上线 | `productName` / `adultCount` / `childCount` |
| 房务跳转自动开详情 | ✅ PR #4394 上线 | `requirementId` |
| 跳转判向 | ✅ | `peerRole` / `bizModule` / `bizId` |
| 铃铛未读(落库+信令+接口) | ✅ | `unread-count` + SSE `im-chat`(payload.unreadCount) |
| 聊天线程/发送/已读 | ✅ 既有 | `/admin/message/chat/messages` 等 |
> 一句话:**后端全齐了,这几项卡的都是前端接入**。逐项 spec 见上面引用的 changelog。有疑问找王骁wx对字段/信令。