import request from '@/config/axios' // IM 加群申请 Response VO export interface ImGroupRequestRespVO { 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 // 申请创建时间 // 聚合字段 userNickname?: string // 申请人 / 被邀请人昵称 userAvatar?: string // 申请人 / 被邀请人头像 inviterNickname?: string // 邀请人昵称 inviterAvatar?: string // 邀请人头像 groupName?: string // 群名称 groupAvatar?: string // 群头像 } // IM 加群申请发起 Request VO export interface ImGroupRequestApplyReqVO { groupId: number // 群编号 applyContent?: string // 申请理由 addSource?: number // 加入来源 } // 申请加群 export const applyJoinGroup = (data: ImGroupRequestApplyReqVO) => { return request.post({ url: '/im/group-request/apply', data }) } // 同意加群申请(群主或管理员) export const agreeGroupRequest = (id: number | string) => { return request.put({ url: '/im/group-request/agree', params: { id } }) } // 拒绝加群申请(群主或管理员) export const refuseGroupRequest = (id: number | string, handleContent?: string) => { return request.put({ url: '/im/group-request/refuse', params: { id, handleContent } }) } // 查询「我管理的所有群」下的未处理加群申请列表(不分页);前端 store 据此派生横幅红点 + Drawer 列表 export const getUnhandledRequestList = () => { return request.get({ url: '/im/group-request/unhandled-list' }) } // 查询指定群下的全部加群申请(含已处理);仅群主 / 管理员可查 export const getGroupRequestListByGroupId = (groupId: number) => { return request.get({ url: '/im/group-request/list-by-group', params: { groupId } }) } // 按 id 单查申请记录(带越权过滤;WebSocket 通知到达后用) export const getMyGroupRequest = (id: number) => { return request.get({ url: '/im/group-request/get', params: { id } }) }