From dc4c5558ae01a5bb382740a790a6f2e1f27c792f Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 12 Jan 2026 15:18:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BE=85=E5=AE=A1=E6=A0=B8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E6=8C=89=E7=94=A8=E6=88=B7=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=BF=87=E6=BB=A4=EF=BC=8C=E5=8F=AA=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=88=86=E9=85=8D=E7=BB=99=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/controller/TaskController.java | 12 ++++++++---- .../main/java/com/designhub/service/TaskService.java | 12 +++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) 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);