gaoluyang
2026-06-29 27cd042df9aca0383a49f3514bc21958dd890912
src/api/im/message/group/index.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
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,
  });
}