Browse Source

登录问题修改

liweifan 2 years ago
parent
commit
86bef06f66

+ 39 - 25
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/PhoneAuthenticationProvider.java

@@ -74,6 +74,7 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
             if (isRegister == false || StringUtils.equals("SYSTEM", clientId)) {
                 throw new LockedException("用户不存在");
             }
+
             userInfo = sysUserService.registerUser(loginEntity.getPhone(), clientId, loginUserType);
 
             if (StringUtils.isNotBlank(deviceNum)) {
@@ -91,38 +92,51 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
             if (StringUtils.isNotBlank(deviceNum)) {
                 sysUserDeviceService.bindDevice(clientId, user.getId(), deviceNum);
             }
-            if (!userInfo.getSysUser().getUserType().contains(clientId)) {
-                if(StringUtils.equals("SYSTEM", clientId)){
+            //登录
+            if (userInfo.getSysUser().getUserType().contains(clientId)){
+                return login(username);
+            }
+            //官网登录
+            if(StringUtils.isNotEmpty(loginUserType) && userInfo.getSysUser().getUserType().contains(loginUserType)){
+                return login(username);
+            }
+
+            /**********************************注册*********************************************/
+            //不能注册的
+            if(isRegister == false || StringUtils.equals("SYSTEM", clientId)){
+                throw new LockedException("用户不存在");
+            }
+
+            user.setUpdateTime(new Date());
+            if(StringUtils.isNotEmpty(loginUserType)){
+                if (StringUtils.equalsIgnoreCase(loginUserType, "TEACHER")) {
+                    user.setUserType(user.getUserType() + "," + loginUserType);
+                    sysUserService.saveTeacher(user);
+                } else if (StringUtils.equalsIgnoreCase(loginUserType, "STUDENT")) {
+                    user.setUserType(user.getUserType() + "," + loginUserType);
+                    sysUserService.saveStudent(user);
+                }else {
                     throw new LockedException("用户不存在");
                 }
-                if(isRegister == false
-                        && (StringUtils.isEmpty(loginUserType) || !(userInfo.getSysUser().getUserType().contains(loginUserType)))){
+            }else if(StringUtils.isNotEmpty(clientId)){
+                if (StringUtils.equalsIgnoreCase(clientId, "TEACHER")) {
+                    user.setUserType(user.getUserType() + "," + clientId);
+                    sysUserService.saveTeacher(user);
+                } else if (StringUtils.equalsIgnoreCase(clientId, "STUDENT")) {
+                    user.setUserType(user.getUserType() + "," + clientId);
+                    sysUserService.saveStudent(user);
+                } else {
                     throw new LockedException("用户不存在");
                 }
-
-                if(isRegister == true && !(userInfo.getSysUser().getUserType().contains(loginUserType))){
-                    user.setUpdateTime(new Date());
-                    if (StringUtils.equalsIgnoreCase(loginUserType, "TEACHER")) {
-                        user.setUserType(user.getUserType() + "," + loginUserType);
-                        sysUserService.saveTeacher(user);
-                    } else if (StringUtils.equalsIgnoreCase(loginUserType, "STUDENT")) {
-                        user.setUserType(user.getUserType() + "," + loginUserType);
-                        sysUserService.saveStudent(user);
-                    } else if (StringUtils.equalsIgnoreCase(clientId, "TEACHER")) {
-                        user.setUserType(user.getUserType() + "," + clientId);
-                        sysUserService.saveTeacher(user);
-                    } else if (StringUtils.equalsIgnoreCase(clientId, "STUDENT")) {
-                        user.setUserType(user.getUserType() + "," + clientId);
-                        sysUserService.saveStudent(user);
-                    } else {
-                        throw new LockedException("用户不存在");
-                    }
-                    sysUserService.update(user);
-                }
-
+            }else{
+                throw new LockedException("用户不存在");
             }
+            sysUserService.update(user);
         }
+        return login(username);
+    }
 
+    private UserDetails login(String username){
         UserDetails loadedUser;
         try {
             loadedUser = userDetailsService.loadUserByUsername(username);