package com.guo.learningprogresstracker.controller; import cn.dev33.satoken.stp.StpUtil; import com.guo.learningprogresstracker.common.Ops; import com.guo.learningprogresstracker.entity.CommonResult; import com.guo.learningprogresstracker.dto.request.TaskRequest; import com.guo.learningprogresstracker.service.TasksService; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.rmi.ServerException; /** * 任务控制层 * @author guo */ @RestController @Validated @RequiredArgsConstructor public class TaskController { private final TasksService tasksService; @PostMapping("/tasks") @Operation(summary = "添加新任务") public CommonResult addTask(@RequestBody @Validated({Ops.CreateG.class}) TaskRequest taskRequest) { System.out.println("Token: " + StpUtil.getTokenValue()); return CommonResult.success(tasksService.addTask(taskRequest)); } @Operation(summary = "任务详情API-未完成") @GetMapping("/tasks/{taskId}") public CommonResult getTask(@PathVariable("taskId") String taskId) { return CommonResult.success(tasksService.getTask(taskId)); } @PutMapping("/tasks/{taskId}") @Operation(summary = "更新任务详情") public CommonResult updateTask(@PathVariable("taskId") String taskId,@Validated(Ops.UpdateG.class) @RequestBody TaskRequest updatedTask) { tasksService.updateTask(taskId, updatedTask); return CommonResult.success(); } @DeleteMapping("/tasks/{taskId}") @Operation(summary = "删除指定任务") public CommonResult deleteTask(@PathVariable("taskId") String taskId) throws ServerException { tasksService.deleteTask(taskId); return CommonResult.success(); } @GetMapping("/tasks") @Operation(summary = "获取所有任务列表") public CommonResult tasksList() { return CommonResult.success(tasksService.taskList()); } }