diff --git a/tenant-platform/src/api/im.ts b/tenant-platform/src/api/im.ts index b960648..267ac3d 100644 --- a/tenant-platform/src/api/im.ts +++ b/tenant-platform/src/api/im.ts @@ -19,7 +19,7 @@ export interface ImUser { avatar?: string status: 'ACTIVE' | 'BANNED' gender: 'UNKNOWN' | 'MALE' | 'FEMALE' - createdAt: string + createdAt: number } export interface ImGroup { @@ -27,9 +27,33 @@ export interface ImGroup { appId: string name: string creatorId: string - memberIds: string[] - adminIds: string[] - createdAt: string + groupType?: string | null + memberIds: string + adminIds: string + announcement?: string | null + createdAt: number +} + +export interface ImMessage { + id: string + appId: string + fromUserId: string + toId: string + chatType: 'SINGLE' | 'GROUP' + msgType: string + content: string + status: string + mentionedUserIds?: string | null + groupReadCount?: number | null + createdAt: number +} + +export interface PagedResult { + content: T[] + totalElements: number + totalPages: number + size: number + number: number } export interface ImStats { @@ -41,13 +65,13 @@ export interface ImStats { export const imAdminApi = { listUsers(appId: string, page = 0, size = 20) { - return imClient.get<{ data: { content: ImUser[]; totalElements: number; totalPages: number } }>( + return imClient.get<{ data: PagedResult }>( '/api/im/admin/users', { params: { appId, page, size } }, ) }, updateUserStatus(appId: string, userId: string, status: 'ACTIVE' | 'BANNED') { - return imClient.put(`/api/im/admin/users/${userId}/status`, { status }, { params: { appId } }) + return imClient.put(`/api/im/admin/users/${encodeURIComponent(userId)}/status`, { status }, { params: { appId } }) }, listGroups(appId: string) { @@ -58,6 +82,46 @@ export const imAdminApi = { return imClient.get<{ data: ImStats }>('/api/im/admin/stats', { params: { appId } }) }, + getMessages( + appId: string, + userA: string, + userB: string, + page = 0, + size = 20, + filters?: { + msgType?: string + keyword?: string + startTime?: string + endTime?: string + }, + ) { + return imClient.get<{ data: PagedResult }>('/api/im/admin/messages', { + params: { + appId, + userA, + userB, + page, + size, + ...(filters?.msgType ? { msgType: filters.msgType } : {}), + ...(filters?.keyword ? { keyword: filters.keyword } : {}), + ...(filters?.startTime ? { startTime: filters.startTime } : {}), + ...(filters?.endTime ? { endTime: filters.endTime } : {}), + }, + }) + }, + + revokeMessage(appId: string, messageId: string) { + return imClient.post<{ data: ImMessage }>( + `/api/im/admin/messages/${encodeURIComponent(messageId)}/revoke`, + {}, + { params: { appId } }, + ) + }, + + dismissGroup(appId: string, groupId: string) { + return imClient.delete<{ data: null }>(`/api/im/admin/groups/${encodeURIComponent(groupId)}`, { params: { appId } }) + }, + registerUser(appId: string, userId: string, nickname?: string, avatar?: string) { return imClient.post<{ data: ImUser }>( '/api/im/admin/users', diff --git a/tenant-platform/src/views/im/ImManagementView.vue b/tenant-platform/src/views/im/ImManagementView.vue index ff40ed3..410d0b6 100644 --- a/tenant-platform/src/views/im/ImManagementView.vue +++ b/tenant-platform/src/views/im/ImManagementView.vue @@ -2,7 +2,6 @@
- @@ -14,44 +13,48 @@ - + -
注册用户 刷新
+ - - - -