diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EnterpriseUser.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EnterpriseUser.java index 037cd476..0ad16758 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EnterpriseUser.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/EnterpriseUser.java @@ -79,6 +79,11 @@ public class EnterpriseUser extends TenantEntity { */ private String password; + /** + * 深i企用户ID + */ + private String siqUserId; + /** * 账号状态(0正常 1停用) */ 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 5d59f4ae..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,13 +199,15 @@ 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; + loginName = StringUtils.isNotEmpty(loginName) ? loginName : siqUserId; String userType = UserType.APP_USER.getUserType(); EnterpriseUser newUser = null; if (StringUtils.isEmpty(loginName)) { - log.error("深i企用户账号和手机号均为空"); + log.error("深i企用户账号、手机号、用户ID均为空"); throw new BaseException("深i企用户账号不能为空"); } @@ -213,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); @@ -238,15 +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(siqUserId); // 设置默认部门ID user.setDeptId(UserConstants.DEFAULT_DEPT); @@ -550,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; + } + } }