import { Controller, Get, Post, Body, Put, Param, UseGuards, Req, ParseIntPipe, } from '@nestjs/common'; import { ApiTags, ApiOperation, ApiResponse, ApiParam } from '@nestjs/swagger'; import type { Request } from 'express'; import { JwtAuthGuard } from '../../../auth/guards/JwtAuthGuard'; import { ApiTaskService } from '../../services/api/ApiTaskService'; interface AuthenticatedRequest extends Request { user?: { uid: number; username: string; siteId: number; userType: string; }; } @ApiTags('API任务') @Controller('api/sys/task') @UseGuards(JwtAuthGuard) export class ApiTaskController { constructor(private readonly apiTaskService: ApiTaskService) {} @Get('list') @ApiOperation({ summary: '获取任务列表' }) @ApiResponse({ status: 200, description: '获取成功' }) async getTaskList(@Req() req: AuthenticatedRequest) { const siteId = req.user?.siteId || 0; const result = await this.apiTaskService.getTaskList(siteId); return { code: 200, message: '获取成功', data: result }; } @Post() @ApiOperation({ summary: '创建任务' }) @ApiResponse({ status: 200, description: '创建成功' }) async createTask(@Body() body: any, @Req() req: AuthenticatedRequest) { const siteId = req.user?.siteId || 0; const result = await this.apiTaskService.createTask(siteId, body); return { code: 200, message: '创建成功', data: result }; } @Put(':taskId/status') @ApiOperation({ summary: '更新任务状态' }) @ApiParam({ name: 'taskId', description: '任务ID' }) @ApiResponse({ status: 200, description: '更新成功' }) async updateTaskStatus( @Param('taskId', ParseIntPipe) taskId: number, @Body() body: { status: string }, @Req() req: AuthenticatedRequest, ) { const result = await this.apiTaskService.updateTaskStatus( taskId, body.status, ); return { code: 200, message: '更新成功', data: result }; } }