From c6bc9296e0bdf253ad7a4062b90991534ff79dc2 Mon Sep 17 00:00:00 2001 From: PengJ <2413927716@qq.com> Date: Fri, 31 Oct 2025 15:24:45 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=99=BB=E5=BD=95=E3=80=91=E5=AE=89?= =?UTF-8?q?=E7=9C=BC=E7=BB=9F=E4=B8=80=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/ISysUserService.java | 2 ++ .../service/impl/LoginAnYanServiceImpl.java | 8 +++--- .../service/impl/SysUserServiceImpl.java | 28 +++++++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 962d2c0..f1950cb 100644 --- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -515,6 +515,8 @@ public interface ISysUserService extends IService { SysUser getUserByNameOrWorkNoOrMobile(String username, String password, List personTypes); + SysUser getUserByNameOrWorkNo(String username, List personTypes); + Result selectUserInfo(); diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java index e93e2da..3f9abbd 100644 --- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java +++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/LoginAnYanServiceImpl.java @@ -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()); diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index a428af9..e819ccf 100644 --- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -2006,6 +2006,34 @@ public class SysUserServiceImpl extends ServiceImpl impl return true; } + /** + * @description: 获取用户信息 + * @date 2025/10/31 14:52 + */ + @Override + public SysUser getUserByNameOrWorkNo(String username, List personTypes) { + LambdaQueryWrapper 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 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 personTypes) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();