|
|
@@ -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;
|
|
|
}
|
|
|
|
|
|
/*
|