【登录】安眼统一认证

This commit is contained in:
2025-10-31 15:24:45 +08:00
parent 36c67c6c2a
commit c6bc9296e0
3 changed files with 34 additions and 4 deletions
@@ -515,6 +515,8 @@ public interface ISysUserService extends IService<SysUser> {
SysUser getUserByNameOrWorkNoOrMobile(String username, String password, List<String> personTypes);
SysUser getUserByNameOrWorkNo(String username, List<String> personTypes);
Result<SysUserInfoDO> selectUserInfo();
@@ -121,8 +121,8 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService {
// 检查并更新用户信息
checkUserAndUpdate(anYanUserInfo, decryptedPassword);
// 获取本地用户信息
SysUser sysUser = sysUserService.getUserByNameOrWorkNoOrMobile(username, decryptedPassword, null);
// 获取本地用户信息(由于两个平台的密码可能不一致,所以去掉本平台的密码匹配)
SysUser sysUser = sysUserService.getUserByNameOrWorkNo(username, null);
if (sysUser == null) {
loginService.addLoginFailOvertimes(username);
return Result.error("账号或密码错误");
@@ -172,6 +172,7 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService {
String departId = checkDepartAndUpdate(employeeUnitDTO);
if (list.isEmpty()) {
UserEmployee user = getUserEmployee(anYanUserInfo, employeeUnitDTO);
user.setUsername(anYanUserInfo.getLoginName());
user.setPassword(password);
user.setOrgCode(departId);
user.setPersonType("1");
@@ -190,7 +191,7 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService {
BeanUtil.copyProperties(user, loginUser);
healthUserEmployeeExService.updateUserInfo(user, loginUser);
} else {
ExceptionAssertsUtil.fail("用户工号重复");
ExceptionAssertsUtil.fail("用户信息重复");
}
}
@@ -206,7 +207,6 @@ public class LoginAnYanServiceImpl implements ILoginAnYanService {
UserEmployee user = new UserEmployee();
user.setExtension(healthUserEmployeeEx);
user.setWorkNo(employeeUnitDTO.getEmployeeNum());
user.setUsername(anYanUserInfo.getLoginName());
user.setRealname(employeeUnitDTO.getName());
user.setEmail(employeeUnitDTO.getEmail());
user.setPhone(employeeUnitDTO.getMobile());
@@ -2006,6 +2006,34 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return true;
}
/**
* @description: 获取用户信息
* @date 2025/10/31 14:52
*/
@Override
public SysUser getUserByNameOrWorkNo(String username, List<String> personTypes) {
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
if (CollUtil.isNotEmpty(personTypes)) {
queryWrapper.in(SysUser::getPersonType, personTypes);
}
queryWrapper.eq(SysUser::getUsername, username);
// 处理工号
if (LoginUtils.isWorkNo(username)) {
queryWrapper.or()
.eq(SysUser::getWorkNo, LoginUtils.getFullWorkNo(username))
.or()
.eq(SysUser::getWorkNo, LoginUtils.getShortWorkNo(username));
}
// all user
List<SysUser> list = list(queryWrapper);
if (CollectionUtils.isEmpty(list)) {
return null;
} else if (list.size() > 1) {
ExceptionAssertsUtil.fail("用户信息重复");
}
return list.get(0);
}
@Override
public SysUser getUserByNameOrWorkNoOrMobile(String username, String password, List<String> personTypes) {
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();