|
|
@ -1372,14 +1372,15 @@ public class UserService implements IUserService { |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public String getTokenByUserId(Long userId) { |
|
|
|
public UserVo.TokenBean getTokenByUserId(Long userId) { |
|
|
|
UserVo.TokenBean tokenBean = new UserVo.TokenBean(); |
|
|
|
//在redis中获取token
|
|
|
|
if (ObjectUtil.isNull(userId)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
Object object = redisUtil.get(RedisKeyManager.getTokenCachedKey(userId)); |
|
|
|
if (ObjectUtil.isNull(object)) { |
|
|
|
Object tokenR = redisUtil.get(RedisKeyManager.getTokenCachedKey(userId)); |
|
|
|
//获取认证信息
|
|
|
|
UserVo.UserSign userSignVo = null; |
|
|
|
|
|
|
|
SysAuthExample authExample = new SysAuthExample(); |
|
|
|
authExample.createCriteria().andUserIdEqualTo(userId); |
|
|
|
List<SysAuth> authList = authDao.selectByExample(authExample); |
|
|
@ -1388,6 +1389,29 @@ public class UserService implements IUserService { |
|
|
|
userSignVo.setUserId(authList.get(0).getUserId()); |
|
|
|
userSignVo.setAuthId(authList.get(0).getId()); |
|
|
|
} |
|
|
|
if(ObjectUtil.isNotNull(userSignVo)){ |
|
|
|
//获取手机号
|
|
|
|
String phone = getPhone(userSignVo.getUserId()); |
|
|
|
//获取账号
|
|
|
|
String account = selectAccountByPhone(phone); |
|
|
|
//获取用户的基本信息、
|
|
|
|
UserVo.WxInfo wxInfo = null; |
|
|
|
SysUser user = userDao.selectByPrimaryKey(userSignVo.getUserId()); |
|
|
|
if (ObjectUtil.isNotNull(user)) { |
|
|
|
wxInfo = new UserVo.WxInfo(); |
|
|
|
BeanUtil.copyProperties(user, wxInfo); |
|
|
|
wxInfo.setSex(user.getGender()); |
|
|
|
wxInfo.setHeadImgUrl(user.getAvatarUrl()); |
|
|
|
} |
|
|
|
tokenBean.setId(userSignVo.getUserId()); |
|
|
|
tokenBean.setPhone(phone); |
|
|
|
tokenBean.setAccount(account); |
|
|
|
tokenBean.setWxInfo(wxInfo); |
|
|
|
}else { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//如果token为空重新生成一份
|
|
|
|
if (ObjectUtil.isNull(tokenR)) { |
|
|
|
//3.生成token(access_token,refresh_token)
|
|
|
|
if (ObjectUtil.isNotNull(userSignVo)) { |
|
|
|
Map<String, Object> theMap = CollectionUtil.newHashMap(); |
|
|
@ -1397,14 +1421,13 @@ public class UserService implements IUserService { |
|
|
|
String token = |
|
|
|
JwtUtil.createJWT(userId + "", |
|
|
|
theMap, tokenExpired, |
|
|
|
WebConstant.JWT_ACCESS_TOKEN_SECERT); |
|
|
|
WebConstant.JWT_ACCESS_TOKEN_SECERT).toString(); |
|
|
|
redisUtil.set(RedisKeyManager.getTokenCachedKey((Long) userId), |
|
|
|
token, tokenExpired / 1000); |
|
|
|
object = token; |
|
|
|
} else { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
tokenR = token; |
|
|
|
} |
|
|
|
} |
|
|
|
return object.toString(); |
|
|
|
tokenBean.setToken(tokenR.toString()); |
|
|
|
return tokenBean; |
|
|
|
} |
|
|
|
} |
|
|
|