gaoluyang
2026-06-29 27cd042df9aca0383a49f3514bc21958dd890912
src/api/im/group/request/index.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
import { requestClient } from '#/api/request';
export namespace ImGroupRequestApi {
  /** IM åŠ ç¾¤ç”³è¯· Response VO */
  export interface GroupRequestRespVO {
    id: number; // ç”³è¯·ç¼–号
    groupId: number; // ç¾¤ç¼–号
    userId: number; // ç”³è¯·äºº / è¢«é‚€è¯·äººç”¨æˆ·ç¼–号
    inviterUserId?: number; // é‚€è¯·äººï¼›NULL è¡¨ç¤ºç”¨æˆ·ä¸»åŠ¨ç”³è¯·
    handleResult: number; // å¤„理结果;0=未处理;1=同意;2=拒绝
    applyContent?: string; // ç”³è¯·ç†ç”±
    handleContent?: string; // å¤„理理由(拒绝时可选填)
    handleUserId?: number; // å¤„理人用户编号
    addSource?: number; // åŠ å…¥æ¥æºï¼›å‚è§ ImGroupAddSourceEnum
    handleTime?: string; // å¤„理时间
    createTime: string; // ç”³è¯·åˆ›å»ºæ—¶é—´
    updateTime?: number; // æœ€è¿‘更新时间(毫秒时间戳,增量拉取游标用)
    userNickname?: string; // ç”³è¯·äºº / è¢«é‚€è¯·äººæ˜µç§°
    userAvatar?: string; // ç”³è¯·äºº / è¢«é‚€è¯·äººå¤´åƒ
    inviterNickname?: string; // é‚€è¯·äººæ˜µç§°
    inviterAvatar?: string; // é‚€è¯·äººå¤´åƒ
    groupName?: string; // ç¾¤åç§°
    groupAvatar?: string; // ç¾¤å¤´åƒ
  }
  /** IM åŠ ç¾¤ç”³è¯·å‘èµ· Request VO */
  export interface GroupRequestApplyReqVO {
    groupId: number; // ç¾¤ç¼–号
    applyContent?: string; // ç”³è¯·ç†ç”±
    addSource?: number; // åŠ å…¥æ¥æº
  }
}
/** ç”³è¯·åŠ ç¾¤ */
export function applyJoinGroup(data: ImGroupRequestApi.GroupRequestApplyReqVO) {
  return requestClient.post<null | number>('/im/group-request/apply', data);
}
/** åŒæ„åŠ ç¾¤ç”³è¯·ï¼ˆç¾¤ä¸»æˆ–ç®¡ç†å‘˜ï¼‰ */
export function agreeGroupRequest(id: number | string) {
  return requestClient.put<boolean>('/im/group-request/agree', undefined, {
    params: { id },
  });
}
/** æ‹’绝加群申请(群主或管理员) */
export function refuseGroupRequest(
  id: number | string,
  handleContent?: string,
) {
  return requestClient.put<boolean>('/im/group-request/refuse', undefined, {
    params: { id, handleContent },
  });
}
/** æŸ¥è¯¢ã€Œæˆ‘管理的所有群」下的未处理加群申请列表(不分页);前端 store æ®æ­¤æ´¾ç”Ÿæ¨ªå¹…红点 + Drawer åˆ—表 */
export function getUnhandledRequestList() {
  return requestClient.get<ImGroupRequestApi.GroupRequestRespVO[]>(
    '/im/group-request/unhandled-list',
  );
}
/** æŸ¥è¯¢æŒ‡å®šç¾¤ä¸‹çš„全部加群申请(含已处理);仅群主 / ç®¡ç†å‘˜å¯æŸ¥ */
export function getGroupRequestListByGroupId(groupId: number) {
  return requestClient.get<ImGroupRequestApi.GroupRequestRespVO[]>(
    '/im/group-request/list-by-group',
    { params: { groupId } },
  );
}
/** æŒ‰ id å•查申请记录(带越权过滤;WebSocket é€šçŸ¥åˆ°è¾¾åŽç”¨ï¼‰ */
export function getMyGroupRequest(id: number) {
  return requestClient.get<ImGroupRequestApi.GroupRequestRespVO | null>(
    '/im/group-request/get',
    { params: { id } },
  );
}
/** å¢žé‡æ‹‰å–我管理的所有群下加群申请变更(重连 / ç¦»çº¿è¡¥å¿ï¼‰ */
export function pullMyGroupRequestList(params: {
  lastId?: number;
  lastUpdateTime?: number;
  limit: number;
}) {
  return requestClient.get<ImGroupRequestApi.GroupRequestRespVO[]>(
    '/im/group-request/pull',
    { params },
  );
}