API Changelog Bot 70dbb833e0
changelog-filename-gate / validate (push) Successful in 2s
docs(changelog): #7328 团期房务整团会话 GROUP_HOUSE(三端点)
会话键是 GROUP_HOUSE:{groupBatchId},按团期聚合主键建键而不是子订单 id——
这是与既有 GROUP:{orderId} 的关键差异,前端拿错主键空间会静默查空
(不报错、只是永远没数据)。

三处前端按直觉写会踩的地方,都写进「关键变化」:

1. 团未被认领时的不对称:管理员侧能开会话(消息落团队池,认领后自动改判
   给认领人),房务侧开不了(281002)。

2. peerAdminId 在两个接口上语义不同——这条是部署实测才发现的。
   open-group-house 的响应直接回显 DB 占位值 0(ChatManager.buildFullResp
   无归一化);把「无认领人 → null」做归一化的是会话列表那条路
   (fillOrderSummaries + fillGroupBatchSummaries),而且只对有消息的会话
   生效——selectMyConversations 用 isNotNull(last_message_at) 把无消息的
   占位会话过滤掉了。前端照单接口响应判 null 会渲染出「管理员 #0」。

3. currentClaimerId 刻意没有 @NotNull:RELEASE 事件本来就没有新认领人,
   加了会让释放事件在参数校验阶段被拒、会话永远停在旧认领人身上。

顺带订正一条长期口口相传的错误说法:网关对 /internal/** 并非「一律 403」。
gateway 只给 /v3/internal/** 与 /internal/fleet/** 配了 Path predicate,
/internal/message/** 与 /internal/house/** 根本没有路由,请求在到达
JwtAuthFilter 之前就被路由层拒掉,返回的是 HTTP 200 + 业务体
{"code":404,"message":"接口不存在"}。净效果一致(网关不可达),呈现不同。

backend_status=deployed:两服务已滚到 dev-v3 tip 0f62fb072(PR #7490),
实例 LISTEN + Nacos healthy,三端点各打通,281002 负向用例四个角色全命中,
落库 conversation_key 已用 SQL 证实,测试数据已清理。

Refs #7328
2026-09-10 21:59:00 +08:00
S
描述
后端接口修改详细记录 - 自动同步
34 MiB
语言
HTML 77.2%
JavaScript 22.5%
Shell 0.3%