2024-08-29 18:26:26 +08:00
|
|
|
import type { ClearRequest, DataGrid, Pagination } from '@/types/global';
|
2024-05-09 00:06:08 +08:00
|
|
|
import type { TableData } from '@arco-design/web-vue/es/table/interface';
|
|
|
|
|
import axios from 'axios';
|
|
|
|
|
import qs from 'query-string';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务创建请求
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskCreateRequest {
|
|
|
|
|
remotePath?: string;
|
|
|
|
|
description?: string;
|
2024-05-09 15:43:35 +08:00
|
|
|
hostIdList?: Array<number>;
|
|
|
|
|
files?: Array<UploadTaskFileCreateRequest>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务文件创建请求
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskFileCreateRequest {
|
|
|
|
|
fileId?: string;
|
|
|
|
|
filePath?: string;
|
|
|
|
|
fileSize?: number;
|
2024-05-09 00:06:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务创建响应
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskCreateResponse {
|
|
|
|
|
id: number;
|
|
|
|
|
token: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务查询请求
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskQueryRequest extends Pagination {
|
|
|
|
|
id?: number;
|
|
|
|
|
userId?: number;
|
|
|
|
|
remotePath?: string;
|
|
|
|
|
description?: string;
|
|
|
|
|
status?: string;
|
|
|
|
|
createTimeRange?: string[];
|
2024-08-29 18:26:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务清理请求
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskClearRequest extends UploadTaskQueryRequest, ClearRequest {
|
2024-05-09 00:06:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务查询响应
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskQueryResponse extends TableData {
|
|
|
|
|
id: number;
|
|
|
|
|
userId: number;
|
|
|
|
|
username: string;
|
|
|
|
|
remotePath: string;
|
|
|
|
|
description: string;
|
|
|
|
|
status: string;
|
|
|
|
|
extraInfo: string;
|
2024-05-11 00:16:42 +08:00
|
|
|
fileCount: number;
|
|
|
|
|
hostCount: number;
|
2024-05-09 00:06:08 +08:00
|
|
|
startTime: number;
|
|
|
|
|
endTime: number;
|
|
|
|
|
createTime: number;
|
2024-05-10 18:58:48 +08:00
|
|
|
hosts: Array<UploadTaskHost>;
|
2024-05-09 00:06:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-05-10 18:58:48 +08:00
|
|
|
* 上传任务主机响应
|
2024-05-09 00:06:08 +08:00
|
|
|
*/
|
2024-05-10 18:58:48 +08:00
|
|
|
export interface UploadTaskHost {
|
|
|
|
|
id: number;
|
|
|
|
|
code: string;
|
|
|
|
|
name: string;
|
|
|
|
|
address: string;
|
|
|
|
|
files: Array<UploadTaskFile>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 上传任务文件响应
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskFile {
|
2024-05-09 00:06:08 +08:00
|
|
|
id: number;
|
|
|
|
|
taskId: number;
|
|
|
|
|
hostId: number;
|
|
|
|
|
fileId: string;
|
|
|
|
|
filePath: string;
|
|
|
|
|
fileSize: number;
|
|
|
|
|
status: string;
|
2024-12-14 12:41:06 +08:00
|
|
|
errorMessage: string;
|
2024-05-09 00:06:08 +08:00
|
|
|
startTime: number;
|
|
|
|
|
endTime: number;
|
|
|
|
|
current: number;
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-11 00:16:42 +08:00
|
|
|
/**
|
|
|
|
|
* 上传任务状态响应
|
|
|
|
|
*/
|
|
|
|
|
export interface UploadTaskStatusResponse extends TableData {
|
|
|
|
|
id: number;
|
|
|
|
|
status: string;
|
|
|
|
|
startTime: number;
|
|
|
|
|
endTime: number;
|
|
|
|
|
files: Array<UploadTaskFile>;
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-09 00:06:08 +08:00
|
|
|
/**
|
|
|
|
|
* 创建上传任务
|
|
|
|
|
*/
|
|
|
|
|
export function createUploadTask(request: UploadTaskCreateRequest) {
|
|
|
|
|
return axios.post<UploadTaskCreateResponse>('/asset/upload-task/create', request);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 创建上传任务
|
|
|
|
|
*/
|
2024-05-10 11:23:22 +08:00
|
|
|
export function startUploadTask(id: number) {
|
|
|
|
|
return axios.post('/asset/upload-task/start', { id });
|
2024-05-09 00:06:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 创建上传任务
|
|
|
|
|
*/
|
2024-05-10 11:23:22 +08:00
|
|
|
export function cancelUploadTask(id: number, failed: boolean) {
|
|
|
|
|
return axios.post('/asset/upload-task/cancel', { id, failed });
|
2024-05-09 00:06:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询上传任务
|
|
|
|
|
*/
|
|
|
|
|
export function getUploadTask(id: number) {
|
|
|
|
|
return axios.get<UploadTaskQueryResponse>('/asset/upload-task/get', { params: { id } });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询上传任务
|
|
|
|
|
*/
|
|
|
|
|
export function getUploadTaskPage(request: UploadTaskQueryRequest) {
|
|
|
|
|
return axios.post<DataGrid<UploadTaskQueryResponse>>('/asset/upload-task/query', request);
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-10 13:21:08 +08:00
|
|
|
/**
|
|
|
|
|
* 查询上传任务状态
|
|
|
|
|
*/
|
|
|
|
|
export function getUploadTaskStatus(idList: Array<number>, queryFiles: boolean) {
|
2024-05-11 00:16:42 +08:00
|
|
|
return axios.get<Array<UploadTaskStatusResponse>>('/asset/upload-task/status', {
|
2024-05-10 13:21:08 +08:00
|
|
|
params: { idList, queryFiles },
|
2024-12-03 11:28:58 +08:00
|
|
|
promptBizErrorMessage: false,
|
|
|
|
|
promptRequestErrorMessage: false,
|
2024-05-10 13:21:08 +08:00
|
|
|
paramsSerializer: params => {
|
|
|
|
|
return qs.stringify(params, { arrayFormat: 'comma' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-09 00:06:08 +08:00
|
|
|
/**
|
|
|
|
|
* 删除上传任务
|
|
|
|
|
*/
|
|
|
|
|
export function deleteUploadTask(id: number) {
|
|
|
|
|
return axios.delete('/asset/upload-task/delete', { params: { id } });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 批量删除上传任务
|
|
|
|
|
*/
|
|
|
|
|
export function batchDeleteUploadTask(idList: Array<number>) {
|
|
|
|
|
return axios.delete('/asset/upload-task/batch-delete', {
|
|
|
|
|
params: { idList },
|
|
|
|
|
paramsSerializer: params => {
|
|
|
|
|
return qs.stringify(params, { arrayFormat: 'comma' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-10-15 12:36:11 +08:00
|
|
|
* 查询批量上传任务数量
|
2024-05-09 00:06:08 +08:00
|
|
|
*/
|
|
|
|
|
export function getUploadTaskCount(request: UploadTaskQueryRequest) {
|
2024-08-29 18:26:26 +08:00
|
|
|
return axios.post<number>('/asset/upload-task/count', request);
|
2024-05-09 00:06:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-10-15 12:36:11 +08:00
|
|
|
* 清空查询批量上传任务
|
2024-05-09 00:06:08 +08:00
|
|
|
*/
|
2024-08-29 18:26:26 +08:00
|
|
|
export function clearUploadTask(request: UploadTaskClearRequest) {
|
2024-05-09 00:06:08 +08:00
|
|
|
return axios.post<number>('/asset/upload-task/clear', request);
|
|
|
|
|
}
|