| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import { Router } from 'express';
- import { asyncHandler } from '../middleware/error.js';
- import { taskQueueService } from '../services/TaskQueueService.js';
- import type { CreateTaskRequest } from '@media-manager/shared';
- const router = Router();
- /**
- * 获取当前用户的任务列表
- */
- router.get(
- '/',
- asyncHandler(async (req, res) => {
- const userId = req.user!.userId;
- const tasks = taskQueueService.getUserTasks(userId);
- res.json({
- success: true,
- data: { tasks },
- });
- })
- );
- /**
- * 获取活跃任务
- */
- router.get(
- '/active',
- asyncHandler(async (req, res) => {
- const userId = req.user!.userId;
- const tasks = taskQueueService.getActiveTasks(userId);
- res.json({
- success: true,
- data: { tasks },
- });
- })
- );
- /**
- * 创建新任务
- */
- router.post(
- '/',
- asyncHandler(async (req, res) => {
- const userId = req.user!.userId;
- const request = req.body as CreateTaskRequest;
-
- const task = taskQueueService.createTask(userId, request);
-
- res.json({
- success: true,
- message: '任务已创建',
- data: { task },
- });
- })
- );
- /**
- * 取消任务
- */
- router.post(
- '/:taskId/cancel',
- asyncHandler(async (req, res) => {
- const userId = req.user!.userId;
- const { taskId } = req.params;
-
- const success = taskQueueService.cancelTask(userId, taskId);
-
- if (success) {
- res.json({
- success: true,
- message: '任务已取消',
- });
- } else {
- res.status(400).json({
- success: false,
- message: '无法取消任务',
- });
- }
- })
- );
- /**
- * 清理已完成的任务
- */
- router.post(
- '/clear-completed',
- asyncHandler(async (req, res) => {
- const userId = req.user!.userId;
- taskQueueService.clearCompletedTasks(userId, 0);
- res.json({
- success: true,
- message: '已清理',
- });
- })
- );
- export default router;
|