Files
orion-visor/orion-visor-ui/src/api/user/user.ts

198 lines
4.1 KiB
TypeScript
Raw Normal View History

2023-10-25 10:26:14 +08:00
import type { DataGrid, Pagination } from '@/types/global';
import type { TableData } from '@arco-design/web-vue/es/table/interface';
2024-04-26 16:01:06 +08:00
import type { RoleQueryResponse } from '@/api/user/role';
2023-08-16 10:38:56 +08:00
import axios from 'axios';
2024-05-31 16:32:45 +08:00
import qs from 'query-string';
2023-08-16 10:38:56 +08:00
/**
*
*/
export interface UserCreateRequest {
username?: string;
password?: string;
nickname?: string;
avatar?: string;
mobile?: string;
email?: string;
}
/**
*
*/
export interface UserUpdateRequest extends UserCreateRequest {
2023-09-25 14:36:13 +08:00
id?: number;
2023-11-02 17:23:44 +08:00
status?: number;
2023-08-16 17:06:08 +08:00
roleIdList?: Array<number>;
2023-08-16 15:32:08 +08:00
password?: string;
2023-08-16 10:38:56 +08:00
}
/**
*
*/
export interface UserQueryRequest extends Pagination {
id?: number;
username?: string;
password?: string;
nickname?: string;
avatar?: string;
mobile?: string;
email?: string;
status?: number;
lastLoginTime?: string;
}
/**
*
*/
2023-09-24 22:08:33 +08:00
export interface UserQueryResponse extends TableData {
2023-11-01 18:57:53 +08:00
id: number;
username: string;
nickname: string;
avatar: string;
mobile: string;
email: string;
status: number;
2023-08-16 10:38:56 +08:00
lastLoginTime?: number;
createTime: number;
updateTime: number;
creator: string;
updater: string;
2024-04-26 16:01:06 +08:00
roles: Array<RoleQueryResponse>;
2023-08-16 10:38:56 +08:00
}
2023-11-01 18:57:53 +08:00
/**
*
*/
export interface UserSessionQueryResponse {
visible: boolean;
current: boolean;
address: string;
location: string;
userAgent: string;
loginTime: number;
}
/**
* 线
*/
export interface UserSessionOfflineRequest {
userId?: number;
timestamp: number;
}
2024-03-05 00:02:06 +08:00
/**
*
*/
export interface LoginHistoryQueryResponse {
id: number;
address: string;
location: string;
userAgent: string;
result: number;
errorMessage: string;
createTime: number;
}
2023-08-16 10:38:56 +08:00
/**
*
*/
export function createUser(request: UserCreateRequest) {
return axios.post('/infra/system-user/create', request);
}
/**
* id
*/
export function updateUser(request: UserUpdateRequest) {
return axios.put('/infra/system-user/update', request);
}
2023-08-16 15:32:08 +08:00
/**
*
*/
export function updateUserStatus(request: UserUpdateRequest) {
return axios.put('/infra/system-user/update-status', request);
}
/**
*
*/
2023-09-14 17:24:18 +08:00
export function grantUserRole(request: UserUpdateRequest) {
return axios.put('/infra/system-user/grant-role', request);
2023-08-16 15:32:08 +08:00
}
/**
*
*/
export function resetUserPassword(request: UserUpdateRequest) {
return axios.put('/infra/system-user/reset-password', request);
}
2023-08-16 10:38:56 +08:00
/**
* id
*/
export function getUser(id: number) {
return axios.get<UserQueryResponse>('/infra/system-user/get', { params: { id } });
}
/**
2023-08-16 15:32:08 +08:00
*
2023-08-16 10:38:56 +08:00
*/
2023-08-16 15:32:08 +08:00
export function getUserList() {
return axios.get<UserQueryResponse[]>('/infra/system-user/list');
2023-08-16 10:38:56 +08:00
}
2023-08-16 17:06:08 +08:00
/**
* roleId
*/
export function getUserRoleIdList(userId: number) {
return axios.get<Array<number>>('/infra/system-user/get-roles', { params: { userId } });
}
2023-08-16 10:38:56 +08:00
/**
*
*/
export function getUserPage(request: UserQueryRequest) {
return axios.post<DataGrid<UserQueryResponse>>('/infra/system-user/query', request);
}
/**
* id
*/
export function deleteUser(id: number) {
return axios.delete('/infra/system-user/delete', { params: { id } });
}
2024-05-31 16:32:45 +08:00
/**
*
*/
export function batchDeleteUser(idList: Array<number>) {
return axios.delete('/infra/system-user/batch-delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
}
});
}
2023-11-02 17:23:44 +08:00
/**
*
*/
export function getUserSessionList(id: number) {
2023-11-23 11:28:35 +08:00
return axios.get<Array<UserSessionQueryResponse>>('/infra/system-user/session/list', { params: { id } });
2023-11-02 17:23:44 +08:00
}
/**
* 线
*/
export function offlineUserSession(request: UserSessionOfflineRequest) {
2023-11-23 11:28:35 +08:00
return axios.put('/infra/system-user/session/offline', request);
2023-11-02 17:23:44 +08:00
}
2024-03-05 00:02:06 +08:00
/**
*
*/
2024-06-11 12:28:24 +08:00
export function getLoginHistory(username: string, count: number) {
return axios.get<LoginHistoryQueryResponse[]>('/infra/system-user/login-history', { params: { username, count } });
2024-03-05 00:02:06 +08:00
}