diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyLoginController.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyLoginController.java index b3db4b75..dbd28db4 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyLoginController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyLoginController.java @@ -69,7 +69,6 @@ public class CompanyLoginController { Result 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 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 smsLogin(@RequestBody SysLoginModel sysLoginModel) { Result 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 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 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 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 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("解除绑定微信成功"); + } + /** * 退出登录 *