Browse Source

优化了深i企登录

dev-V1.0.5
vincent 1 month ago
parent
commit
d5adcec7ba
  1. 23
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java

23
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;
}
}
}

Loading…
Cancel
Save