diff --git a/src/X1.WebUI/src/services/userService.ts b/src/X1.WebUI/src/services/userService.ts index 8c80cf6..c5f7d98 100644 --- a/src/X1.WebUI/src/services/userService.ts +++ b/src/X1.WebUI/src/services/userService.ts @@ -1,5 +1,6 @@ import { httpClient } from '@/lib/http-client'; import { OperationResult } from '@/types/auth'; +import { API_PATHS } from '@/constants/api'; export interface User { id: string; @@ -12,14 +13,23 @@ export interface User { isActive?: boolean; } +// 获取用户列表请求接口 +export interface GetAllUsersRequest { + pageNumber?: number; + pageSize?: number; + searchTerm?: string; + isActive?: boolean; +} + +// 获取用户列表响应接口 export interface GetAllUsersResponse { - users: User[]; totalCount: number; pageNumber: number; pageSize: number; totalPages: number; hasPreviousPage: boolean; hasNextPage: boolean; + items: User[]; } export interface CreateUserRequest { @@ -38,121 +48,46 @@ export interface UpdateUserRequest { isActive?: boolean; } -export interface UserService { - getAllUsers: (params?: { userName?: string; page?: number; pageSize?: number }) => Promise>; - getUser: (userId: string) => Promise>; - createUser: (data: CreateUserRequest) => Promise>; - updateUser: (userId: string, data: UpdateUserRequest) => Promise>; - updateUserRoles: (userId: string, roles: string[]) => Promise>; - deleteUser: (userId: string) => Promise>; -} +class UserService { + private readonly baseUrl = API_PATHS.USERS; + + // 获取用户列表 + async getAllUsers(params: GetAllUsersRequest = {}): Promise> { + const queryParams = new URLSearchParams(); + + if (params.pageNumber) queryParams.append('pageNumber', params.pageNumber.toString()); + if (params.pageSize) queryParams.append('pageSize', params.pageSize.toString()); + if (params.searchTerm) queryParams.append('searchTerm', params.searchTerm); + if (params.isActive !== undefined) queryParams.append('isActive', params.isActive.toString()); -export const userService: UserService = { - getAllUsers: async (params = {}) => { - try { - const mappedParams = { - PageNumber: params.page ?? 1, - PageSize: params.pageSize ?? 10, - UserName: params.userName ?? undefined - }; - const response = await httpClient.get<{ data: GetAllUsersResponse }>('/users', { params: mappedParams }); - const resultData = (response.data && 'users' in response.data) ? response.data : response.data?.data; - if (resultData && Array.isArray(resultData.users)) { - resultData.users = resultData.users.map(u => ({ - ...u, - id: u.id ?? u.userId, - isActive: u.isActive ?? false - })); - } - return { - success: true, - data: resultData as GetAllUsersResponse, - message: '获取用户列表成功' - }; - } catch (error: any) { - return { - success: false, - message: error.response?.data?.message || '获取用户列表失败' - }; - } - }, + const url = `${this.baseUrl}?${queryParams.toString()}`; + return httpClient.get(url); + } - getUser: async (userId: string): Promise> => { - try { - const response = await httpClient.get(`/users/${userId}`); - return { - success: true, - data: response.data || undefined, - message: '获取用户详情成功' - }; - } catch (error: any) { - return { - success: false, - message: error.response?.data?.message || '获取用户详情失败' - }; - } - }, + // 根据ID获取用户详情 + async getUser(userId: string): Promise> { + return httpClient.get(`${this.baseUrl}/${userId}`); + } - createUser: async (data: CreateUserRequest): Promise> => { - try { - const response = await httpClient.post('/users', data); - return { - success: true, - data: response.data || undefined, - message: '创建用户成功' - }; - } catch (error: any) { - return { - success: false, - message: error.response?.data?.message || '创建用户失败' - }; - } - }, + // 创建用户 + async createUser(data: CreateUserRequest): Promise> { + return httpClient.post(this.baseUrl, data); + } - updateUser: async (userId: string, data: UpdateUserRequest): Promise> => { - try { - const response = await httpClient.put(`/users/${userId}`, data); - return { - success: true, - data: response.data || undefined, - message: '更新用户成功' - }; - } catch (error: any) { - return { - success: false, - message: error.response?.data?.message || '更新用户失败' - }; - } - }, + // 更新用户 + async updateUser(userId: string, data: UpdateUserRequest): Promise> { + return httpClient.put(`${this.baseUrl}/${userId}`, data); + } - updateUserRoles: async (userId: string, roles: string[]): Promise> => { - try { - const response = await httpClient.put(`/users/${userId}/roles`, { roles }); - return { - success: true, - data: response.data || undefined, - message: '更新用户角色成功' - }; - } catch (error: any) { - return { - success: false, - message: error.response?.data?.message || '更新用户角色失败' - }; - } - }, + // 更新用户角色 + async updateUserRoles(userId: string, roles: string[]): Promise> { + return httpClient.put(`${this.baseUrl}/${userId}/roles`, { roles }); + } - deleteUser: async (userId: string): Promise> => { - try { - await httpClient.delete(`/users/${userId}`); - return { - success: true, - message: '删除用户成功' - }; - } catch (error: any) { - return { - success: false, - message: error.response?.data?.message || '删除用户失败' - }; - } + // 删除用户 + async deleteUser(userId: string): Promise> { + return httpClient.delete(`${this.baseUrl}/${userId}`); } -}; \ No newline at end of file +} + +export const userService = new UserService(); \ No newline at end of file