|
|
@@ -181,6 +181,7 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
queryWrapper1.eq("is_verify", 0);
|
|
|
queryWrapper1.eq("phone_number", phone);
|
|
|
queryWrapper1.eq("code", messageCode);
|
|
|
+ queryWrapper1.ne("method", 1);
|
|
|
queryWrapper1.ge("expiration_time", new Date());
|
|
|
List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper1);
|
|
|
if (listc.isEmpty()) {
|
|
|
@@ -568,6 +569,7 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
queryWrapper2.eq("deleted", 0);
|
|
|
queryWrapper2.eq("is_verify", 0);
|
|
|
queryWrapper2.eq("phone_number", phone);
|
|
|
+ queryWrapper2.ne("method", 1);
|
|
|
queryWrapper2.ge("expiration_time", new Date());
|
|
|
List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper2);
|
|
|
if (!listc.isEmpty()) {
|
|
|
@@ -595,21 +597,114 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
@Override
|
|
|
@PassToken
|
|
|
@DESRespondSecret(validated = true)
|
|
|
+ public CommonResult sendChangeMessage(String userhead, String phone) {
|
|
|
+ Integer userID = Integer.valueOf(AesUtils.decrypt(userhead));
|
|
|
+ SmartUser oldData = smartUserService.getSmartById(userID);
|
|
|
+ if (oldData == null) {
|
|
|
+ return CommonResult.fail("该用户已失效");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (oldData.getPhone() != null && oldData.getPhone() != "") {
|
|
|
+ if (oldData.getPhone().equals(phone)) {
|
|
|
+ return CommonResult.fail("未更改手机号,不需要获取短信验证码");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<SmartUser> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("deleted", 0);
|
|
|
+ queryWrapper1.eq("phone", phone);
|
|
|
+ queryWrapper1.eq("is_cancel", 0);
|
|
|
+ List<SmartUser> otherlist = smartUserService.list(queryWrapper1);
|
|
|
+ if (otherlist != null && otherlist.size() > 0) {
|
|
|
+ return CommonResult.fail("该手机已被其他用户绑定");
|
|
|
+ }
|
|
|
+ QueryWrapper<SmsCode> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("deleted", 0);
|
|
|
+ queryWrapper2.eq("is_verify", 0);
|
|
|
+ queryWrapper2.eq("phone_number", phone);
|
|
|
+ queryWrapper2.eq("method", 1);
|
|
|
+ queryWrapper2.ge("expiration_time", new Date());
|
|
|
+ List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper2);
|
|
|
+ if (!listc.isEmpty()) {
|
|
|
+ return CommonResult.fail("验证码生效中");
|
|
|
+ }
|
|
|
+ String code = GetVertifyCode.getRandomNumCode(6);
|
|
|
+ SmsCode smsCode = new SmsCode();
|
|
|
+ smsCode.setId(UUIDUtil.generateID());
|
|
|
+ smsCode.setPhoneNumber(phone);
|
|
|
+ smsCode.setCode(code);
|
|
|
+ long time = new Date().getTime() + 300000L;
|
|
|
+ smsCode.setExpirationTime(new Date(time));
|
|
|
+ smsCode.setIsVerify("0");
|
|
|
+ smsCode.setMethod(1);
|
|
|
+ smsCode.setDeleted(0);
|
|
|
+ int m = smsCodeService.insertSmsCode(smsCode);
|
|
|
+ if (m > 0) {
|
|
|
+ String message = SendSms.sendSms(phone, code);
|
|
|
+ if (message.contains("success")) {
|
|
|
+ return CommonResult.ok("发送成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return CommonResult.fail("操作失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @PassToken
|
|
|
+ @DESRespondSecret(validated = true)
|
|
|
+ public CommonResult vertifyChangePhone(String userhead, String phone, String code) {
|
|
|
+ Integer userID = Integer.valueOf(AesUtils.decrypt(userhead));
|
|
|
+ SmartUser oldData = smartUserService.getSmartById(userID);
|
|
|
+ if (oldData == null) {
|
|
|
+ return CommonResult.fail("该用户已失效");
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<SmsCode> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("deleted", 0);
|
|
|
+ queryWrapper1.eq("is_verify", 0);
|
|
|
+ queryWrapper1.eq("phone_number", phone);
|
|
|
+ queryWrapper1.eq("code", code);
|
|
|
+ queryWrapper1.ne("method", 1);
|
|
|
+ queryWrapper1.ge("expiration_time", new Date());
|
|
|
+ List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper1);
|
|
|
+ if (listc.isEmpty()) {
|
|
|
+ return CommonResult.ok("验证码已失效");
|
|
|
+ }
|
|
|
+ //核销验证码
|
|
|
+ for (SmsCode smsCode : listc) {
|
|
|
+ smsCode.setIsVerify("1");
|
|
|
+ smsCodeService.updateSmsCode(smsCode);
|
|
|
+ }
|
|
|
+
|
|
|
+ oldData.setPhone(phone);
|
|
|
+
|
|
|
+ int result = smartUserService.updateSmartUser(oldData);
|
|
|
+ if(result <= 0){
|
|
|
+ return CommonResult.fail("修改失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ return CommonResult.ok("修改成功");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @PassToken
|
|
|
+ @DESRespondSecret(validated = true)
|
|
|
public CommonResult vertifyMessage(String phone, String code, String wxcode, Integer loginType) {
|
|
|
/**
|
|
|
* loginType:登录方式
|
|
|
* 短信验证登录:1
|
|
|
* 快捷登录:2
|
|
|
*/
|
|
|
- if(loginType == null){
|
|
|
+ if (loginType == null) {
|
|
|
return CommonResult.fail("请选择登录方式");
|
|
|
}
|
|
|
- if(loginType.intValue() == 1){
|
|
|
+ if (loginType.intValue() == 1) {
|
|
|
QueryWrapper<SmsCode> queryWrapper1 = new QueryWrapper<>();
|
|
|
queryWrapper1.eq("deleted", 0);
|
|
|
queryWrapper1.eq("is_verify", 0);
|
|
|
queryWrapper1.eq("phone_number", phone);
|
|
|
queryWrapper1.eq("code", code);
|
|
|
+ queryWrapper1.ne("method", 1);
|
|
|
queryWrapper1.ge("expiration_time", new Date());
|
|
|
List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper1);
|
|
|
if (listc.isEmpty()) {
|
|
|
@@ -649,7 +744,7 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
if (user.isEmpty()) {
|
|
|
return CommonResult.fail("该用户不存在");
|
|
|
}
|
|
|
- for (SmartUser u: user) {
|
|
|
+ for (SmartUser u : user) {
|
|
|
u.setXOpenId(openid);
|
|
|
}
|
|
|
|
|
|
@@ -658,7 +753,7 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
String token = JWTUtil.getToken(user.get(0), expired);
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("token", token);
|
|
|
- for (SmartUser u:user) {
|
|
|
+ for (SmartUser u : user) {
|
|
|
u.setUserhead(AesUtils.encrypt(String.valueOf(u.getId())));
|
|
|
}
|
|
|
jsonObject.put("user", user);
|
|
|
@@ -803,10 +898,10 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
logger.info("access:" + access);
|
|
|
String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + access.getAccess_token();
|
|
|
Map<String, String> params = new HashMap<>();
|
|
|
- params.put("code",code);
|
|
|
+ params.put("code", code);
|
|
|
|
|
|
String paramsJson = JSON.toJSONString(params);
|
|
|
- String json = HttpClientUtils.getInstance().sendHttpPost(url,paramsJson);
|
|
|
+ String json = HttpClientUtils.getInstance().sendHttpPost(url, paramsJson);
|
|
|
logger.info("获取微信手机号:" + json);
|
|
|
JSONObject jsonObject = JSONObject.parseObject(json);
|
|
|
String errcode = String.valueOf(jsonObject.get("phone_info"));
|
|
|
@@ -820,6 +915,6 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
|
|
|
JSONObject result = new JSONObject();
|
|
|
result.put("phone", purePhoneNumber);
|
|
|
|
|
|
- return CommonResult.ok("200","获取成功",result.toString());
|
|
|
+ return CommonResult.ok("200", "获取成功", result.toString());
|
|
|
}
|
|
|
}
|