gaoluyang
2026-06-29 27cd042df9aca0383a49f3514bc21958dd890912
src/api/im/manager/group/index.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
import type { PageParam, PageResult } from '..\..\..\..\packages\effects\request\src';
import { requestClient } from '#/api/request';
export namespace ImManagerGroupApi {
  /** ç¾¤ */
  export interface Group {
    id: number;
    name: string;
    avatar?: string;
    notice?: string;
    ownerUserId: number;
    ownerNickname?: string;
    memberCount?: number;
    status: number;
    banned: boolean;
    mutedAll?: boolean; // æ˜¯å¦å…¨ç¾¤ç¦è¨€
    bannedReason?: string;
    bannedTime?: Date;
    dissolvedTime?: Date;
    createTime: Date;
  }
  /** ç¾¤æˆå‘˜ */
  export interface GroupMember {
    userId: number;
    nickname?: string;
    avatar?: string;
    displayUserName?: string;
    groupRemark?: string;
    silent?: boolean;
    status: number;
    role?: number; // æˆå‘˜è§’色,参见 ImGroupMemberRole æžšä¸¾
    joinTime?: Date;
    quitTime?: Date;
    muteEndTime?: Date; // ç¦è¨€åˆ°æœŸæ—¶é—´
  }
  /** ç¾¤å°ç¦è¯·æ±‚ */
  export interface GroupBanReqVO {
    id: number;
    reason: string;
  }
}
/** èŽ·å¾—ç¾¤åˆ†é¡µ */
export function getManagerGroupPage(params: PageParam) {
  return requestClient.get<PageResult<ImManagerGroupApi.Group>>(
    '/im/manager/group/page',
    { params },
  );
}
/** èŽ·å¾—ç¾¤è¯¦æƒ… */
export function getManagerGroup(id: number) {
  return requestClient.get<ImManagerGroupApi.Group>('/im/manager/group/get', {
    params: { id },
  });
}
/** å°ç¦ç¾¤ */
export function banManagerGroup(data: ImManagerGroupApi.GroupBanReqVO) {
  return requestClient.put<boolean>('/im/manager/group/ban', data);
}
/** è§£å°ç¾¤ */
export function unbanManagerGroup(id: number) {
  return requestClient.put<boolean>('/im/manager/group/unban', undefined, {
    params: { id },
  });
}
/** è§£æ•£ç¾¤ */
export function dissolveManagerGroup(id: number) {
  return requestClient.delete<boolean>('/im/manager/group/dissolve', {
    params: { id },
  });
}
/** èŽ·å¾—ç¾¤æˆå‘˜åˆ—è¡¨ï¼ˆå«å·²é€€ç¾¤æˆå‘˜ï¼Œç”±å‰ç«¯æŒ‰éœ€è¿‡æ»¤ï¼‰ */
export function getManagerGroupMemberList(groupId: number) {
  return requestClient.get<ImManagerGroupApi.GroupMember[]>(
    '/im/manager/group/member/list',
    { params: { groupId } },
  );
}