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