diff --git a/backend/src/main/java/com/designhub/controller/TaskController.java b/backend/src/main/java/com/designhub/controller/TaskController.java index 661c5d2..e5b9fb6 100644 --- a/backend/src/main/java/com/designhub/controller/TaskController.java +++ b/backend/src/main/java/com/designhub/controller/TaskController.java @@ -74,12 +74,16 @@ public class TaskController { public Result> getAllPendingApprovalTasks( @Parameter(description = "任务类型ID") @RequestParam(required = false) Long taskTypeId, @Parameter(description = "页码") @RequestParam(defaultValue = "1") Integer page, - @Parameter(description = "每页数量") @RequestParam(defaultValue = "20") Integer pageSize) { + @Parameter(description = "每页数量") @RequestParam(defaultValue = "20") Integer pageSize, + @RequestHeader("Authorization") String authHeader) { - log.info("查询所有待审核任务: taskTypeId={}, page={}, pageSize={}", - taskTypeId, page, pageSize); + String token = jwtUtil.extractTokenFromHeader(authHeader); + Long userId = jwtUtil.getUserIdFromToken(token); - IPage taskPage = taskService.getAllPendingApprovalTasks(page, pageSize, taskTypeId); + log.info("查询所有待审核任务: userId={}, taskTypeId={}, page={}, pageSize={}", + userId, taskTypeId, page, pageSize); + + IPage taskPage = taskService.getAllPendingApprovalTasks(userId, page, pageSize, taskTypeId); return Result.success(taskPage); } diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index d3f15e3..a7b90f0 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -606,14 +606,24 @@ public class TaskService { /** * 获取所有待审核任务(处于审批流程中的任务) * 包括:pending_demand_approval 和 pending_receiving_approval 状态的任务 + * 非管理员只能看到分配给自己的待审核任务 */ - public IPage getAllPendingApprovalTasks(Integer page, Integer pageSize, Long taskTypeId) { + public IPage getAllPendingApprovalTasks(Long userId, Integer page, Integer pageSize, Long taskTypeId) { Page pageParam = new Page<>(page, pageSize); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // 查询处于审批流程中的任务 wrapper.in(Task::getApprovalStatus, "pending_demand_approval", "pending_receiving_approval"); + // 检查用户是否是管理员 + User user = userService.getUserById(userId); + boolean isAdmin = user != null && Integer.valueOf(1).equals(user.getIsAdmin()); + + // 非管理员只能看到分配给自己的待审核任务 + if (!isAdmin) { + wrapper.eq(Task::getCurrentApproverId, userId); + } + // 根据任务类型筛选 if (taskTypeId != null) { wrapper.eq(Task::getTaskTypeId, taskTypeId);