From 2bd4163328b2eb365d384c335df3610510e6a3b1 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 3 Jan 2026 13:44:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E5=BC=B9=E7=AA=97UI=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E5=92=8C=E8=AE=BE=E8=AE=A1=E5=B8=88=E5=88=97=E8=A1=A8=E6=9D=83?= =?UTF-8?q?=E9=99=90=E9=97=AE=E9=A2=98=EF=BC=8C=E6=8E=92=E6=9F=A5=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E4=BF=A1=E6=81=AF=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 前端 TaskHall.vue: - 修复接单方式单选框的对齐问题,改为 Flex 布局并排显示且等高 - 调整样式使其更整齐 2. 后端 UserController.java: - getDesignersWithWorkload 方法增加权限控制 - 如果未传 deptId,非管理员用户强制使用自己的 deptId - 修复了其他部门负责人可以看到全公司设计师的问题 3. 后端 TaskApprovalService.java: - 在 getPendingApprovalTasks 中添加日志 - 记录品牌、类目、平台信息填充失败的情况,便于排查数据问题 --- .../designhub/controller/UserController.java | 19 ++++++++++++++++++- .../service/TaskApprovalService.java | 6 ++++++ frontend/src/views/TaskHall.vue | 6 +++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/designhub/controller/UserController.java b/backend/src/main/java/com/designhub/controller/UserController.java index cbaae20..b0d9810 100644 --- a/backend/src/main/java/com/designhub/controller/UserController.java +++ b/backend/src/main/java/com/designhub/controller/UserController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.designhub.common.Result; import com.designhub.entity.User; import com.designhub.service.UserService; +import com.designhub.util.JwtUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -24,6 +25,7 @@ import java.util.Map; public class UserController { private final UserService userService; + private final JwtUtil jwtUtil; @Operation(summary = "分页查询用户列表") @GetMapping @@ -129,8 +131,23 @@ public class UserController { @Operation(summary = "获取设计师列表及工作量", description = "获取部门内的设计师列表,包含每个设计师当前进行中的任务数量") @GetMapping("/designers-with-workload") public Result>> getDesignersWithWorkload( - @RequestParam(required = false) Long deptId + @RequestParam(required = false) Long deptId, + @RequestHeader("Authorization") String authHeader ) { + // 如果没有传入deptId,则根据当前用户角色判断 + if (deptId == null) { + String token = jwtUtil.extractTokenFromHeader(authHeader); + Long userId = jwtUtil.getUserIdFromToken(token); + + // 如果不是管理员,强制使用自己的部门ID + if (!userService.isAdminUser(userId)) { + User currentUser = userService.getUserById(userId); + if (currentUser != null) { + deptId = currentUser.getDeptId(); + } + } + } + log.info("获取设计师列表及工作量: deptId={}", deptId); return Result.success(userService.getDesignersWithWorkload(deptId)); } diff --git a/backend/src/main/java/com/designhub/service/TaskApprovalService.java b/backend/src/main/java/com/designhub/service/TaskApprovalService.java index 463644a..edcd1be 100644 --- a/backend/src/main/java/com/designhub/service/TaskApprovalService.java +++ b/backend/src/main/java/com/designhub/service/TaskApprovalService.java @@ -389,6 +389,8 @@ public class TaskApprovalService { if (brand != null) { // Brand实体类中name字段映射到brand_name,使用getName() task.setBrandName(brand.getName()); + } else { + log.warn("任务 {} 品牌ID {} 不存在", task.getId(), task.getBrandId()); } } @@ -398,6 +400,8 @@ public class TaskApprovalService { if (category != null) { // Category实体类中name字段映射到category_name,使用getName() task.setCategoryName(category.getName()); + } else { + log.warn("任务 {} 类目ID {} 不存在", task.getId(), task.getCategoryId()); } } @@ -407,6 +411,8 @@ public class TaskApprovalService { if (platform != null) { // Platform实体类中name字段映射到platform_name,使用getName() task.setPlatformName(platform.getName()); + } else { + log.warn("任务 {} 平台ID {} 不存在", task.getId(), task.getPlatformId()); } } diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 0730d99..be9a935 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -1872,14 +1872,14 @@
选择接单方式
- - + +
发布到任务大厅 所有设计师均可抢单
- +
指定设计师接单 直接分配给特定设计师