93 lines
2.8 KiB
TypeScript
93 lines
2.8 KiB
TypeScript
import { requestClient } from '#/api/request';
|
||
|
||
export namespace ImGroupMessageApi {
|
||
/** 群聊消息 Response VO */
|
||
export interface GroupMessageRespVO {
|
||
id: number; // 消息编号
|
||
clientMessageId: string; // 客户端消息编号
|
||
senderId: number; // 发送人编号
|
||
groupId: number; // 群编号
|
||
type: number; // 内容类型
|
||
content: string; // 消息内容(JSON 格式)
|
||
status: number; // 消息状态
|
||
sendTime: string; // 发送时间
|
||
atUserIds?: number[]; // @ 目标用户编号列表
|
||
receiverUserIds?: number[]; // 定向接收用户编号列表
|
||
receiptStatus?: number; // 回执状态
|
||
readCount?: number; // 已读人数(回执消息、且发送人为当前用户时有值)
|
||
}
|
||
|
||
/** 群聊消息发送 Request VO */
|
||
export interface GroupMessageSendReqVO {
|
||
clientMessageId: string; // 客户端消息编号
|
||
groupId: number; // 群编号
|
||
type: number; // 内容类型
|
||
content: string; // 消息内容(JSON 格式)
|
||
atUserIds?: number[]; // @ 目标用户编号列表
|
||
receipt?: boolean; // 是否需要回执
|
||
}
|
||
|
||
/** 群聊历史消息列表 Request VO */
|
||
export interface GroupMessageListReqVO {
|
||
groupId: number | string; // 群编号
|
||
maxId?: number | string; // 起始消息编号(不含),为空则从最新消息开始
|
||
limit: number; // 拉取数量(1 ~ 200)
|
||
}
|
||
}
|
||
|
||
|
||
/** 发送群聊消息 */
|
||
export function sendGroupMessage(data: ImGroupMessageApi.GroupMessageSendReqVO) {
|
||
return requestClient.post<ImGroupMessageApi.GroupMessageRespVO>(
|
||
'/im/message/group/send',
|
||
data,
|
||
);
|
||
}
|
||
|
||
/** 拉取群聊消息(增量) */
|
||
export function pullGroupMessageList(
|
||
params: { minId: number | string; size: number },
|
||
signal?: AbortSignal,
|
||
) {
|
||
return requestClient.get<ImGroupMessageApi.GroupMessageRespVO[]>(
|
||
'/im/message/group/pull',
|
||
{ params, signal },
|
||
);
|
||
}
|
||
|
||
/** 查询群聊历史消息 */
|
||
export function getGroupMessageList(params: ImGroupMessageApi.GroupMessageListReqVO) {
|
||
return requestClient.get<ImGroupMessageApi.GroupMessageRespVO[]>(
|
||
'/im/message/group/list',
|
||
{ params },
|
||
);
|
||
}
|
||
|
||
/** 标记群聊消息已读 */
|
||
export function readGroupMessages(
|
||
groupId: number | string,
|
||
messageId: number | string,
|
||
) {
|
||
return requestClient.put<boolean>('/im/message/group/read', undefined, {
|
||
params: { groupId, messageId },
|
||
});
|
||
}
|
||
|
||
/** 撤回群聊消息 */
|
||
export function recallGroupMessage(id: number | string) {
|
||
return requestClient.delete<ImGroupMessageApi.GroupMessageRespVO>(
|
||
'/im/message/group/recall',
|
||
{ params: { id } },
|
||
);
|
||
}
|
||
|
||
/** 获取群消息已读用户列表 */
|
||
export function getGroupReadUsers(params: {
|
||
groupId: number | string;
|
||
messageId: number | string;
|
||
}) {
|
||
return requestClient.get<number[]>('/im/message/group/get-read-user-ids', {
|
||
params,
|
||
});
|
||
}
|