gaoluyang
2026-06-29 27cd042df9aca0383a49f3514bc21958dd890912
src/api/im/message/private/index.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
import { requestClient } from '#/api/request';
export namespace ImPrivateMessageApi {
  /** ç§èŠæ¶ˆæ¯ Response VO */
  export interface PrivateMessageRespVO {
    id: number; // æ¶ˆæ¯ç¼–号
    clientMessageId: string; // å®¢æˆ·ç«¯æ¶ˆæ¯ç¼–号
    senderId: number; // å‘送人编号
    receiverId: number; // æŽ¥æ”¶äººç¼–号
    type: number; // å†…容类型
    content: string; // æ¶ˆæ¯å†…容(JSON æ ¼å¼ï¼‰
    status: number; // æ¶ˆæ¯çŠ¶æ€ï¼ˆæ­£å¸¸ / å·²æ’¤å›žï¼‰
    receiptStatus?: number; // å›žæ‰§çŠ¶æ€ï¼ˆä¸éœ€è¦ / å¾…完成 / å·²å®Œæˆï¼‰ï¼Œå¯¹é½ ImMessageReceiptStatus
    sendTime: string; // å‘送时间
  }
  /** ç§èŠæ¶ˆæ¯å‘送 Request VO */
  export interface PrivateMessageSendReqVO {
    clientMessageId: string; // å®¢æˆ·ç«¯æ¶ˆæ¯ç¼–号
    receiverId: number; // æŽ¥æ”¶äººç¼–号
    type: number; // å†…容类型
    content: string; // æ¶ˆæ¯å†…容(JSON æ ¼å¼ï¼‰
    receipt?: boolean; // æ˜¯å¦éœ€è¦å›žæ‰§ï¼›ä¸ä¼ åŽç«¯é»˜è®¤ true(普通私聊用户消息)
  }
  /** ç§èŠåŽ†å²æ¶ˆæ¯åˆ—è¡¨ Request VO */
  export interface PrivateMessageListReqVO {
    receiverId: number | string; // æŽ¥æ”¶äººç¼–号(对方)
    maxId?: number | string; // èµ·å§‹æ¶ˆæ¯ç¼–号(不含),为空则从最新消息开始
    limit: number; // æ‹‰å–数量(1 ~ 200)
  }
}
/** å‘送私聊消息 */
export function sendPrivateMessage(data: ImPrivateMessageApi.PrivateMessageSendReqVO) {
  return requestClient.post<ImPrivateMessageApi.PrivateMessageRespVO>(
    '/im/message/private/send',
    data,
  );
}
/** æ‹‰å–私聊消息(增量) */
export function pullPrivateMessageList(
  params: { minId: number | string; size: number },
  signal?: AbortSignal,
) {
  return requestClient.get<ImPrivateMessageApi.PrivateMessageRespVO[]>(
    '/im/message/private/pull',
    { params, signal },
  );
}
/** æŸ¥è¯¢ç§èŠåŽ†å²æ¶ˆæ¯ */
export function getPrivateMessageList(params: ImPrivateMessageApi.PrivateMessageListReqVO) {
  return requestClient.get<ImPrivateMessageApi.PrivateMessageRespVO[]>(
    '/im/message/private/list',
    { params },
  );
}
/** æ ‡è®°ç§èŠæ¶ˆæ¯å·²è¯» */
export function readPrivateMessages(
  receiverId: number | string,
  messageId: number | string,
) {
  return requestClient.put<boolean>('/im/message/private/read', undefined, {
    params: { receiverId, messageId },
  });
}
/** æŸ¥è¯¢å¯¹æ–¹å·²è¯»åˆ°æˆ‘发的最大消息 id(多端 / ç¦»çº¿åŽç”¨äºŽè¡¥é½å·²è¯»çŠ¶æ€ï¼‰ */
export function getPrivateMaxReadMessageId(
  peerId: number | string,
  signal?: AbortSignal,
) {
  return requestClient.get<null | number>(
    '/im/message/private/max-read-message-id',
    { params: { peerId }, signal },
  );
}
/** æ’¤å›žç§èŠæ¶ˆæ¯ */
export function recallPrivateMessage(id: number | string) {
  return requestClient.delete<ImPrivateMessageApi.PrivateMessageRespVO>(
    '/im/message/private/recall',
    { params: { id } },
  );
}