kongzy
2024-09-14 f0f00e9ba8a755e4317e029d73b69a92ad9f9df1
exam-framework/src/main/java/com/gkhy/exam/framework/web/service/SysLoginService.java
@@ -25,6 +25,7 @@
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
@Component
@@ -39,6 +40,8 @@
    private TokenService tokenService;
    @Autowired
    private ExStudentService studentService;
    @Autowired
    private HttpServletRequest request;
@@ -87,18 +90,18 @@
            authentication = authenticationManager.authenticate(authenticationToken);
            LoginUserDetails loginUserDetails= (LoginUserDetails) authentication.getPrincipal();
            passwordService.validate(loginUserDetails.getUser(),password);
            AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功"));
        //    AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功"));
            recordLoginInfo(loginUserDetails.getUser().getId(),LoginUserTagEnum.ADMIN_USER);
            return createLoginUser(loginUserDetails,LoginUserTagEnum.ADMIN_USER);
        }catch (Exception e){
            if (e instanceof BadCredentialsException)
            {
                AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配"));
             //   AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配"));
                throw new ApiException("用户密码不匹配");
            }
            else
            {
                AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage()));
              //  AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage()));
                throw new ApiException(e.getMessage());
            }
        }finally {
@@ -125,18 +128,18 @@
            authentication = authenticationManager.authenticate(authenticationToken);
            LoginUserDetails loginUserDetails= (LoginUserDetails) authentication.getPrincipal();
            passwordService.validate(loginUserDetails.getUser(),password);
            AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功"));
        //    AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功"));
            recordLoginInfo(loginUserDetails.getUser().getId(),LoginUserTagEnum.STUDENT_USER);
            return createLoginUser(loginUserDetails,LoginUserTagEnum.STUDENT_USER);
        }catch (Exception e){
            if (e instanceof BadCredentialsException)
            {
                AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配"));
               // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配"));
                throw new ApiException("用户密码不匹配");
            }
            else
            {
                AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage()));
               // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage()));
                throw new ApiException(e.getMessage());
            }
        }finally {
@@ -193,6 +196,11 @@
    }
    public void logout(){
        tokenService.delTokenCache(request);
    }
}