Browse Source

0310.2

master
zhangye 5 years ago
parent
commit
64cbc3b29b
  1. 2
      tall/src/main/java/com/ccsens/tall/service/IUserService.java
  2. 41
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  3. 8
      tall/src/main/java/com/ccsens/tall/web/UserController.java

2
tall/src/main/java/com/ccsens/tall/service/IUserService.java

@ -73,5 +73,5 @@ public interface IUserService {
UserVo.UserSign changePhoneNotPassword(Long userId,UserDto.WxBindingPhone phoneInfo) throws Exception;
String getTokenByUserId(Long userId);
UserVo.TokenBean getTokenByUserId(Long userId);
}

41
tall/src/main/java/com/ccsens/tall/service/UserService.java

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

8
tall/src/main/java/com/ccsens/tall/web/UserController.java

@ -305,14 +305,14 @@ public class UserController {
@ApiOperation(value = "通过userId获取token",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name="projectId",value = "projectId",required = true,paramType = "query")
@ApiImplicitParam(name="userId",value = "用户id",required = true,paramType = "query")
})
@RequestMapping(value = "/userId",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> getTokenByUserId(HttpServletRequest request,
public JsonResponse<UserVo.TokenBean> getTokenByUserId(HttpServletRequest request,
@RequestParam(required = true) Long userId) throws Exception {
String token = userService.getTokenByUserId(userId);
return JsonResponse.newInstance().ok(token);
UserVo.TokenBean tokenBean = userService.getTokenByUserId(userId);
return JsonResponse.newInstance().ok(tokenBean);
}

Loading…
Cancel
Save