add 企业用户登录增加openId字段

This commit is contained in:
lijiarao
2021-10-14 09:57:59 +08:00
parent 31bb31760b
commit 4039a61f71
3 changed files with 86 additions and 8 deletions
@@ -69,6 +69,7 @@ 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:暂时注释掉密码加密逻辑,有点问题
@@ -95,6 +96,9 @@ 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();
}
@@ -145,8 +149,23 @@ public class CompanyLoginController {
//update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员
LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(contactsManagement, loginUser);
baseCommonService.addLog("用户名: " + phone + ",登录成功!", CommonConstant.LOG_TYPE_1, null, 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;
}
@@ -155,16 +174,15 @@ 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));
//update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
//前端密码加密,后端进行密码解密
//password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword().replaceAll("%2B", "\\+")).trim();//密码解密
//update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
//update-begin-author:taoyan date:20190828 for:校验验证码
try {
//解密获取密码和用户名
//解密获取手机号和openId
phone = CommonUtils.decryptBtRsaPriKey(phone, rsaPrivateKey);
if (StringUtils.isNotBlank(openId)){
openId = CommonUtils.decryptBtRsaPriKey(openId, rsaPrivateKey);
}
} catch (Exception e) {
e.printStackTrace();
}
@@ -196,14 +214,65 @@ public class CompanyLoginController {
//update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员
LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(contactsManagement, loginUser);
baseCommonService.addLog("用户名: " + phone + ",登录成功!", CommonConstant.LOG_TYPE_1, null, 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())){
result.setMessage("updatePassword");
}
return result;
}
@ApiOperation("微信登录接口")
@PostMapping(value = "/WCLogin")
public Result<JSONObject> WCLogin(@RequestBody SysLoginModel sysLoginModel) {
Result<JSONObject> result = new Result<>();
String openId = sysLoginModel.getOpenId();
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
try {
//解密获取openId
if (StringUtils.isNotBlank(openId)){
openId = CommonUtils.decryptBtRsaPriKey(openId, rsaPrivateKey);
}
} catch (Exception e) {
e.printStackTrace();
}
//1. 校验用户是否有效
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getOpenId, PasswordUtil.encrypt(openId));
PayContactsManagement contactsManagement = payContactsManagementService.getOne(queryWrapper);
if (Objects.isNull(contactsManagement)) {
throw new JeroBootException("暂未授权");
}
//用户登录信息
userInfo(contactsManagement, result);
//update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员
LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(contactsManagement, loginUser);
baseCommonService.addLog("手机号: " + contactsManagement.getPhone() + ",登录成功!", CommonConstant.LOG_TYPE_1, null, loginUser);
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
return result;
}
/**
* 退出登录
*
@@ -121,6 +121,13 @@ public class PayContactsManagement implements Serializable {
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String salt;
/**
* openId
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String openId;
/**
* 审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态
*/
@@ -27,4 +27,6 @@ public class SysLoginModel {
private String checkKey;
@ApiModelProperty(value = "RSA公钥")
private String rsaPublicKey;
@ApiModelProperty(value = "openId")
private String openId;
}