Browse Source

用户登录修改

chenw 7 years ago
parent
commit
005f52b508

+ 37 - 28
bi-server/src/main/java/com/usoftchina/bi/server/service/user/UserService.java

@@ -2,6 +2,7 @@ package com.usoftchina.bi.server.service.user;
 
 import com.usoftchina.bi.core.base.RepCode;
 import com.usoftchina.bi.core.base.RepEntity;
+import com.usoftchina.bi.core.exception.MyException;
 import com.usoftchina.bi.core.utils.EncryUtil;
 import com.usoftchina.bi.server.aspect.JwtTokenAspect;
 import com.usoftchina.bi.server.dao.user.UserMapper;
@@ -32,51 +33,59 @@ public class UserService {
     public RepEntity<TokenData> login(LoginInfo loginInfo){
         String userName = loginInfo.getUserName();
         String pws = loginInfo.getPassWord();
-
         if ("".equals(userName) || "".equals(pws)){
             return new RepEntity(RepCode.NoUser);
         }
+        //1.校验用户名密码在BI中是否存在
+        User user = userMapper.getLogin(userName);
+        String password = "";
+        if (null == user) {
+            //2.校验用户名密码在UAS中是否存在
+            user = findUserFromUAS(userName, pws);
+            //插入
+            userMapper.addUser(user);
+        }else {
+            password = user.getPassWord();
+            if (!pws.equals(password)){
+                //2.校验用户名密码在UAS中是否存在
+                user = findUserFromUAS(userName, pws);
+                //更新密码
+                int userId = userMapper.getUserId(userName);
+                user.setId(userId);
+                userMapper.updateUser(user);
+            }
+        }
+        user.setRole(userMapper.getRole(user.getId()));
+        TokenData tokenData = jwtTokenUtil.createToke(user);
+        tokenData.setUser(user);
+        //userMapper.updateToken(tokenData.getToken(),user.getId());
+        return new RepEntity(RepCode.success, tokenData);
+    }
 
+    /**
+     * 在UAS中查找用户
+     * @param userName
+     * @param pws
+     * @return
+     */
+    private User findUserFromUAS(String userName, String pws){
         String column = "em_mobile";
-        //查询uas系统中的用户信息
         User user = userMapper.getUserMess(userName, column);
-        //判断登录模式
-        if(user == null){
+        if (null == user) {
             column = "em_code";
             user = userMapper.getUserMess(userName, column);
             if (user == null){
-                return new RepEntity(RepCode.NoUser);
+                throw new MyException(RepCode.NoUser.getCode(), RepCode.NoUser.getMsg());
             }
         }
-
         String password = user.getPassWord();
-
         String pw = EncryUtil.decryptPassword(password);
-
         if (!pws.equals(pw)){
-            return new RepEntity(RepCode.NoUser);
+            throw new MyException(RepCode.NoUser.getCode(), RepCode.NoUser.getMsg());
         }
-
         user.setPassWord(pw);
         user.setUserName(userName);
-        //判断uas系统的用户是否再bi中存在
-        String name = userMapper.getUserName(userName);
-        if (name == null){
-            //不存在则插入
-            userMapper.addUser(user);
-        }else {
-            //存在则更新
-            userMapper.updateUser(user);
-            int userId = userMapper.getUserId(userName);
-            user.setId(userId);
-        }
-
-        user.setRole(userMapper.getRole(user.getId()));
-
-        TokenData tokenData = jwtTokenUtil.createToke(user);
-        tokenData.setUser(user);
-        userMapper.updateToken(tokenData.getToken(),user.getId());
-        return new RepEntity(RepCode.success, tokenData);
+        return user;
     }
 
     /*