zhizhi wu 5 years ago
parent
commit
35bfecc2ab
  1. 2
      tall/src/main/java/com/ccsens/tall/service/IUserService.java
  2. 57
      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; UserVo.UserSign changePhoneNotPassword(Long userId,UserDto.WxBindingPhone phoneInfo) throws Exception;
String getTokenByUserId(Long userId); UserVo.TokenBean getTokenByUserId(Long userId);
} }

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

@ -1368,22 +1368,46 @@ public class UserService implements IUserService {
* @return * @return
*/ */
@Override @Override
public String getTokenByUserId(Long userId) { public UserVo.TokenBean getTokenByUserId(Long userId) {
UserVo.TokenBean tokenBean = new UserVo.TokenBean();
//在redis中获取token
if (ObjectUtil.isNull(userId)) { if (ObjectUtil.isNull(userId)) {
throw new BaseException(CodeEnum.PARAM_ERROR); throw new BaseException(CodeEnum.PARAM_ERROR);
} }
Object object = redisUtil.get(RedisKeyManager.getTokenCachedKey(userId)); Object tokenR = redisUtil.get(RedisKeyManager.getTokenCachedKey(userId));
if (ObjectUtil.isNull(object)) { //获取认证信息
UserVo.UserSign userSignVo = null; UserVo.UserSign userSignVo = null;
SysAuthExample authExample = new SysAuthExample();
SysAuthExample authExample = new SysAuthExample(); authExample.createCriteria().andUserIdEqualTo(userId);
authExample.createCriteria().andUserIdEqualTo(userId); List<SysAuth> authList = authDao.selectByExample(authExample);
List<SysAuth> authList = authDao.selectByExample(authExample); if (CollectionUtil.isNotEmpty(authList)) {
if (CollectionUtil.isNotEmpty(authList)) { userSignVo = new UserVo.UserSign();
userSignVo = new UserVo.UserSign(); userSignVo.setUserId(authList.get(0).getUserId());
userSignVo.setUserId(authList.get(0).getUserId()); userSignVo.setAuthId(authList.get(0).getId());
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) //3.生成token(access_token,refresh_token)
if (ObjectUtil.isNotNull(userSignVo)) { if (ObjectUtil.isNotNull(userSignVo)) {
Map<String, Object> theMap = CollectionUtil.newHashMap(); Map<String, Object> theMap = CollectionUtil.newHashMap();
@ -1393,14 +1417,13 @@ public class UserService implements IUserService {
String token = String token =
JwtUtil.createJWT(userId + "", JwtUtil.createJWT(userId + "",
theMap, tokenExpired, theMap, tokenExpired,
WebConstant.JWT_ACCESS_TOKEN_SECERT); WebConstant.JWT_ACCESS_TOKEN_SECERT).toString();
redisUtil.set(RedisKeyManager.getTokenCachedKey((Long) userId), redisUtil.set(RedisKeyManager.getTokenCachedKey((Long) userId),
token, tokenExpired / 1000); token, tokenExpired / 1000);
object = token; tokenR = token;
} else {
throw new BaseException(CodeEnum.PARAM_ERROR);
} }
} }
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 = "") @ApiOperation(value = "通过userId获取token",notes = "")
@ApiImplicitParams({ @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"}) @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 { @RequestParam(required = true) Long userId) throws Exception {
String token = userService.getTokenByUserId(userId); UserVo.TokenBean tokenBean = userService.getTokenByUserId(userId);
return JsonResponse.newInstance().ok(token); return JsonResponse.newInstance().ok(tokenBean);
} }

Loading…
Cancel
Save