fix(export+calls): 同类owner错位问题全面修复(群导出不按owner过滤+群语音客户点击走群聊路由)

- /api/export/chat-html: room 查询忽略 owner(chat_group owner 错位同
  ChatTimeline,群列表/聊天页的导出按钮原来会导出空文件)
- CallList viewCallCustomer: talker 以 @chatroom 结尾→group-chat 路由
  (原走 1:1 路由按 talker_id 查@chatroom 恒空)
- TDD: 群消息在 ownerB 名下用 ownerA+room 导出仍能拿到;428 测试绿
- 实测:错位 owner 导出 43304 群返回 15002 个消息元素

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
浅念
2026-08-22 17:00:43 +08:00
parent 4f375c3d71
commit a8b8d9d81c
3 changed files with 51 additions and 12 deletions
+16 -1
View File
@@ -249,12 +249,27 @@ function viewCallCustomer(row: PhoneCall): void {
const owner = cell(row, 'weChatId')
const talker = cell(row, 'talker')
if (!owner || !talker) return
const t = String(talker)
// 群语音的 talker 是 @chatroom ID → 走群聊路由(1:1 路由按 talker_id 查会
// 查空,同 chat_group owner 错位类问题,2026-08-22)
if (t.endsWith('@chatroom')) {
router.push({
name: 'group-chat',
params: {
channel: chatChannel(row.channel) ?? 'wechat',
ownerId: String(owner),
roomId: t,
},
query: row.start_call_time ? { start: String(row.start_call_time) } : undefined,
})
return
}
router.push({
name: 'chat',
params: {
channel: chatChannel(row.channel) ?? 'wechat',
ownerId: String(owner),
talkerId: String(talker),
talkerId: t,
},
// 对齐云客:带通话时间定位(?start=),聊天窗滚动到该通通话附近
query: row.start_call_time ? { start: String(row.start_call_time) } : undefined,