From 18af62a8430270da068b872b48070f5e2b224c6a Mon Sep 17 00:00:00 2001 From: Lei OT Date: Wed, 23 Apr 2025 13:55:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=9A=E8=AF=9D=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/channel/bubbleMsgUtils.js | 39 +++++++++++++++++++++++++++++++++ src/stores/ConversationStore.js | 7 +++++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/channel/bubbleMsgUtils.js b/src/channel/bubbleMsgUtils.js index bd41c97..86b2327 100644 --- a/src/channel/bubbleMsgUtils.js +++ b/src/channel/bubbleMsgUtils.js @@ -459,6 +459,44 @@ const emailMsgMapped = { }, } } +const sessionMsgMapped = { + 'session.new': { + getMsg: (result) => { + // sessionItem 是数组 + return isEmpty(result?.sessionItem) + ? null + : result.sessionItem.map((ele) => ({ + ...ele, + customer_name: `${ele.whatsapp_name || ''}`.trim(), + whatsapp_name: `${ele.whatsapp_name || ''}`.trim(), + show_default: ele.conversation_memo || ele.whatsapp_name || ele?.channels?.whatsapp_phone_number || ele?.channels?.phone_number || ele?.channels?.email || '', + // coli_id: ele.COLI_ID, + top_state: ele.top_state || 0, + msg_source: 'session', + msg_direction: 'inbound', + })) + }, + contentToRender: (contentObj) => null, + contentToUpdate: (msgcontent) => null, + }, + 'session.updated': { + getMsg: (result) => { + // sessionItem 是数组 + return isEmpty(result?.sessionItem) + ? null + : result.sessionItem.map((ele) => ({ + ...ele, + customer_name: `${ele.whatsapp_name || ''}`.trim(), + whatsapp_name: `${ele.whatsapp_name || ''}`.trim(), + show_default: ele.conversation_memo || ele.whatsapp_name || ele?.channels?.whatsapp_phone_number || ele?.channels?.phone_number || ele?.channels?.email || '', + // coli_id: ele.COLI_ID, + top_state: ele.top_state || 0, + msg_source: 'session', + msg_direction: 'inbound', + })) + }, + }, +} export const msgStatusRenderMapped = { 'accepted': 'waiting', // 'sent', // 接口的发送请求 'sent': 'sent', @@ -516,6 +554,7 @@ export const receivedMsgTypeMapped = { }, }, ...cloneDeep(emailMsgMapped), + ...cloneDeep(sessionMsgMapped), }; /** * 消息类型处理, 合并各渠道类型 diff --git a/src/stores/ConversationStore.js b/src/stores/ConversationStore.js index 4609b2e..33edbb7 100644 --- a/src/stores/ConversationStore.js +++ b/src/stores/ConversationStore.js @@ -177,7 +177,7 @@ const websocketSlice = (set, get) => ({ logWebsocket(data, 'I'); // olog('websocket Messages ----', data); // console.log(data); - const { updateMessageItem, sentOrReceivedNewMessage, addGlobalNotify, setWai } = get(); + const { updateMessageItem, sentOrReceivedNewMessage, addGlobalNotify, setWai, addToConversationList } = get(); const { errcode, errmsg, result } = data; if (!result) { @@ -227,6 +227,11 @@ const websocketSlice = (set, get) => ({ // setWai({}); // 60s 后清空 // }, 60_000); } + // 会话表 更新 + if (['session.updated'].includes(resultType)) { + const sessionList = receivedMsgTypeMapped[resultType].getMsg(result); + addToConversationList(sessionList, 'top'); + } // console.log('handleMessage*******************'); }, });