|
@@ -16,6 +16,7 @@ import cn.com.ty.lift.system.utils.PasswordUtils;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.session.data.redis.RedisOperationsSessionRepository;
|
|
@@ -205,7 +206,7 @@ public class LoginService implements ILoginService {
|
|
|
.eq("wechat_open_id", openId)
|
|
|
);
|
|
|
if (userAccount == null) {
|
|
|
- return RestResponse.fail(ApiConstants.RESULT_NO_DATA, "微信号尚未绑定用户信息");
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "未绑定微信号,请登录绑定微信号");
|
|
|
}
|
|
|
//用户存在,关联登录成功
|
|
|
//登录成功初始化登录信息
|
|
@@ -260,29 +261,29 @@ public class LoginService implements ILoginService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public RestResponse appBindMobile(HttpServletRequest request, UserRequest userRequest) {
|
|
|
- //校验手机号和短信验证码
|
|
|
- if (StringUtils.isBlank(userRequest.getMobile())) {
|
|
|
- return RestResponse.fail(ApiConstants.RESULT_ERROR, "手机号为空无法绑定");
|
|
|
+ public RestResponse appBindMobile(UserRequest userRequest) {
|
|
|
+ //通过授权码获取用户openId
|
|
|
+ String openId = userRequest.getWeChatOpenId();
|
|
|
+ UserAccount oldBindUser = userAccountService.getOne(new QueryWrapper<UserAccount>().eq(
|
|
|
+ "wechat_open_id", openId
|
|
|
+ ));
|
|
|
+ if (oldBindUser != null) {
|
|
|
+ //解除上一个手机的绑定信息
|
|
|
+ if (!userAccountService.update(Wrappers.<UserAccount>update().set("wechat_open_id", null))) {
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "解除原来绑定失败");
|
|
|
+ }
|
|
|
}
|
|
|
- UserAccount userAccount = userAccountService.getByMobile(userRequest.getMobile());
|
|
|
+ //获取当前用户id
|
|
|
+ UserAccount userAccount = userAccountService.getByUserId(userRequest.getUserId());
|
|
|
if (userAccount == null) {
|
|
|
- return RestResponse.fail(ApiConstants.RESULT_ERROR, "当前手机号尚未注册,请先注册再绑定");
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "用户不存在无法绑定");
|
|
|
}
|
|
|
- //通过授权码获取用户openId
|
|
|
- String openId = userRequest.getWeChatOpenId();
|
|
|
userAccount.setWechatOpenId(openId);
|
|
|
- if (!userAccountService.save(userAccount)) {
|
|
|
- return RestResponse.fail(ApiConstants.RESULT_ERROR, "绑定手机号失败");
|
|
|
- }
|
|
|
- userRequest.setUserId(userAccount.getUserId());
|
|
|
- UserResponse userResponse = initLoginInfo(request, userRequest);
|
|
|
- userLoginService.saveLoginInfo(request, userAccount.getUserId());
|
|
|
- //用户登录成功,更新用户设备信息
|
|
|
- if (appLoginSaveDeviceInfo(userRequest, userRequest.getMobileType(), userAccount)) {
|
|
|
- return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新设备类型失败");
|
|
|
+ if (!userAccountService.updateById(userAccount)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return RestResponse.fail(ApiConstants.RESULT_ERROR, "绑定微信失败");
|
|
|
}
|
|
|
- return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "绑定手机号成功");
|
|
|
+ return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "绑定微信成功");
|
|
|
}
|
|
|
|
|
|
private RestResponse checkMobileAndSmsCode(UserRequest userRequest) {
|