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*******************'); }, });