mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-05-23 01:00:10 +08:00
feat(task-processor): implement PictureTaskProcessor for background image processing tasks
This commit is contained in:
@@ -1,29 +1,36 @@
|
||||
import { fetchApi, type BaseResult } from './fetchClient';
|
||||
import type { ProcessingStatus } from './pictureApi';
|
||||
|
||||
// 图片处理任务
|
||||
export interface PictureProcessingTask {
|
||||
pictureId: number;
|
||||
// 通用任务视图模型
|
||||
export interface TaskDetailsViewModel {
|
||||
taskId: string;
|
||||
pictureName: string;
|
||||
status: ProcessingStatus;
|
||||
taskName: string; // 任务的描述性名称
|
||||
taskType: number; // 任务类型 (例如 0 for "PictureProcessing")
|
||||
status: TaskExecutionStatus; // 修改: 类型将是数字枚举
|
||||
progress: number; // 0-100
|
||||
error?: string;
|
||||
createdAt: Date;
|
||||
completedAt?: Date;
|
||||
relatedEntityId?: number;
|
||||
}
|
||||
// 修改: TaskExecutionStatus 定义为数字枚举
|
||||
export enum TaskExecutionStatus {
|
||||
Pending = 0, // 等待处理
|
||||
Processing = 1, // 处理中
|
||||
Completed = 2, // 处理完成
|
||||
Failed = 3 // 处理失败
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户的所有处理任务
|
||||
*/
|
||||
export const getUserTasks = async (): Promise<BaseResult<PictureProcessingTask[]>> => {
|
||||
return fetchApi<PictureProcessingTask[]>('/background-tasks/user-tasks');
|
||||
export const getUserTasks = async (): Promise<BaseResult<TaskDetailsViewModel[]>> => {
|
||||
return fetchApi<TaskDetailsViewModel[]>('/background-tasks/user-tasks');
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取特定图片的处理状态
|
||||
* 获取特定图片的处理状态 (实际获取的是与该图片关联的任务状态)
|
||||
* @param pictureId 图片ID
|
||||
*/
|
||||
export const getPictureProcessingStatus = async (pictureId: number): Promise<BaseResult<PictureProcessingTask>> => {
|
||||
return fetchApi<PictureProcessingTask>(`/background-tasks/picture-status/${pictureId}`);
|
||||
export const getPictureTaskExecutionStatus = async (pictureId: number): Promise<BaseResult<TaskDetailsViewModel>> => {
|
||||
return fetchApi<TaskDetailsViewModel>(`/background-tasks/picture-status/${pictureId}`);
|
||||
};
|
||||
|
||||
@@ -20,16 +20,7 @@ export interface FilteredPicturesRequest {
|
||||
includeAllPublic?: boolean;
|
||||
}
|
||||
|
||||
// 将类型定义改为枚举,这样既可以作为类型也可以作为值使用
|
||||
export type ProcessingStatus = 'Pending' | 'Processing' | 'Completed' | 'Failed';
|
||||
|
||||
// 添加常量对象提供运行时值
|
||||
export const ProcessingStatus = {
|
||||
Pending: 'Pending' as ProcessingStatus,
|
||||
Processing: 'Processing' as ProcessingStatus,
|
||||
Completed: 'Completed' as ProcessingStatus,
|
||||
Failed: 'Failed' as ProcessingStatus
|
||||
};
|
||||
|
||||
// 图片响应数据
|
||||
export interface PictureResponse {
|
||||
@@ -49,9 +40,6 @@ export interface PictureResponse {
|
||||
permission: number;
|
||||
albumId?: number;
|
||||
albumName?: string;
|
||||
processingStatus: ProcessingStatus;
|
||||
processingError?: string;
|
||||
processingProgress: number;
|
||||
}
|
||||
|
||||
// 收藏请求
|
||||
|
||||
Reference in New Issue
Block a user