hl-api-changelog/changelogs-v2/2026-06/58_聊天会话面板订单信息条空白_前端从conversations会话卡取订单信息渲染_前端处理-管理后台.md

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 一致,取任一条的订单字段也行)。
  • conversationKeyHOUSE: 开头订单维度会话才渲染订单信息条;DIRECT/非订单会话无此条。
  • 字段为空order-v3 暂不可达 / 非 HOUSE时隐藏对应项即可,不报错。

备注(无后端改动)

本说明仅澄清既有接口契约——订单信息后端已在 conversations 会话卡提供(#4066,前端打开聊天面板时取来渲染即可,后端无任何代码改动。