修复系统消息列表漏查表的"group.join_request.accepted/rejected"机器码

现象:核对第2章系统消息列表最近修复的"group.announcement.updated"查表遗漏问题时,逐个比对
im_be 的 insertGroupEventTx 调用点,发现入群申请审批这一条并不在当初核对的 9 种静态事件码
之列——群管理员在群管理页批准或拒绝入群申请后,系统消息列表会展示原始机器码,而不是可读文案。

根因:TenantGroupJoinRequestResolve(server/db/mysql/tenant_groups.go:642)拼的事件码是
"group.join_request."+status(status 取 server/store/types/groups.go 的
GroupJoinRequestStatusAccepted/Rejected,即 "accepted"/"rejected"),实际产生的是
"group.join_request.accepted"/"group.join_request.rejected" 两个完整机器码。这两个和已收录的
"group.join_request.created"(提交申请时那条)是三个不同的 key,NOTIFICATION_TEXT 表里只有
后者,前两个查表落空,systemNotificationText() 兜底把原始机器码直接展示给用户。

修复:在 message-center-view.jsx 的 NOTIFICATION_TEXT 表里补上这两个 key。

验证:读 im_be 源码逐个核对 insertGroupEventTx 全部调用点,确认这是唯一还缺失的动态拼接事件码;
重新构建后确认产物里两个 key 及对应文案都已生效。未在真实环境触发一条这样的通知做端到端验证——
需要另一账号先申请加群、本账号再批准/拒绝,属于第6章群管理操作范畴,本轮未展开搭建。

注:umd/index.dev.js 本次同样未随此提交提交——工作区里此刻并行的其它 agent 正在改
i18n/zh(-TW).json、group-management-view.jsx、sidepanel-view.jsx、call-panel.jsx、
contact-management-view.jsx 等多个文件且均未提交,重新构建的 index.dev.js 会把它们的未提交
改动一起编译进同一产物文件,为避免混入不相关改动,本次只提交源码。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-09-06 15:51:10 +08:00
co-authored by Claude Sonnet 5
parent 5ddace97f4
commit dbf47847fe
+11
View File
@@ -425,6 +425,17 @@ const NOTIFICATION_TEXT = {
'group.owner.transferred': '群主已转让', 'group.owner.transferred': '群主已转让',
'group.role.updated': '群成员角色有变更', 'group.role.updated': '群成员角色有变更',
'group.settings.updated': '群设置有更新', 'group.settings.updated': '群设置有更新',
// 上面那 9 种都是 insertGroupEventTx 的静态字符串调用,唯独审批入群申请这一条不是:
// TenantGroupJoinRequestResolve(tenant_groups.go:642)拼的是
// "group.join_request."+status,status 是 "accepted" 或 "rejected"(server/store/types/groups.go
// 的 GroupJoinRequestStatusAccepted/Rejected),实际落进 summary 的是
// "group.join_request.accepted"/"group.join_request.rejected" 这两个完整机器码,跟本已收录的
// "group.join_request.created"(申请提交时那条)是三个不同的 key。当初核对 9 种静态事件码时
// 这条动态拼接的漏了,管理员在群管理页批准/拒绝入群申请后,申请人这边系统消息列表同样会原样
// 展示机器码——跟 group.announcement.updated 是完全同一类问题,只是触发路径不同(未在真实
// 环境里等到一条这样的通知,是读 im_be 源码逐个比对 insertGroupEventTx 调用点发现的)。
'group.join_request.accepted': '你的入群申请已通过',
'group.join_request.rejected': '你的入群申请被拒绝',
accepted: '对方已通过你的好友申请', accepted: '对方已通过你的好友申请',
rejected: '对方拒绝了你的好友申请', rejected: '对方拒绝了你的好友申请',
// 新样本:security.risk.continue/cancel 事件的 summary 直接是 decision 字面量 // 新样本:security.risk.continue/cancel 事件的 summary 直接是 decision 字面量