/**
* API æœåŠ¡ç¤ºä¾‹
* 展示如何使用新的å“应处ç†å·¥å…·
*/
import { request } from '@/core/utils/request';
import {
createApiWrapper,
createPageApiWrapper,
type ApiResponse,
type PageParams
} from '@/core/utils/response';
// ç”¨æˆ·ä¿¡æ¯æŽ¥å£
export interface UserInfo {
id: number;
username: string;
email: string;
departmentName?: string;
lastLoginAddress?: string;
}
// ç”¨æˆ·åˆ—è¡¨æŸ¥è¯¢å‚æ•°
export interface UserListParams extends PageParams {
keyword?: string;
departmentId?: number;
status?: number;
}
// éƒ¨é—¨ä¿¡æ¯æŽ¥å£
export interface Department {
id: number;
name: string;
parentId?: number;
}
/**
* 获å–用户信æ¯
*/
export const getUserInfo = createApiWrapper(
async (userId: number): Promise<ApiResponse<UserInfo>> => {
const response = await request.get(`/Admin/User/${userId}`);
return response.data;
},
{
showSuccessMessage: false, // 查询æ“ä½œé€šå¸¸ä¸æ˜¾ç¤ºæˆåŠŸæç¤º
showErrorMessage: true,
}
);
/**
* 更新用户信æ¯
*/
export const updateUserInfo = createApiWrapper(
async (userId: number, data: Partial<UserInfo>): Promise<ApiResponse<UserInfo>> => {
const response = await request.put(`/Admin/User/${userId}`, data);
return response.data;
},
{
showSuccessMessage: true, // æ›´æ–°æ“作显示æˆåŠŸæç¤º
showErrorMessage: true,
successMessage: 'ç”¨æˆ·ä¿¡æ¯æ›´æ–°æˆåŠŸ',
}
);
/**
* åˆ é™¤ç”¨æˆ·
*/
export const deleteUser = createApiWrapper(
async (userId: number): Promise<ApiResponse<boolean>> => {
const response = await request.delete(`/Admin/User/${userId}`);
return response.data;
},
{
showSuccessMessage: true,
showErrorMessage: true,
successMessage: 'ç”¨æˆ·åˆ é™¤æˆåŠŸ',
}
);
/**
* 获å–用户列表(分页)
*/
export const getUserList = createPageApiWrapper(
async (params: UserListParams & Required<PageParams>): Promise<ApiResponse<UserInfo[]>> => {
const response = await request.get('/Admin/User/List', { params });
return response.data;
},
{
showSuccessMessage: false,
showErrorMessage: true,
}
);
/**
* 获å–部门列表
*/
export const getDepartmentList = createApiWrapper(
async (): Promise<ApiResponse<Department[]>> => {
const response = await request.get('/Admin/Department/List');
return response.data;
},
{
showSuccessMessage: false,
showErrorMessage: true,
}
);
/**
* 创建新用户
*/
export const createUser = createApiWrapper(
async (userData: Omit<UserInfo, 'id'>): Promise<ApiResponse<UserInfo>> => {
const response = await request.post('/Admin/User', userData);
return response.data;
},
{
showSuccessMessage: true,
showErrorMessage: true,
successMessage: '用户创建æˆåŠŸ',
}
);
/**
* 批é‡åˆ 除用户
*/
export const batchDeleteUsers = createApiWrapper(
async (userIds: number[]): Promise<ApiResponse<boolean>> => {
const response = await request.post('/Admin/User/BatchDelete', { ids: userIds });
return response.data;
},
{
showSuccessMessage: true,
showErrorMessage: true,
successMessage: '批é‡åˆ 除æˆåŠŸ',
}
);
// 使用示例
export class UserService {
/**
* åŠ è½½ç”¨æˆ·åˆ—è¡¨
*/
static async loadUserList(params: UserListParams = {}) {
const result = await getUserList(params);
if (result.success) {
return {
data: result.data || [],
total: result.page?.totalCount || 0,
pageIndex: result.page?.pageIndex || 1,
pageSize: result.page?.pageSize || 10,
stat: result.stat,
};
}
return {
data: [],
total: 0,
pageIndex: 1,
pageSize: 10,
stat: null,
};
}
/**
* åŠ è½½ç”¨æˆ·è¯¦æƒ…
*/
static async loadUserDetail(userId: number) {
const result = await getUserInfo(userId);
return result.success ? result.data : null;
}
/**
* ä¿å˜ç”¨æˆ·ä¿¡æ¯
*/
static async saveUser(user: UserInfo) {
if (user.id) {
// 更新现有用户
const result = await updateUserInfo(user.id, user);
return result.success;
} else {
// 创建新用户
const { id: _id, ...userData } = user;
const result = await createUser(userData);
return result.success ? result.data : null;
}
}
/**
* åˆ é™¤ç”¨æˆ·
*/
static async removeUser(userId: number) {
const result = await deleteUser(userId);
return result.success;
}
/**
* 批é‡åˆ 除用户
*/
static async removeUsers(userIds: number[]) {
const result = await batchDeleteUsers(userIds);
return result.success;
}
}
|