From fea194b7bb3f36db2121b415470c9669511cc91d Mon Sep 17 00:00:00 2001 From: chenbowen Date: Fri, 16 Jan 2026 15:04:29 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E8=B0=83=E6=95=B4=20username=20=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E9=80=BB=E8=BE=91=202.=20=E8=B0=83=E6=95=B4=20eban=20?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E7=99=BB=E5=BD=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iwork/impl/IWorkSyncProcessorImpl.java | 6 +++--- .../service/oauth2/EbanOAuth2ServiceImpl.java | 21 ++++++++++++------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkSyncProcessorImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkSyncProcessorImpl.java index c49f1b63..1c7a8b14 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkSyncProcessorImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkSyncProcessorImpl.java @@ -330,7 +330,7 @@ public class IWorkSyncProcessorImpl implements IWorkSyncProcessor { } boolean inactive = isInactiveUser(user.getStatus()); String username = resolveUsername(user); - if (StrUtil.isBlank(username)) { + if (username == null) { logSkip("人员", user.getId(), "缺少工号与登录账号,跳过同步"); result.increaseSkipped(); continue; @@ -785,8 +785,8 @@ public class IWorkSyncProcessorImpl implements IWorkSyncProcessor { if (StrUtil.isNotBlank(user.getLoginid())) { return user.getLoginid().trim(); } - String workcode = resolveWorkcode(user); - return StrUtil.isNotBlank(workcode) ? workcode : null; + // loginid 为空也继续同步,username 设为空字符串,不再回退工号 + return ""; } /** diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/oauth2/EbanOAuth2ServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/oauth2/EbanOAuth2ServiceImpl.java index fe41228f..91b2a107 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/oauth2/EbanOAuth2ServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/oauth2/EbanOAuth2ServiceImpl.java @@ -72,16 +72,21 @@ public class EbanOAuth2ServiceImpl implements EbanOAuth2Service { throw exception(AUTH_LOGIN_EBAN_TOKEN_INVALID); } - String workcode = StrUtil.trim(StrUtil.blankToDefault(userInfo.getLoginName(), userInfo.getUsername())); - if (StrUtil.isBlank(workcode)) { - log.error("E办OAuth2用户信息缺少工号(loginName),无法匹配账号: {}", JSONUtil.toJsonStr(userInfo)); - throw exception(AUTH_LOGIN_EBAN_TOKEN_INVALID); + String loginName = StrUtil.trim(userInfo.getLoginName()); + AdminUserDO user = null; + if (StrUtil.isNotBlank(loginName)) { + user = userService.getUserByUsername(loginName); } - - AdminUserDO user = userService.getUserByWorkcode(workcode); + // 若未匹配到,再尝试用工号匹配(工号为空则不匹配) if (user == null) { - createLoginLog(null, workcode, LoginLogTypeEnum.LOGIN_SOCIAL, LoginResultEnum.BAD_CREDENTIALS); - log.warn("E办OAuth2用户工号未在系统中找到对应账号: {}", workcode); + String workcode = StrUtil.trim(StrUtil.blankToDefault(userInfo.getLoginName(), userInfo.getUsername())); + if (StrUtil.isNotBlank(workcode)) { + user = userService.getUserByWorkcode(workcode); + } + } + if (user == null) { + createLoginLog(null, loginName, LoginLogTypeEnum.LOGIN_SOCIAL, LoginResultEnum.BAD_CREDENTIALS); + log.warn("E办OAuth2 用户未找到匹配账号,loginName={} workcode={}", loginName, userInfo.getUsername()); throw exception(AUTH_LOGIN_EBAN_USER_NOT_SYNC); }