From d5adcec7bae97fdcfade8c418a30eeb5913b93e1 Mon Sep 17 00:00:00 2001 From: vincent Date: Mon, 21 Sep 2026 15:41:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E6=B7=B1i=E4=BC=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AppEnterpriseLoginServiceImpl.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java index 36347461..ae331e23 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java @@ -199,7 +199,7 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService * @return 是否操作成功 */ private EnterpriseUser saveOrUpdateEnterpriseUser(JSONObject userInfo) { - String phone = IdCardCryptoUtil.symmetricDecryptIdCard(secretKey, userInfo.getString("phone")); + String phone = safeDecryptPhone(userInfo.getString("phone")); String account = userInfo.getString("account"); String siqUserId = userInfo.getString("userId"); String loginName = StringUtils.isNotEmpty(account) ? account : phone; @@ -207,7 +207,7 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService String userType = UserType.APP_USER.getUserType(); EnterpriseUser newUser = null; if (StringUtils.isEmpty(loginName)) { - log.error("深i企用户账号和手机号均为空"); + log.error("深i企用户账号、手机号、用户ID均为空"); throw new BaseException("深i企用户账号不能为空"); } @@ -215,7 +215,6 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService queryWrapper.eq(EnterpriseUser::getLoginName, loginName); EnterpriseUser existUser = enterpriseUserMapper.selectOne(queryWrapper); - Long userId; if (existUser == null) { log.info("企业用户不存在,执行新增操作: userName={}, userType={}", loginName, userType); newUser = buildEnterpriseUser(userInfo, userType); @@ -240,16 +239,18 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService */ private EnterpriseUser buildEnterpriseUser(JSONObject userInfo, String userType) { EnterpriseUser user = new EnterpriseUser(); - String phone = IdCardCryptoUtil.symmetricDecryptIdCard(secretKey, userInfo.getString("phone")); + String phone = safeDecryptPhone(userInfo.getString("phone")); String account = userInfo.getString("account"); + String siqUserId = userInfo.getString("userId"); String loginName = StringUtils.isNotEmpty(account) ? account : phone; + loginName = StringUtils.isNotEmpty(loginName) ? loginName : siqUserId; // 基本信息 user.setUserName(userInfo.getString("userName")); user.setUserType(userType); user.setLoginName(loginName); user.setPhonenumber(phone); user.setNickName(userInfo.getString("userName")); - user.setSiqUserId(userInfo.getString("userId")); + user.setSiqUserId(siqUserId); // 设置默认部门ID user.setDeptId(UserConstants.DEFAULT_DEPT); @@ -553,4 +554,16 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService return token; } + + private String safeDecryptPhone(String phone) { + if (StringUtils.isEmpty(phone)) { + return null; + } + try { + return IdCardCryptoUtil.symmetricDecryptIdCard(secretKey, phone); + } catch (Exception e) { + log.warn("解密手机号失败: {}", phone, e); + return null; + } + } }