add 绑定微信和解除绑定微信接口

This commit is contained in:
lijiarao
2021-10-14 17:51:21 +08:00
parent 57b9793601
commit 502480da0d
@@ -69,7 +69,6 @@ public class CompanyLoginController {
Result<JSONObject> result = new Result<>();
String phone = sysLoginModel.getUsername();
String password = sysLoginModel.getPassword();
String openId = sysLoginModel.getOpenId();
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
//update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
@@ -96,9 +95,6 @@ public class CompanyLoginController {
//解密获取密码和用户名
password = CommonUtils.decryptBtRsaPriKey(password, rsaPrivateKey);
phone = CommonUtils.decryptBtRsaPriKey(phone, rsaPrivateKey);
if (StringUtils.isNotBlank(openId)){
openId = CommonUtils.decryptBtRsaPriKey(openId, rsaPrivateKey);
}
} catch (Exception e) {
e.printStackTrace();
}
@@ -151,21 +147,6 @@ public class CompanyLoginController {
BeanUtils.copyProperties(contactsManagement, loginUser);
baseCommonService.addLog("手机号: " + phone + ",登录成功!", CommonConstant.LOG_TYPE_1, null, loginUser);
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
//绑定微信openId
if (StringUtils.isNotBlank(openId)){
LambdaQueryWrapper<PayContactsManagement> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PayContactsManagement::getOpenId, PasswordUtil.encrypt(openId));
PayContactsManagement contactsManagement1 = payContactsManagementService.getOne(queryWrapper1);
//没有绑定过就绑定
if (contactsManagement1 == null){
contactsManagement.setOpenId(PasswordUtil.encrypt(openId));
contactsManagement.setPhone(PasswordUtil.encrypt(phone));
payContactsManagementService.updateById(contactsManagement);
//绑定过就判断是否是当前用户,如果不是就报错
}else if (!Objects.equals(contactsManagement1.getPhone(),PasswordUtil.encrypt(phone))){
throw new JeroBootException("微信已经绑定过其他账号");
}
}
return result;
}
@@ -174,15 +155,11 @@ public class CompanyLoginController {
public Result<JSONObject> smsLogin(@RequestBody SysLoginModel sysLoginModel) {
Result<JSONObject> result = new Result<>();
String phone = sysLoginModel.getUsername();
String openId = sysLoginModel.getOpenId();
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
try {
//解密获取手机号和openId
phone = CommonUtils.decryptBtRsaPriKey(phone, rsaPrivateKey);
if (StringUtils.isNotBlank(openId)){
openId = CommonUtils.decryptBtRsaPriKey(openId, rsaPrivateKey);
}
} catch (Exception e) {
e.printStackTrace();
}
@@ -216,21 +193,6 @@ public class CompanyLoginController {
BeanUtils.copyProperties(contactsManagement, loginUser);
baseCommonService.addLog("手机号: " + phone + ",登录成功!", CommonConstant.LOG_TYPE_1, null, loginUser);
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
//绑定微信openId
if (StringUtils.isNotBlank(openId)){
LambdaQueryWrapper<PayContactsManagement> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PayContactsManagement::getOpenId, PasswordUtil.encrypt(openId));
PayContactsManagement contactsManagement1 = payContactsManagementService.getOne(queryWrapper1);
//没有绑定过就绑定
if (contactsManagement1 == null){
contactsManagement.setOpenId(PasswordUtil.encrypt(openId));
contactsManagement.setPhone(PasswordUtil.encrypt(phone));
payContactsManagementService.updateById(contactsManagement);
//绑定过就判断是否是当前用户,如果不是就报错
}else if (!Objects.equals(contactsManagement1.getPhone(),PasswordUtil.encrypt(phone))){
throw new JeroBootException("微信已经绑定过其他账号");
}
}
//如果没有密码,返回
if (Objects.isNull(contactsManagement.getPassword())){
@@ -273,6 +235,54 @@ public class CompanyLoginController {
return result;
}
@ApiOperation("微信绑定接口")
@PostMapping(value = "/bindWeXin")
public Result<String> bindWeXin(@RequestBody SysLoginModel sysLoginModel) {
String openId = sysLoginModel.getOpenId();
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
try {
//解密获取openId
openId = CommonUtils.decryptBtRsaPriKey(openId, rsaPrivateKey);
} catch (Exception e) {
e.printStackTrace();
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
PayContactsManagement contactsManagement = payContactsManagementService.getById(loginUser.getId());
if (contactsManagement == null){
throw new JeroBootException("不是企业联系人");
}else if (StringUtils.isNotBlank(contactsManagement.getOpenId())){
throw new JeroBootException("已经绑定过微信,请先解除绑定");
}
//查看微信有没有被绑定过
LambdaQueryWrapper<PayContactsManagement> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PayContactsManagement::getOpenId, PasswordUtil.encrypt(openId));
PayContactsManagement contactsManagement1 = payContactsManagementService.getOne(queryWrapper1);
//没有绑定过就绑定
if (contactsManagement1 == null){
contactsManagement.setOpenId(PasswordUtil.encrypt(openId));
payContactsManagementService.updateById(contactsManagement);
//绑定过就判断是否是当前用户,如果不是就报错
}else if (!Objects.equals(contactsManagement1.getPhone(),contactsManagement.getPhone())){
throw new JeroBootException("微信已经绑定过其他账号");
}
baseCommonService.addLog("手机号: " + contactsManagement.getPhone() + ",绑定微信成功!", CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_3, loginUser);
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
return Result.OK("绑定微信成功");
}
@ApiOperation("微信绑定接口")
@PostMapping(value = "/unbindWeXin")
public Result<String> unbindWeXin() {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
PayContactsManagement contactsManagement = payContactsManagementService.getById(loginUser.getId());
contactsManagement.setOpenId(null);
payContactsManagementService.updateById(contactsManagement);
baseCommonService.addLog("手机号: " + contactsManagement.getPhone() + ",解除绑定微信成功!", CommonConstant.LOG_TYPE_2, CommonConstant.OPERATE_TYPE_3, loginUser);
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
return Result.OK("解除绑定微信成功");
}
/**
* 退出登录
*