Ver Fonte

3.4.4 update-20250520 bug修复

xiaofei há 1 mês atrás
pai
commit
dc365e3be9

+ 19 - 10
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -367,7 +367,6 @@ public class SysController {
         if (Objects.nonNull(schoolCode) && schoolCode.contains("#")) {
             schoolCode = schoolCode.substring(0, schoolCode.indexOf("#"));
         }
-        String mobileNumber = loginParam.getMobileNumber();
 
         if (StringUtils.isBlank(schoolCode)) {
             throw ExceptionResultEnum.ERROR.exception("学校代码不能为空");
@@ -378,16 +377,15 @@ public class SysController {
             throw ExceptionResultEnum.ERROR.exception("学校不存在");
         }
 
+        String mobileNumber = loginParam.getMobileNumber();
         if (StringUtils.isBlank(mobileNumber)) {
             throw ExceptionResultEnum.ERROR.exception("手机号不能为空");
         }
-
         wrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId())
                 .eq(SysUser::getMobileNumber, mobileNumber);
         List<SysUser> userList = sysUserService.list(wrapper);
-
-        if (userList != null && userList.size() > 0) {
-            throw ExceptionResultEnum.ERROR.exception("手机号已使用");
+        if (CollectionUtils.isNotEmpty(userList)) {
+            throw ExceptionResultEnum.ERROR.exception("手机号已被其它用户使用");
         }
 
         // 根据账号/密码取用户ID
@@ -399,11 +397,22 @@ public class SysController {
         }
         QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
         sysUserQueryWrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId())
-                .and(w -> w.eq(SysUser::getLoginName, loginName).or().eq(SysUser::getCode, loginName))
-                .eq(SysUser::getPassword, password);
-        SysUser sysUser = sysUserService.getOne(sysUserQueryWrapper);
-        if (sysUser == null) {
-            throw ExceptionResultEnum.ERROR.exception("用户数据异常");
+                .eq(SysUser::getLoginName, loginName);
+        List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
+        if (CollectionUtils.isEmpty(sysUserList)) {
+            throw ExceptionResultEnum.ERROR.exception("用户不存在");
+        }
+        if (sysUserList.size() > 1) {
+            throw ExceptionResultEnum.ERROR.exception("用户名绑定了多个用户");
+        }
+        SysUser sysUser = sysUserList.get(0);
+
+        if (!sysUser.getEnable()) {
+            throw ExceptionResultEnum.ERROR.exception("用户已禁用");
+        }
+        String decodePassword = Base64Util.encode(RSAUtil.decrypt(password).getBytes());
+        if (!decodePassword.equals(sysUser.getPassword())) {
+            throw ExceptionResultEnum.ERROR.exception("用户名或密码错误");
         }
 
         // 发送短信验证码