diff --git a/Touchkebao/src/pages/pc/ckbox/api.ts b/Touchkebao/src/pages/pc/ckbox/api.ts index 98bc336a..37e77637 100644 --- a/Touchkebao/src/pages/pc/ckbox/api.ts +++ b/Touchkebao/src/pages/pc/ckbox/api.ts @@ -1,4 +1,5 @@ -import request from "@/api/request2"; +import request from "@/api/request"; +import request2 from "@/api/request2"; import { MessageData, ChatHistoryResponse, @@ -12,20 +13,19 @@ import { } from "./data"; //读取聊天信息 -//kf.quwanzhi.com:9991/api/WechatFriend/clearUnreadCount export function WechatGroup(params) { - return request("/api/WechatGroup/list", params, "GET"); + return request2("/api/WechatGroup/list", params, "GET"); } //获取聊天记录-1 清除未读 export function clearUnreadCount(params) { - return request("/api/WechatFriend/clearUnreadCount", params, "PUT"); + return request("/v1/kefu/message/readMessage", params, "GET"); } //更新配置 export function updateConfig(params) { - return request("/api/WechatFriend/updateConfig", params, "PUT"); + return request2("/api/WechatFriend/updateConfig", params, "PUT"); } //获取聊天记录-2 获取列表 export function getChatMessages(params: { @@ -37,7 +37,7 @@ export function getChatMessages(params: { Count: number; olderData: boolean; }) { - return request("/api/FriendMessage/SearchMessage", params, "GET"); + return request2("/api/FriendMessage/SearchMessage", params, "GET"); } export function getChatroomMessages(params: { wechatAccountId: number; @@ -48,12 +48,12 @@ export function getChatroomMessages(params: { Count: number; olderData: boolean; }) { - return request("/api/ChatroomMessage/SearchMessage", params, "GET"); + return request2("/api/ChatroomMessage/SearchMessage", params, "GET"); } //获取群列表 export function getGroupList(params: { prevId: number; count: number }) { - return request( + return request2( "/api/wechatChatroom/listExcludeMembersByPage?", params, "GET", @@ -62,7 +62,7 @@ export function getGroupList(params: { prevId: number; count: number }) { //获取群成员 export function getGroupMembers(params: { id: number }) { - return request( + return request2( "/api/WechatChatroom/listMembersByWechatChatroomId", params, "GET", @@ -71,7 +71,7 @@ export function getGroupMembers(params: { id: number }) { //触客宝登陆 export function loginWithToken(params: any) { - return request( + return request2( "/token", params, "POST", @@ -86,17 +86,17 @@ export function loginWithToken(params: any) { // 获取触客宝用户信息 export function getChuKeBaoUserInfo() { - return request("/api/account/self", {}, "GET"); + return request2("/api/account/self", {}, "GET"); } // 获取联系人列表 export const getContactList = (params: { prevId: number; count: number }) => { - return request("/api/wechatFriend/list", params, "GET"); + return request2("/api/wechatFriend/list", params, "GET"); }; //获取控制终端列表 export const getControlTerminalList = params => { - return request("/api/wechataccount", params, "GET"); + return request2("/api/wechataccount", params, "GET"); }; // 获取聊天历史 @@ -105,7 +105,7 @@ export const getChatHistory = ( page: number = 1, pageSize: number = 50, ): Promise => { - return request(`/v1/chats/${chatId}/messages`, { page, pageSize }, "GET"); + return request2(`/v1/chats/${chatId}/messages`, { page, pageSize }, "GET"); }; // 发送消息 @@ -114,7 +114,7 @@ export const sendMessage = ( content: string, type: MessageType = MessageType.TEXT, ): Promise => { - return request(`/v1/chats/${chatId}/messages`, { content, type }, "POST"); + return request2(`/v1/chats/${chatId}/messages`, { content, type }, "POST"); }; // 发送文件消息 @@ -126,17 +126,17 @@ export const sendFileMessage = ( const formData = new FormData(); formData.append("file", file); formData.append("type", type); - return request(`/v1/chats/${chatId}/messages/file`, formData, "POST"); + return request2(`/v1/chats/${chatId}/messages/file`, formData, "POST"); }; // 标记消息为已读 export const markMessageAsRead = (messageId: string): Promise => { - return request(`/v1/messages/${messageId}/read`, {}, "PUT"); + return request2(`/v1/messages/${messageId}/read`, {}, "PUT"); }; // 标记聊天为已读 export const markChatAsRead = (chatId: string): Promise => { - return request(`/v1/chats/${chatId}/read`, {}, "PUT"); + return request2(`/v1/chats/${chatId}/read`, {}, "PUT"); }; // 添加群组成员 @@ -144,7 +144,7 @@ export const addGroupMembers = ( groupId: string, memberIds: string[], ): Promise => { - return request(`/v1/groups/${groupId}/members`, { memberIds }, "POST"); + return request2(`/v1/groups/${groupId}/members`, { memberIds }, "POST"); }; // 移除群组成员 @@ -152,34 +152,34 @@ export const removeGroupMembers = ( groupId: string, memberIds: string[], ): Promise => { - return request(`/v1/groups/${groupId}/members`, { memberIds }, "DELETE"); + return request2(`/v1/groups/${groupId}/members`, { memberIds }, "DELETE"); }; // 获取在线状态 export const getOnlineStatus = (userId: string): Promise => { - return request(`/v1/users/${userId}/status`, {}, "GET"); + return request2(`/v1/users/${userId}/status`, {}, "GET"); }; // 获取消息状态 export const getMessageStatus = (messageId: string): Promise => { - return request(`/v1/messages/${messageId}/status`, {}, "GET"); + return request2(`/v1/messages/${messageId}/status`, {}, "GET"); }; // 上传文件 export const uploadFile = (file: File): Promise => { const formData = new FormData(); formData.append("file", file); - return request("/v1/upload", formData, "POST"); + return request2("/v1/upload", formData, "POST"); }; // 获取表情包列表 export const getEmojiList = (): Promise => { - return request("/v1/emojis", {}, "GET"); + return request2("/v1/emojis", {}, "GET"); }; // 获取快捷回复列表 export const getQuickReplies = (): Promise => { - return request("/v1/quick-replies", {}, "GET"); + return request2("/v1/quick-replies", {}, "GET"); }; // 添加快捷回复 @@ -187,49 +187,49 @@ export const addQuickReply = (data: { content: string; category: string; }): Promise => { - return request("/v1/quick-replies", data, "POST"); + return request2("/v1/quick-replies", data, "POST"); }; // 删除快捷回复 export const deleteQuickReply = (id: string): Promise => { - return request(`/v1/quick-replies/${id}`, {}, "DELETE"); + return request2(`/v1/quick-replies/${id}`, {}, "DELETE"); }; // 获取聊天设置 export const getChatSettings = (): Promise => { - return request("/v1/chat/settings", {}, "GET"); + return request2("/v1/chat/settings", {}, "GET"); }; // 更新聊天设置 export const updateChatSettings = ( settings: Partial, ): Promise => { - return request("/v1/chat/settings", settings, "PUT"); + return request2("/v1/chat/settings", settings, "PUT"); }; // 删除聊天会话 export const deleteChatSession = (chatId: string): Promise => { - return request(`/v1/chats/${chatId}`, {}, "DELETE"); + return request2(`/v1/chats/${chatId}`, {}, "DELETE"); }; // 置顶聊天会话 export const pinChatSession = (chatId: string): Promise => { - return request(`/v1/chats/${chatId}/pin`, {}, "PUT"); + return request2(`/v1/chats/${chatId}/pin`, {}, "PUT"); }; // 取消置顶聊天会话 export const unpinChatSession = (chatId: string): Promise => { - return request(`/v1/chats/${chatId}/unpin`, {}, "PUT"); + return request2(`/v1/chats/${chatId}/unpin`, {}, "PUT"); }; // 静音聊天会话 export const muteChatSession = (chatId: string): Promise => { - return request(`/v1/chats/${chatId}/mute`, {}, "PUT"); + return request2(`/v1/chats/${chatId}/mute`, {}, "PUT"); }; // 取消静音聊天会话 export const unmuteChatSession = (chatId: string): Promise => { - return request(`/v1/chats/${chatId}/unmute`, {}, "PUT"); + return request2(`/v1/chats/${chatId}/unmute`, {}, "PUT"); }; // 转发消息 @@ -237,10 +237,10 @@ export const forwardMessage = ( messageId: string, targetChatIds: string[], ): Promise => { - return request("/v1/messages/forward", { messageId, targetChatIds }, "POST"); + return request2("/v1/messages/forward", { messageId, targetChatIds }, "POST"); }; // 撤回消息 export const recallMessage = (messageId: string): Promise => { - return request(`/v1/messages/${messageId}/recall`, {}, "PUT"); + return request2(`/v1/messages/${messageId}/recall`, {}, "PUT"); }; diff --git a/Touchkebao/src/pages/pc/ckbox/weChat/api.ts b/Touchkebao/src/pages/pc/ckbox/weChat/api.ts index 8c7768b5..9f748f24 100644 --- a/Touchkebao/src/pages/pc/ckbox/weChat/api.ts +++ b/Touchkebao/src/pages/pc/ckbox/weChat/api.ts @@ -64,7 +64,6 @@ export function getAgentList() { } //读取聊天信息 -//kf.quwanzhi.com:9991/api/WechatFriend/clearUnreadCount function jsonToQueryString(json) { const params = new URLSearchParams(); for (const key in json) { @@ -111,11 +110,6 @@ export function WechatGroup(params) { return request2("/api/WechatGroup/list", params, "GET"); } -//获取聊天记录-1 清除未读 -export function clearUnreadCount(params) { - return request2("/api/WechatFriend/clearUnreadCount", params, "PUT"); -} - //更新配置 export function updateConfig(params) { return request2("/api/WechatFriend/updateConfig", params, "PUT"); diff --git a/Touchkebao/src/pages/pc/ckbox/weChat/main.ts b/Touchkebao/src/pages/pc/ckbox/weChat/main.ts index 958bdafa..b12f9cff 100644 --- a/Touchkebao/src/pages/pc/ckbox/weChat/main.ts +++ b/Touchkebao/src/pages/pc/ckbox/weChat/main.ts @@ -67,23 +67,24 @@ export const chatInitAPIdata = async () => { //排序功能 const sortedSessions = [...filterUserSessions, ...filterGroupSessions].sort( (a, b) => { + // 获取未读消息数量 + const aUnread = a.config?.unreadCount || 0; + const bUnread = b.config?.unreadCount || 0; + + // 首先按未读消息数量降序排列(未读消息多的排在前面) + if (aUnread !== bUnread) { + return bUnread - aUnread; + } + + // 如果未读消息数量相同,则按时间降序排列(最新的在前面) // 如果lastUpdateTime不存在,则将其排在最后 if (!a.lastUpdateTime) return 1; if (!b.lastUpdateTime) return -1; - // 首先按时间降序排列(最新的在前面) const timeCompare = new Date(b.lastUpdateTime).getTime() - new Date(a.lastUpdateTime).getTime(); - // 如果时间相同,则按未读消息数量降序排列 - if (timeCompare === 0) { - // 如果unreadCount不存在,则将其排在后面 - const aUnread = a.config.unreadCount || 0; - const bUnread = b.config.unreadCount || 0; - return bUnread - aUnread; // 未读消息多的排在前面 - } - return timeCompare; }, ); @@ -237,16 +238,16 @@ export const getUniqueWechatAccountIds = ( export const getAllGroupList = async () => { try { let allContacts = []; - let prevId = 0; - const count = 1000; + let page = 1; + const limit = 1000; let hasMore = true; while (hasMore) { - const contractList = await getGroupList({ - prevId, - count, + const Result = await getGroupList({ + page, + limit, }); - + const contractList = Result.list; if ( !contractList || !Array.isArray(contractList) || @@ -259,12 +260,12 @@ export const getAllGroupList = async () => { allContacts = [...allContacts, ...contractList]; // 如果返回的数据少于请求的数量,说明已经没有更多数据了 - if (contractList.length < count) { + if (contractList.length < limit) { hasMore = false; } else { - // 获取最后一条数据的id作为下一次请求的prevId + // 获取最后一条数据的id作为下一次请求的page const lastContact = contractList[contractList.length - 1]; - prevId = lastContact.id; + page = lastContact.id; } } diff --git a/Touchkebao/src/store/module/weChat/weChat.ts b/Touchkebao/src/store/module/weChat/weChat.ts index 2b9b4c42..91bc8a06 100644 --- a/Touchkebao/src/store/module/weChat/weChat.ts +++ b/Touchkebao/src/store/module/weChat/weChat.ts @@ -141,7 +141,16 @@ export const useWeChatStore = create()( const state = useWeChatStore.getState(); // 切换联系人时清空当前消息,等待重新加载 set({ currentMessages: [], openTransmitModal: false }); - clearUnreadCount([contract.id]).then(() => { + + const params: any = {}; + + if (!contract.chatroomId) { + params.wechatFriendId = contract.id; + } else { + params.wechatChatroomId = contract.id; + } + + clearUnreadCount(params).then(() => { if (isExist) { updateChatSession({ ...contract,