文件
hl-api-changelog/changelogs-v2/2026-08/10_5808_消息中心纳管车务团队会话消息-修改接口-管理后台.md
T
Mimingguang 87ed9d0a3f
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): 全量清理 implemented 存量——81 条复核翻 verified + 1 条改判 not_required + #5827 补登 frontend_ref
处置明细(mmg 2026-09-18):
- 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、
  交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。
- 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/
  07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期
  演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、
  01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理),
  status_note 均如实记录演进链。
- 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证
  vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。
- 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交
  即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。
另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。
2026-07 历史月 45 条按规则不回扫,保持原状。
2026-09-18 15:56:52 +08:00

5.1 KiB
原始文件 Blame 文件历史

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base
hl-changelog/v2 5808 消息中心纳管车务团队会话消息:list 混排团队池行 + teamMessage 字段 + read-all 三段清零 admin wx(GIT) 修改接口 deployed not_required verified mmg 55311b31 2026-09-18 前端已实现(范围:团队角标+隐藏删除,55311b31):MyMessages/index.vue 类型列 teamMessage=true 行在 messageTypeLabel 旁加「团队」NTag 角标(区分个人消息,读态全队共享不代表「我读过」);删除入口两处按 teamMessage=true 隐藏——more 菜单「删除」项 + 详情抽屉(handleDeleteFromDetail)删除按钮(后端 281014 团队共享消息不可删)。单条已读/read-all 三段清零/SSE conversationUnreadCount 余量下发均后端语义扩展、接口字段兼容,前端零改动即受益。无 MyMessages 专属 spec(列表 useListPage 重 mock 成本高于局部展示+menu 条件改动价值),由 checkpoint(ESLint/Stylelint/暗色/断点/生产构建)全绿覆盖。[mmg 2026-09-18 批量复核翻 verified] ref 55311b31 可达且为 v2.1 祖先;交付文件 HEAD 均在;关联 spec 批量 891 例全绿。 2026-09-18 dev-v3

消息中心: 纳管车务团队会话消息(#5808)

服务: hl-user-service (8081) PR: #5812 Issue: #5808 日期: 2026-08-10 影响范围: /admin/message 五个端点(list/detail/{id}/read/read-all/{id} DELETE)+ SSE 共享 READ 信令载荷 背景: 车务管理员铃铛红点「全部已读」清不掉且列表找不到源头——FLEET 订单会话中定制师广播只落一行 admin_id=0 团队池行,个人收件箱无副本,此前消息中心既看不见也管不了它。本次把团队池行纳入消息中心管理。


变更接口

1. GET /admin/message/list — 车务角色下混排团队池聊天行 + 新增 teamMessage 字段

  • 当前角色为 VEHICLE_MANAGER 时,列表在个人收件箱行之外混排车务团队共享池聊天行(全体车务共享同一份,含读态),按 createTime DESC 混排、分页 total 准确;其它角色行为不变。
  • 所有行新增字段:
字段 类型 说明
teamMessage boolean 是否车务团队共享消息。true=团队池行(全队共享读态:任一车务已读,全队该行变已读);false=个人行
  • 排序修正:同秒消息补 id 决胜列,翻页不再可能重复/丢行(对全部角色生效)。
  • messageType=ORDER/NORMAL、categoryCode 过滤与池行组合语义不变(池行属 ORDER=聊天类)。

前端要做:teamMessage=true 行渲染「团队」角标以区分个人消息;该类行的已读状态是全队共享的,不代表"我读过"。

2. GET /admin/message/{id} — 详情放行池行

车务管理员可查团队池行详情(返回体同样含 teamMessage=true);其它角色查池行仍返回 200401「站内信不存在或无权访问」。详情仍是纯查询不改已读。

3. PUT /admin/message/{id}/read — 池行单条已读=推进团队共享水位

对 teamMessage=true 行标已读:按会话单调推进团队共享水位到该行(该会话中更早的团队消息一并置已读,更晚的保持未读),全体车务红点同步回落;SSE 广播共享 READ 信令 + 定制师端点对点已读回执(同 #5797 语义)。重复调用幂等静默。

4. PUT /admin/message/read-all — 语义扩为三段清零

原来只清个人系统通知,现在依次清:①个人系统通知(现状)→ ②个人聊天逐会话推进个人水位(对端会收到已读回执)→ ③车务角色下全部 FLEET 团队会话推进共享水位到最新(清掉全体车务的红点,即 #4689「任一读、全队清零」语义的批量形态)。

执行后 GET /admin/message/unread-count 归 0。极端并发下个别会话正被读写会跳过(日志可查),再点一次即清完。前端无需改动即受益:铃铛红点从此「全部已读」必能点掉。

5. DELETE /admin/message/{id} — 池行禁删

对 teamMessage=true 行删除返回业务错误 281014「团队共享消息不可删除」(团队共享消息不允许单人删掉全队的记录)。前端要做:teamMessage=true 行隐藏/禁用删除入口。个人行删除行为不变。

6. SSE 共享 READ 信令载荷微调

im-chat-read(共享 READ)信封中 conversationUnreadCount 原恒为 0,现部分已读时携带真实余量(单条已读只推进到该行时,会话可能还有更晚的未读)。前端若有按该字段刷会话红点的逻辑,直接用下发值即可(原逻辑兼容)。


验证

测试服全链路实测通过(车务 token):unread-count=1 → list 见池行(teamMessage=true) → 详情 200 → DELETE 281014 → 单条已读 → unread-count=0 → read-all 幂等 → 超管反例不可见池行;HOUSE 留言池数据零影响。hl-user-service 全量 3578 单测绿。