3.7 KiB
3.7 KiB
聊天会话面板顶部「订单信息」条空白——订单信息在 conversations 会话卡上,前端打开聊天时去取并渲染
模块:管理后台 · 站内信聊天会话面板(订单消息点进聊天后顶部的订单信息条) 类型:前端处理(订单信息后端早已提供,无需改后端) 日期:2026-06-30 反馈来源:wx 手动测试(从「订单消息」tab 点进 王骁 会话,聊天面板顶部「订单信息」区空白) 关联:57_(订单消息 tab 已用
list?messageType=ORDER修好,现进一步看聊天面板)
现象
在「订单消息」tab 点开某条订单消息 → 右侧弹出聊天会话面板,顶部「对方姓名/角色/在线」下面那条**「订单信息」区是空白**(用户标注「咋没有订单信息呢」),只看到聊天气泡,看不到这条会话是关于哪个订单(团号/客户/目的地/状态等)。
根因(前端取数据源取错了,后端数据齐全)
前端打开聊天面板走的两个接口都不含订单信息,订单信息在第三个接口的会话卡上:
POST /admin/message/chat/open-house(打开/找回会话)→ 只返conversationKey / peerName / peerRole / peerOnline / unreadCount / isNew,无订单信息;GET /admin/message/chat/{conversationKey}/messages(拉线程消息)→ 只返聊天消息列表,无订单信息;- ✅
GET /admin/message/chat/conversations(我的会话列表)的会话卡(ChatConversationRespVO)才带完整订单信息(工单 #4066 已 enrich,经 Feign 从 order-v3 批量补齐),后端实测这些字段都已填充。
后端现状(已提供,勿改后端)
GET /admin/message/chat/conversations?bizModule=HOUSE&bizId={订单id} 返回该订单的会话卡,含订单信息字段(HOUSE 会话才有,order-v3 不可达时留空、不阻断):
| 字段 | 含义 | 例 |
|---|---|---|
orderNo |
订单号/团号 | HL20260630103610215 |
customerName |
订单联系人 | 吕思远 |
destination |
目的地 | 云南·大理 |
tripDays |
行程天数 | 5 |
bizStatusLabel |
业务状态标签(中文) | 待配房 |
progressDesc |
进度描述 | 已配 2/4 间 |
productName |
产品名 | 游牧的森林-短途版 |
adultCount / childCount |
成人/儿童数(前端拼「2大1小」) | 2 / 1 |
requirementId |
房务需求ID(跳配房页用,无则 null) | 70456 |
peerName / peerRole / peerRoleLabel / peerOnline |
对方信息 | 王骁 / CUSTOMIZER / 定制师 / true |
【前端处理】
打开 HOUSE 订单聊天会话面板时,额外调一次 GET /admin/message/chat/conversations?bizModule=HOUSE&bizId={orderId}&pageNo=1&pageSize=10,用返回的会话卡渲染顶部「订单信息」条(团号 / 客户 / 目的地 / 天数 / 状态 / 进度 / 产品 / 人数 等):
- orderId 来源:HOUSE 订单会话键格式是
HOUSE:{orderId}(如HOUSE:2071784830965620737),从conversationKey冒号后解析;或直接用收件箱「订单消息」行的bizId(即订单 id)。 - 返回可能含同订单的多条会话(定制师↔房务、组长↔房务),按
conversationKey取与当前打开会话匹配的那条即可(订单信息同 orderId 一致,取任一条的订单字段也行)。 - 仅
conversationKey以HOUSE:开头(订单维度会话)才渲染订单信息条;DIRECT/非订单会话无此条。 - 字段为空(order-v3 暂不可达 / 非 HOUSE)时隐藏对应项即可,不报错。
备注(无后端改动)
本说明仅澄清既有接口契约——订单信息后端已在 conversations 会话卡提供(#4066),前端打开聊天面板时取来渲染即可,后端无任何代码改动。