Files
ckb-SuperAdmin/Touchkebao/src/pages/pc/ckbox/weChat/api.ts

386 lines
9.5 KiB
TypeScript

import request2 from "@/api/request2";
import request from "@/api/request";
import {
MessageData,
ChatHistoryResponse,
MessageType,
OnlineStatus,
MessageStatus,
FileUploadResponse,
EmojiData,
QuickReply,
ChatSettings,
} from "./data";
//流量池
//好友接待配置
export function setFriendInjectConfig(params) {
return request("/v1/kefu/ai/friend/set", params, "POST");
}
export function getTrafficPoolList() {
return request(
"/v1/traffic/pool/getPackage",
{
page: 1,
limit: 9999,
},
"GET",
);
}
// 好友列表
export function getContactList(params) {
return request("/v1/kefu/wechatFriend/list", params, "GET");
}
// 群列表
export function getGroupList(params) {
return request("/v1/kefu/wechatChatroom/list", params, "GET");
}
// 分组列表
export function getLabelsListByGroup(params) {
return request("/v1/kefu/wechatGroup/list", params, "GET");
}
//==============-原接口=================
// 获取联系人列表
// export const getContactList = (params: { prevId: number; count: number }) => {
// return request2("/api/wechatFriend/list", params, "GET");
// };
// //获取群列表
// export function getGroupList(params: { prevId: number; count: number }) {
// return request2(
// "/api/wechatChatroom/listExcludeMembersByPage?",
// params,
// "GET",
// );
// }
//群、好友聊天记录列表
export function getMessageList() {
return request("/v1/kefu/message/list", {}, "GET");
}
//获取客服列表
export function getAgentList() {
return request("/v1/kefu/customerService/list", {}, "GET");
}
//读取聊天信息
function jsonToQueryString(json) {
const params = new URLSearchParams();
for (const key in json) {
if (Object.prototype.hasOwnProperty.call(json, key)) {
params.append(key, json[key]);
}
}
return params.toString();
}
//转移客户
export function WechatFriendAllot(params: {
wechatFriendId?: number;
wechatChatroomId?: number;
toAccountId: number;
notifyReceiver: boolean;
comment: string;
}) {
return request2(
"/api/wechatFriend/allot?" + jsonToQueryString(params),
undefined,
"PUT",
);
}
//获取可转移客服列表
export function getTransferableAgentList() {
return request2("/api/account/myDepartmentAccountsForTransfer", {}, "GET");
}
// 微信好友列表
export function WechatFriendRebackAllot(params: {
wechatFriendId?: number;
wechatChatroomId?: number;
}) {
return request2(
"/api/wechatFriend/rebackAllot?" + jsonToQueryString(params),
undefined,
"PUT",
);
}
// 微信群列表
export function WechatGroup(params) {
return request2("/api/WechatGroup/list", params, "GET");
}
//更新配置
export function updateConfig(params) {
return request("/api/WechatFriend/updateConfig", params, "PUT");
}
//获取聊天记录-2 获取列表
export function getChatMessages(params: {
wechatAccountId: number;
wechatFriendId?: number;
wechatChatroomId?: number;
From: number;
To: number;
Count: number;
olderData: boolean;
}) {
return request("/api/FriendMessage/SearchMessage", params, "GET");
}
export function getChatroomMessages(params: {
wechatAccountId: number;
wechatFriendId?: number;
wechatChatroomId?: number;
From: number;
To: number;
Count: number;
olderData: boolean;
}) {
return request2("/api/ChatroomMessage/SearchMessage", params, "GET");
}
//获取群成员
export function getGroupMembers(params: { id: number }) {
return request2(
"/api/WechatChatroom/listMembersByWechatChatroomId",
params,
"GET",
);
}
//触客宝登陆
export function loginWithToken(params: any) {
return request2(
"/token",
params,
"POST",
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
},
1000,
);
}
// 获取触客宝用户信息
export function getChuKeBaoUserInfo() {
return request2("/api/account/self", {}, "GET");
}
//获取控制终端列表
export const getControlTerminalList = params => {
return request2("/api/wechataccount", params, "GET");
};
// 获取聊天历史
export const getChatHistory = (
chatId: string,
page: number = 1,
pageSize: number = 50,
): Promise<ChatHistoryResponse> => {
return request2(`/v1/chats/${chatId}/messages`, { page, pageSize }, "GET");
};
// 发送消息
export const sendMessage = (
chatId: string,
content: string,
type: MessageType = MessageType.TEXT,
): Promise<MessageData> => {
return request2(`/v1/chats/${chatId}/messages`, { content, type }, "POST");
};
// 发送文件消息
export const sendFileMessage = (
chatId: string,
file: File,
type: MessageType,
): Promise<MessageData> => {
const formData = new FormData();
formData.append("file", file);
formData.append("type", type);
return request2(`/v1/chats/${chatId}/messages/file`, formData, "POST");
};
// 标记消息为已读
export const markMessageAsRead = (messageId: string): Promise<void> => {
return request2(`/v1/messages/${messageId}/read`, {}, "PUT");
};
// 标记聊天为已读
export const markChatAsRead = (chatId: string): Promise<void> => {
return request2(`/v1/chats/${chatId}/read`, {}, "PUT");
};
// 添加群组成员
export const addGroupMembers = (
groupId: string,
memberIds: string[],
): Promise<void> => {
return request2(`/v1/groups/${groupId}/members`, { memberIds }, "POST");
};
// 移除群组成员
export const removeGroupMembers = (
groupId: string,
memberIds: string[],
): Promise<void> => {
return request2(`/v1/groups/${groupId}/members`, { memberIds }, "DELETE");
};
// 获取在线状态
export const getOnlineStatus = (userId: string): Promise<OnlineStatus> => {
return request2(`/v1/users/${userId}/status`, {}, "GET");
};
// 获取消息状态
export const getMessageStatus = (messageId: string): Promise<MessageStatus> => {
return request2(`/v1/messages/${messageId}/status`, {}, "GET");
};
// 上传文件
export const uploadFile = (file: File): Promise<FileUploadResponse> => {
const formData = new FormData();
formData.append("file", file);
return request2("/v1/upload", formData, "POST");
};
// 获取表情包列表
export const getEmojiList = (): Promise<EmojiData[]> => {
return request2("/v1/emojis", {}, "GET");
};
// 获取快捷回复列表
export const getQuickReplies = (): Promise<QuickReply[]> => {
return request2("/v1/quick-replies", {}, "GET");
};
// 添加快捷回复
export const addQuickReply = (data: {
content: string;
category: string;
}): Promise<QuickReply> => {
return request2("/v1/quick-replies", data, "POST");
};
// 删除快捷回复
export const deleteQuickReply = (id: string): Promise<void> => {
return request2(`/v1/quick-replies/${id}`, {}, "DELETE");
};
// 获取聊天设置
export const getChatSettings = (): Promise<ChatSettings> => {
return request2("/v1/chat/settings", {}, "GET");
};
// 更新聊天设置
export const updateChatSettings = (
settings: Partial<ChatSettings>,
): Promise<ChatSettings> => {
return request2("/v1/chat/settings", settings, "PUT");
};
// 删除聊天会话
export const deleteChatSession = (chatId: string): Promise<void> => {
return request2(`/v1/chats/${chatId}`, {}, "DELETE");
};
// 置顶聊天会话
export const pinChatSession = (chatId: string): Promise<void> => {
return request2(`/v1/chats/${chatId}/pin`, {}, "PUT");
};
// 取消置顶聊天会话
export const unpinChatSession = (chatId: string): Promise<void> => {
return request2(`/v1/chats/${chatId}/unpin`, {}, "PUT");
};
// 静音聊天会话
export const muteChatSession = (chatId: string): Promise<void> => {
return request2(`/v1/chats/${chatId}/mute`, {}, "PUT");
};
// 取消静音聊天会话
export const unmuteChatSession = (chatId: string): Promise<void> => {
return request2(`/v1/chats/${chatId}/unmute`, {}, "PUT");
};
// 转发消息
export const forwardMessage = (
messageId: string,
targetChatIds: string[],
): Promise<void> => {
return request2("/v1/messages/forward", { messageId, targetChatIds }, "POST");
};
// 撤回消息
export const recallMessage = (messageId: string): Promise<void> => {
return request2(`/v1/messages/${messageId}/recall`, {}, "PUT");
};
// ============== 跟进提醒相关接口 ==============
// 跟进提醒列表
export const getFollowUpList = (params: {
isProcess?: string;
isRemind?: string;
keyword?: string;
level?: string;
limit?: string;
page?: string;
friendId?: string;
}) => {
return request("/v1/kefu/followUp/list", params, "GET");
};
// 跟进提醒添加
export const addFollowUp = (params: {
description?: string;
friendId: string;
reminderTime?: string;
title?: string;
type?: string; // 0其他 1电话回访 2发送消息 3安排会议 4发送邮件
}) => {
return request("/v1/kefu/followUp/add", params, "POST");
};
// 跟进提醒处理
export const processFollowUp = (params: { ids?: string }) => {
return request("/v1/kefu/followUp/process", params, "GET");
};
// ============== 待办事项相关接口 ==============
// 待办事项列表
export const getTodoList = (params: {
isProcess?: string;
isRemind?: string;
keyword?: string;
level?: string;
limit?: string;
page?: string;
friendId?: string;
}) => {
return request("/v1/kefu/todo/list", params, "GET");
};
// 待办事项添加
export const addTodo = (params: {
description?: string;
friendId: string;
level?: string; // 0低优先级 1中优先级 2高优先级 3紧急
reminderTime?: string;
title?: string;
}) => {
return request("/v1/kefu/todo/add", params, "POST");
};
// 待办事项处理
export const processTodo = (params: { ids: string }) => {
return request("/v1/kefu/todo/process", params, "GET");
};