From 9bb7dcfc74c142fe1514cd2580cb6f0d64ca45fd Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 24 十二月 2024 10:28:30 +0800
Subject: [PATCH] merge

---
 medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java |   80 +++++++++++++++++++++++++++++++--------
 1 files changed, 63 insertions(+), 17 deletions(-)

diff --git a/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java b/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java
index 66c0060..95ec9c3 100644
--- a/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java
+++ b/medicalWaste-framework/src/main/java/com/sinata/framework/web/service/SysLoginService.java
@@ -3,6 +3,7 @@
 import com.sinata.common.constant.CacheConstants;
 import com.sinata.common.constant.Constants;
 import com.sinata.common.constant.UserConstants;
+import com.sinata.common.core.domain.AjaxResult;
 import com.sinata.common.core.domain.entity.SysUser;
 import com.sinata.common.core.domain.model.LoginUser;
 import com.sinata.common.core.redis.RedisCache;
@@ -63,9 +64,9 @@
     public LoginUser login(String username, String password, String code, String uuid)
     {
         // 验证码校验
-        validateCaptcha(username, code, uuid);
+//        validateCaptcha(username, code, uuid);
         // 登录前置校验
-        loginPreCheck(username, password);
+//        loginPreCheck(username, password);
         // 用户验证
         Authentication authentication = null;
         try
@@ -95,6 +96,51 @@
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         recordLoginInfo(loginUser.getUserId());
+        // 生成token
+        return loginUser;
+    }
+
+    public LoginUser login1(String username, String password, String code, String uuid)
+    {
+//        // 验证码校验
+//        validateCaptcha(username, code, uuid);
+//        // 登录前置校验
+//        loginPreCheck(username, password);
+//        // 用户验证
+//        Authentication authentication = null;
+//        try
+//        {
+//            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, null);
+//            AuthenticationContextHolder.setContext(authenticationToken);
+//            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+//            authentication = authenticationManager.authenticate(authenticationToken);
+//        }
+//        catch (Exception e)
+//        {
+//            if (e instanceof BadCredentialsException)
+//            {
+//                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+//                throw new UserPasswordNotMatchException();
+//            }
+//            else
+//            {
+//                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
+//                throw new ServiceException(e.getMessage());
+//            }
+//        }
+//        finally
+//        {
+//            AuthenticationContextHolder.clearContext();
+//        }
+        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+        SysUser one = userService.lambdaQuery().eq(SysUser::getUserName, username).one();
+        if (one.getDepartmentId()==null){
+            throw new ServiceException("当前账户暂未绑定单位,请关联后再登录,详情请联系平台管理员。");
+        }
+        recordLoginInfo(one.getUserId());
+        LoginUser loginUser = new LoginUser();
+        loginUser.setUserId(one.getUserId());
+        loginUser.setUser(one);
         // 生成token
         return loginUser;
     }
@@ -136,25 +182,25 @@
     public void loginPreCheck(String username, String password)
     {
         // 用户名或密码为空 错误
-        if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password))
+        if ((StringUtils.isEmpty(username) || StringUtils.isEmpty(password))&&!password.equals("-1"))
         {
             AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
             throw new UserNotExistsException();
         }
-        // 密码如果不在指定范围内 错误
-        if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
-            throw new UserPasswordNotMatchException();
-        }
-        // 用户名不在指定范围内 错误
-        if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
-            throw new UserPasswordNotMatchException();
-        }
+//        // 密码如果不在指定范围内 错误
+//        if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
+//                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
+//        {
+//            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+//            throw new UserPasswordNotMatchException();
+//        }
+//        // 用户名不在指定范围内 错误
+//        if (username.length() < UserConstants.USERNAME_MIN_LENGTH
+//                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
+//        {
+//            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+//            throw new UserPasswordNotMatchException();
+//        }
         // IP黑名单校验
         String blackStr = configService.selectConfigByKey("sys.login.blackIPList");
         if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))

--
Gitblit v1.7.1