# 站内信:订单消息按「会话」归并成一条 + 跳转去配房详情(非 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 / conversationKey `HOUSE:{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 取当前登录房务在该会话的未读,纯读不误清)。 【前端处理】 1. 房务订单详情渲染时,`tabCounts.unreadMessageCount > 0` 即在「联系定制师」按钮上显示红点(数字角标可选)。 2. 实时:房务停留在详情页时若定制师发来消息(CHAT SSE,conversationKey=`HOUSE:{orderId}`),前端据 SSE 点亮该红点(或重拉 unreadMessageCount),不必等重开页面。 3. 房务打开聊天会话(open-house 标记已读)后,红点随 unreadMessageCount 归 0。