Commit 3f77b1e2 authored by shiyu's avatar shiyu

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

parent bea0a82a
......@@ -125,6 +125,51 @@ public class UserServiceImpl implements UserService {
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
......@@ -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
public Result login(UserRequestDto dto, HttpServletRequest request) {
try {
......@@ -314,7 +316,7 @@ public class UserServiceImpl implements UserService {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return Result.failed("快捷登录失败");
}
}
}*/
@Transactional(rollbackFor = Exception.class)
@Override
......
......@@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
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.RedisUtils;
import com.wwdz.ch.db.dto.request.UserRequestDto;
......@@ -81,13 +82,13 @@ public class WxLoginManager {
* @param dto
* @return
*/
public String getPhone(UserRequestDto dto) {
public Result<String> getPhone(UserRequestDto dto) {
logger.info("----------------- 开始获取手机号 ----------------");
String phone = "";
if (dto.getType() == 1) {
String accessToken = getAccessToken();
if (com.xxdxxs.utils.StringUtils.isEmpty(accessToken)) {
return "false";
return Result.failed();
}
logger.info(">>>>> 请求获取手机号 的token : {}", accessToken);
String url = String.format(GET_PHONE_URL, accessToken);
......@@ -100,7 +101,7 @@ public class WxLoginManager {
logger.info("获取手机号的结果:{}", phoneResult);
if (!phoneResult.contains("phoneNumber")) {
logger.error("获取手机号出错,返回结果是:" + phoneResult);
return "phoneFalse";
return Result.failed("phoneFalse");
}
phone = JsonUtils.getValueByPath(phoneResult, "phone_info/phoneNumber");
} else {
......@@ -112,11 +113,11 @@ public class WxLoginManager {
logger.info("获取sessionKey结果:" + JSON.toJSONString(result));
} catch (Exception e) {
logger.error("获取用户登录信息失败", e);
return "sessionFalse";
return Result.failed("sessionFalse");
}
if (StringUtils.isBlank(sessionKey)) {
logger.info("微信登录,调用官方接口失败:{}", dto.getLoginCode());
return "sessionFalse";
return Result.failed("sessionFalse");
}
logger.info("解析手机号加密信息-----------------------");
......@@ -126,10 +127,10 @@ public class WxLoginManager {
phone = wxMaPhoneNumberInfo.getPhoneNumber();
} catch (Exception e) {
logger.error("解析手机号加密信息失败", e);
return "decryptFalse";
return Result.failed("decryptFalse");
}
}
return phone;
return Result.success(phone);
}
......
......@@ -40,7 +40,7 @@ public interface UserService {
* @param request
* @return
*/
Result login(UserRequestDto dto, HttpServletRequest request);
// Result login(UserRequestDto dto, HttpServletRequest request);
/**
* 修改个性签名
......
......@@ -51,7 +51,7 @@ public class WxUserController {
@ApiOperation(value = "快捷登录")
/* @ApiOperation(value = "快捷登录")
@PostMapping("/login")
public Result login(@RequestBody UserRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】快捷登录,请求参数:{}", JSON.toJSONString(dto));
......@@ -82,7 +82,7 @@ public class WxUserController {
}
}
return userService.login(dto, request);
}
}*/
@ApiOperation(value = "登录手机验证码")
@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