From 86df207c37502cce1b2043e1c7c0486459eef1d6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 13 三月 2025 19:58:45 +0800
Subject: [PATCH] 党员、诉求评论基础代码

---
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
index d52071f..20a5bd8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
@@ -36,6 +36,8 @@
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.service.user.UserService;
 
+import static java.util.Objects.nonNull;
+
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
  * @description: 登录认证
@@ -69,7 +71,7 @@
                 Integer time= (Integer) redisTemplate.opsForValue().get(LOGIN_FAIL+userName);
                 if(time>=5){
                     redisTemplate.opsForValue().set(LOGIN_FAIL+userName,5);
-                    throw new LockedException("登录错误超过限制,账号已被锁定");
+                    throw new LockedException("账号或密码错误,登录错误超过限制");
                 }
             }
             // 查询用户是否存在
@@ -93,7 +95,7 @@
             // 我们还要判断密码是否正确,这里我们的密码使用BCryptPasswordEncoder进行加密的
             if (!new BCryptPasswordEncoder().matches(password, loginUserInfoVO.getPassword())) {
                 lockLogin(flag,userName);
-                throw new BadCredentialsException("密码不正确");
+                throw new BadCredentialsException("账号或密码错误");
             }
             // 还可以加一些其他信息的判断,比如用户账号已停用等判断
             if (loginUserInfoVO.getStatus().intValue() == 2) {
@@ -102,9 +104,11 @@
             // 维护最后登录时间
             userService.putUserLastLoginTime(loginUserInfoVO.getUserId());
             //是否为专家登陆
-            R r1 = communityService.isExpert(loginUserInfoVO.getPhone());
-            if (r1.getCode()== Constants.SUCCESS){
-                loginUserInfoVO.setType(13);
+            if (nonNull(loginUserInfoVO.getPhone())){
+                R r1 = communityService.isExpert(loginUserInfoVO.getPhone());
+                if (r1.getCode()== Constants.SUCCESS){
+                    loginUserInfoVO.setType(13);
+                }
             }
             return new UsernamePasswordAuthenticationToken(loginUserInfoVO, password, grantedAuthorityList);
         }
@@ -112,7 +116,7 @@
             // 查询用户是否存在
             R<LoginUserInfoVO> r = userService.getUserInfo(userName);
             if (r.getCode() != 200) {
-                throw new UsernameNotFoundException("该账号不存在");
+                throw new UsernameNotFoundException("账号或密码错误");
             }
             LoginUserInfoVO loginUserInfoVO = r.getData();
             List<GrantedAuthority> grantedAuthorityList = new ArrayList<>();
@@ -123,11 +127,11 @@
                 });
             }
             if (ObjectUtils.isEmpty(loginUserInfoVO.getAccount())) {
-                throw new UsernameNotFoundException("该账号不存在");
+                throw new UsernameNotFoundException("账号或密码错误");
             }
             // 我们还要判断密码是否正确,这里我们的密码使用BCryptPasswordEncoder进行加密的
             if (!new BCryptPasswordEncoder().matches(password, loginUserInfoVO.getPassword())) {
-                throw new BadCredentialsException("密码不正确");
+                throw new BadCredentialsException("账号或密码错误");
             }
             // 还可以加一些其他信息的判断,比如用户账号已停用等判断
             if (loginUserInfoVO.getStatus().intValue() == 2) {
@@ -136,9 +140,11 @@
             // 维护最后登录时间
             userService.putUserLastLoginTime(loginUserInfoVO.getUserId());
             //是否为专家登陆
-            R r1 = communityService.isExpert(loginUserInfoVO.getPhone());
-            if (r1.getCode()== Constants.SUCCESS){
-                loginUserInfoVO.setType(13);
+            if (nonNull(loginUserInfoVO.getPhone())){
+                R r1 = communityService.isExpert(loginUserInfoVO.getPhone());
+                if (r1.getCode() == Constants.SUCCESS){
+                    loginUserInfoVO.setType(13);
+                }
             }
             return new UsernamePasswordAuthenticationToken(loginUserInfoVO, password, grantedAuthorityList);
 

--
Gitblit v1.7.1