From 4e747479477ab94f59b95bd105e3bdcf0180654f Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 2 Jan 2026 16:17:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B0=83=E8=AF=95=E6=97=A5?= =?UTF-8?q?=E5=BF=97=EF=BC=9A=E5=9C=A8syncUserFromDingTalk=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=A6=E7=BB=86=E7=9A=84roleIds=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/UserService.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/UserService.java b/backend/src/main/java/com/designhub/service/UserService.java index 2ec61a9..cfbfe6a 100644 --- a/backend/src/main/java/com/designhub/service/UserService.java +++ b/backend/src/main/java/com/designhub/service/UserService.java @@ -510,11 +510,19 @@ public class UserService { user.setDeptName(primaryDept.getDeptName()); // 根据主部门类型设置角色(但如果用户已经是管理员,保留管理员角色) String currentRoleIds = user.getRoleIds(); + log.info("syncUserFromDingTalk - 检查管理员角色: userId={}, currentRoleIds={}", + user.getId(), currentRoleIds); boolean isAdmin = currentRoleIds != null && (currentRoleIds.contains("1") || currentRoleIds.contains("2")); + log.info("syncUserFromDingTalk - isAdmin={}, currentRoleIds.contains('1')={}, currentRoleIds.contains('2')={}", + isAdmin, currentRoleIds != null && currentRoleIds.contains("1"), + currentRoleIds != null && currentRoleIds.contains("2")); if (!isAdmin) { // 只有非管理员用户才根据部门类型设置角色 - user.setRoleIds("receiving".equals(primaryDept.getDeptType()) ? "5" : "6"); + String newRoleIds = "receiving".equals(primaryDept.getDeptType()) ? "5" : "6"; + log.info("syncUserFromDingTalk - 非管理员用户,设置角色: userId={}, newRoleIds={}", + user.getId(), newRoleIds); + user.setRoleIds(newRoleIds); } else { log.info("用户已是管理员,保留管理员角色: userId={}, roleIds={}", user.getId(), currentRoleIds); @@ -541,11 +549,17 @@ public class UserService { user.setDeptName(defaultDept.getDeptName()); // 根据部门类型设置角色(但如果用户已经是管理员,保留管理员角色) String currentRoleIds = user.getRoleIds(); + log.info("syncUserFromDingTalk - 检查管理员角色(默认部门): userId={}, currentRoleIds={}", + user.getId(), currentRoleIds); boolean isAdmin = currentRoleIds != null && (currentRoleIds.contains("1") || currentRoleIds.contains("2")); + log.info("syncUserFromDingTalk - isAdmin={}", isAdmin); if (!isAdmin) { // 只有非管理员用户才根据部门类型设置角色 - user.setRoleIds("receiving".equals(defaultDept.getDeptType()) ? "5" : "6"); + String newRoleIds = "receiving".equals(defaultDept.getDeptType()) ? "5" : "6"; + log.info("syncUserFromDingTalk - 非管理员用户,设置角色: userId={}, newRoleIds={}", + user.getId(), newRoleIds); + user.setRoleIds(newRoleIds); } else { log.info("用户已是管理员,保留管理员角色: userId={}, roleIds={}", user.getId(), currentRoleIds); @@ -711,8 +725,9 @@ public class UserService { } } else { // 已有用户:同步更新信息 - log.info("钉钉用户已存在,同步更新: userId={}", user.getId()); + log.info("钉钉用户已存在,同步更新: userId={}, 当前roleIds={}", user.getId(), user.getRoleIds()); syncUserFromDingTalk(user, detailedInfo, dingtalkUserId, dingDepartments); + log.info("钉钉用户同步完成: userId={}, 最终roleIds={}", user.getId(), user.getRoleIds()); } // 5. 生成Token