Commit 3f77b1e2 authored by shiyu's avatar shiyu

废弃原来的登录接口,修改微信登录获取手机号接口返回数据类型

parent bea0a82a
...@@ -125,6 +125,51 @@ public class UserServiceImpl implements UserService { ...@@ -125,6 +125,51 @@ public class UserServiceImpl implements UserService {
UserWriteService userWriteService; UserWriteService userWriteService;
@Override
public Result finishLogin(UserRequestDto dto) {
Map<String, Object> result = new HashMap<>();
// 先登出其他
userTokenManager.removeToken(dto.getUserId());
String token = dto.getToken();
// 获取token
UserToken userToken = userTokenManager.generateToken(dto.getUserId(), token);
userToken.setSessionKey(UUID.randomUUID().toString().replace("-", ""));
result.put("token", dto.getToken());
result.put("tokenExpire", userToken.getExpireTime().toString());
result.put("isInvited", true);
User user = userDao.queryById(dto.getUserId());
logger.info("登录用户的信息:{}", JsonUtils.from(user));
String phone = user.getMobile();
//如果用户手机号为空,则调用微信接口查询出手机号进行保存
if (org.springframework.util.StringUtils.isEmpty(user.getMobile())) {
logger.info("用户id:{}, 手机号为空,需要进行手机号获取, code:{}, loginCode:{}", dto.getUserId(), dto.getCode(), dto.getLoginCode());
if (dto.getLoginType().equals(LoginTypeEnum.WECHAT.getCode())) {
Result<String> resultForPhone = wxLoginManager.getPhone(dto);
if (!resultForPhone.getSuccess()) {
logger.info(">>>>>>>>>>>>> FAILED 获取手机号失败 : {} <<<<<<<<<<<<<", resultForPhone.getErrmsg());
} else {
phone = resultForPhone.getData();
//保存用户手机
com.wwdz.user.api.model.user.User wuser = new com.wwdz.user.api.model.user.User();
wuser.setUserId(dto.getUserId());
wuser.setPhone(phone);
CloudServerResponse<Integer> cloudServerResponse = userWriteService.updateByUserId(wuser);
if (cloudServerResponse.getResult() != null && cloudServerResponse.getResult() > 0) {
logger.info(">>>>>>>> 用户id:{} 保存用户手机号成功 <<<<<<<<", dto.getUserId());
} else {
logger.error(">>>>>>>> 用户id:{} 保存用户手机号失败 <<<<<<<<", dto.getUserId());
}
}
}
}
result.put("phone", phone);
// 缓存用户信息
String userKey = MessageFormat.format(CacheCodeConstants.USER_INFO_KEY, user.getId());
redisUtil.set(userKey, user, 2 * 60 * 60);
logger.info("【请求结束】登录信息初始化成功, 响应结果:{}", JSONObject.toJSONString(result));
return Result.success(result);
}
@Override @Override
...@@ -201,52 +246,9 @@ public class UserServiceImpl implements UserService { ...@@ -201,52 +246,9 @@ public class UserServiceImpl implements UserService {
} }
@Override
public Result finishLogin(UserRequestDto dto) {
Map<String, Object> result = new HashMap<>();
// 先登出其他
userTokenManager.removeToken(dto.getUserId());
String token = dto.getToken();
// 获取token
UserToken userToken = userTokenManager.generateToken(dto.getUserId(), token);
userToken.setSessionKey(UUID.randomUUID().toString().replace("-", ""));
result.put("token", dto.getToken());
result.put("tokenExpire", userToken.getExpireTime().toString());
result.put("isInvited", true);
User user = userDao.queryById(dto.getUserId());
logger.info("登录用户的信息:{}", JsonUtils.from(user));
String phone = user.getMobile();
//如果用户手机号为空,则调用微信接口查询出手机号进行保存
if (org.springframework.util.StringUtils.isEmpty(user.getMobile())) {
logger.info("用户id:{}, 手机号为空,需要进行手机号获取, code:{}, loginCode:{}", dto.getUserId(), dto.getCode(), dto.getLoginCode());
if (dto.getLoginType().equals(LoginTypeEnum.WECHAT.getCode())) {
phone = wxLoginManager.getPhone(dto);
if (StringUtils.equals("phoneFalse", phone)) {
logger.info(">>>>>>>>>>>>> FAILED 获取手机号失败 <<<<<<<<<<<<<");
phone = null;
} else {
//保存用户手机
com.wwdz.user.api.model.user.User wuser = new com.wwdz.user.api.model.user.User();
wuser.setUserId(dto.getUserId());
wuser.setPhone(phone);
CloudServerResponse<Integer> cloudServerResponse = userWriteService.updateByUserId(wuser);
if (cloudServerResponse.getResult() != null && cloudServerResponse.getResult() > 0) {
logger.info(">>>>>>>> 用户id:{} 保存用户手机号成功 <<<<<<<<", dto.getUserId());
} else {
logger.error(">>>>>>>> 用户id:{} 保存用户手机号失败 <<<<<<<<", dto.getUserId());
}
}
}
}
result.put("phone", phone);
// 缓存用户信息
String userKey = MessageFormat.format(CacheCodeConstants.USER_INFO_KEY, user.getId());
redisUtil.set(userKey, user, 2 * 60 * 60);
logger.info("【请求结束】登录信息初始化成功, 响应结果:{}", JSONObject.toJSONString(result));
return Result.success(result);
}
@Transactional
/* @Transactional
@Override @Override
public Result login(UserRequestDto dto, HttpServletRequest request) { public Result login(UserRequestDto dto, HttpServletRequest request) {
try { try {
...@@ -314,7 +316,7 @@ public class UserServiceImpl implements UserService { ...@@ -314,7 +316,7 @@ public class UserServiceImpl implements UserService {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return Result.failed("快捷登录失败"); return Result.failed("快捷登录失败");
} }
} }*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
......
...@@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.api.WxMaService; ...@@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.OkHttpUtil; import com.wwdz.ch.core.util.OkHttpUtil;
import com.wwdz.ch.core.util.RedisUtils; import com.wwdz.ch.core.util.RedisUtils;
import com.wwdz.ch.db.dto.request.UserRequestDto; import com.wwdz.ch.db.dto.request.UserRequestDto;
...@@ -81,13 +82,13 @@ public class WxLoginManager { ...@@ -81,13 +82,13 @@ public class WxLoginManager {
* @param dto * @param dto
* @return * @return
*/ */
public String getPhone(UserRequestDto dto) { public Result<String> getPhone(UserRequestDto dto) {
logger.info("----------------- 开始获取手机号 ----------------"); logger.info("----------------- 开始获取手机号 ----------------");
String phone = ""; String phone = "";
if (dto.getType() == 1) { if (dto.getType() == 1) {
String accessToken = getAccessToken(); String accessToken = getAccessToken();
if (com.xxdxxs.utils.StringUtils.isEmpty(accessToken)) { if (com.xxdxxs.utils.StringUtils.isEmpty(accessToken)) {
return "false"; return Result.failed();
} }
logger.info(">>>>> 请求获取手机号 的token : {}", accessToken); logger.info(">>>>> 请求获取手机号 的token : {}", accessToken);
String url = String.format(GET_PHONE_URL, accessToken); String url = String.format(GET_PHONE_URL, accessToken);
...@@ -100,7 +101,7 @@ public class WxLoginManager { ...@@ -100,7 +101,7 @@ public class WxLoginManager {
logger.info("获取手机号的结果:{}", phoneResult); logger.info("获取手机号的结果:{}", phoneResult);
if (!phoneResult.contains("phoneNumber")) { if (!phoneResult.contains("phoneNumber")) {
logger.error("获取手机号出错,返回结果是:" + phoneResult); logger.error("获取手机号出错,返回结果是:" + phoneResult);
return "phoneFalse"; return Result.failed("phoneFalse");
} }
phone = JsonUtils.getValueByPath(phoneResult, "phone_info/phoneNumber"); phone = JsonUtils.getValueByPath(phoneResult, "phone_info/phoneNumber");
} else { } else {
...@@ -112,11 +113,11 @@ public class WxLoginManager { ...@@ -112,11 +113,11 @@ public class WxLoginManager {
logger.info("获取sessionKey结果:" + JSON.toJSONString(result)); logger.info("获取sessionKey结果:" + JSON.toJSONString(result));
} catch (Exception e) { } catch (Exception e) {
logger.error("获取用户登录信息失败", e); logger.error("获取用户登录信息失败", e);
return "sessionFalse"; return Result.failed("sessionFalse");
} }
if (StringUtils.isBlank(sessionKey)) { if (StringUtils.isBlank(sessionKey)) {
logger.info("微信登录,调用官方接口失败:{}", dto.getLoginCode()); logger.info("微信登录,调用官方接口失败:{}", dto.getLoginCode());
return "sessionFalse"; return Result.failed("sessionFalse");
} }
logger.info("解析手机号加密信息-----------------------"); logger.info("解析手机号加密信息-----------------------");
...@@ -126,10 +127,10 @@ public class WxLoginManager { ...@@ -126,10 +127,10 @@ public class WxLoginManager {
phone = wxMaPhoneNumberInfo.getPhoneNumber(); phone = wxMaPhoneNumberInfo.getPhoneNumber();
} catch (Exception e) { } catch (Exception e) {
logger.error("解析手机号加密信息失败", e); logger.error("解析手机号加密信息失败", e);
return "decryptFalse"; return Result.failed("decryptFalse");
} }
} }
return phone; return Result.success(phone);
} }
......
...@@ -40,7 +40,7 @@ public interface UserService { ...@@ -40,7 +40,7 @@ public interface UserService {
* @param request * @param request
* @return * @return
*/ */
Result login(UserRequestDto dto, HttpServletRequest request); // Result login(UserRequestDto dto, HttpServletRequest request);
/** /**
* 修改个性签名 * 修改个性签名
......
...@@ -51,7 +51,7 @@ public class WxUserController { ...@@ -51,7 +51,7 @@ public class WxUserController {
@ApiOperation(value = "快捷登录") /* @ApiOperation(value = "快捷登录")
@PostMapping("/login") @PostMapping("/login")
public Result login(@RequestBody UserRequestDto dto, HttpServletRequest request) { public Result login(@RequestBody UserRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】快捷登录,请求参数:{}", JSON.toJSONString(dto)); logger.info("【请求开始】快捷登录,请求参数:{}", JSON.toJSONString(dto));
...@@ -82,7 +82,7 @@ public class WxUserController { ...@@ -82,7 +82,7 @@ public class WxUserController {
} }
} }
return userService.login(dto, request); return userService.login(dto, request);
} }*/
@ApiOperation(value = "登录手机验证码") @ApiOperation(value = "登录手机验证码")
@PostMapping("/loginRegCaptcha") @PostMapping("/loginRegCaptcha")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment