3.3 KiB
站内信:订单消息按「会话」归并成一条 + 跳转去配房详情(非 order-v2) + 详情页红点接 unreadMessageCount
模块:管理后台 · 站内信「订单消息」+ 房务订单详情红点 类型:前端处理(后端数据已具备,无后端改动) 日期:2026-06-30 · 反馈来源:wx 手动测试 说明:本文 D1 部分修正 57_「订单消息 tab 用 list?messageType=ORDER」 —— 订单消息改为按会话归并(一个订单一条)。
D1:一个订单的聊天要归并成一条(不要一条消息一行)
现象:「订单消息」tab 把同一个订单的多条聊天消息(如 4444112、77721)显示成多行。要求:一个订单的会话只显示一条(最新一条 + 未读数),像聊天 App 的会话列表。
【前端处理】「订单消息」tab 改用会话列表接口 GET /admin/message/chat/conversations?pageNo=1&pageSize=20(一行=一个会话/订单,自带 lastMessagePreview/lastMessageAt/unreadCount/orderNo/customerName),不要再用 list?messageType=ORDER(那是一条消息一行)。
- 「普通消息」tab 仍用
list?messageType=NORMAL(系统通知,一条一行,正确)。 - 「全部」tab:系统通知(NOTIFY)一条一行 + 订单聊天按会话归并一行(CHAT 会话),二者混排。
D2:订单消息「跳转」目标错(房务进了 order-v2 订单详情,应进配房详情)
现象:房务(admin/房务管理员)点订单消息的「跳转」,进了 order-v2/detail/{orderId}(定制师侧订单详情页),应进「配房详情」(房务自己的工作页)。
【前端处理】订单消息(CHAT 会话)的点击/跳转按角色去对应工作页:
- 房务 → 打开配房详情弹窗(房务订单详情,接口
GET /admin/house/orders/{orderId},orderId 取会话的 bizId / conversationKeyHOUSE:{orderId}解析),不要跳order-v2/detail; - 或点击订单消息直接打开该会话的聊天面板(changelog 59 的
open-house)也可,按产品取一种;总之房务侧不应落到 order-v2 定制师订单详情页。
⚠️ 关联后端待核(已记录):房务能打开
order-v2/detail且未报越权——order-v2(一期)订单详情接口对房务角色是否应拦,需产品确认(房务是否禁看定制师订单详情)。本条前端先把跳转目标改对,越权另行核。
C:定制师发消息后,房务订单详情「联系定制师」没红点
现象:定制师给房务发消息,房务订单详情页「联系定制师」按钮没红点。后端已查实数据正确(截图当时该消息确为未读)。
后端已提供:GET /admin/house/orders/{orderId} → data.tabCounts.unreadMessageCount(该订单聊天未读数,经 Feign 取当前登录房务在该会话的未读,纯读不误清)。
【前端处理】
- 房务订单详情渲染时,
tabCounts.unreadMessageCount > 0即在「联系定制师」按钮上显示红点(数字角标可选)。 - 实时:房务停留在详情页时若定制师发来消息(CHAT SSE,conversationKey=
HOUSE:{orderId}),前端据 SSE 点亮该红点(或重拉 unreadMessageCount),不必等重开页面。 - 房务打开聊天会话(open-house 标记已读)后,红点随 unreadMessageCount 归 0。