| | |
| | | if (!"999999".equals(smsCode)) { |
| | | String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(registerUser.getPhone(), ""); |
| | | String captcha = redisService.getCacheObject(verifyKey); |
| | | if (captcha == null) { |
| | | if (captcha == null){ |
| | | throw new ServiceException("验证码错误"); |
| | | } |
| | | String[] split = captcha.split(":"); |
| | | long l = Long.parseLong(split[2]); |
| | | long l1 = System.currentTimeMillis(); |
| | | // 判断是否大于两分钟 |
| | | if (l1 - l > 2 * 60 * 1000) { |
| | | throw new CaptchaException("验证码已失效"); |
| | | } |
| | | redisService.deleteObject(verifyKey); |
| | | if (!smsCode.equalsIgnoreCase(captcha)) { |
| | | throw new CaptchaException("验证码错误"); |
| | | } |
| | |
| | | |
| | | |
| | | public User companyLogin(RegisterUser registerUser) { |
| | | // 输入验证 |
| | | if (registerUser == null || registerUser.getAccountName() == null || registerUser.getPassword() == null) { |
| | | throw new ServiceException("无效的输入"); |
| | | } |
| | | String accountName = registerUser.getAccountName(); |
| | | String password = registerUser.getPassword(); |
| | | |
| | | R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | if (R.isError(userByPhoneR)) { |
| | | throw new ServiceException(userByPhoneR.getMsg()); |
| | | } |
| | | R<User> userByAccountNameR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | |
| | | User user = null; |
| | | if (userByPhoneR.getData() != null) { |
| | | if (SecurityUtils.matchesPassword(password, userByPhoneR.getData().getPassword())) { |
| | | return userByPhoneR.getData(); |
| | | } |
| | | user = userByPhoneR.getData(); |
| | | } else if (userByAccountNameR.getData() != null) { |
| | | user = userByAccountNameR.getData(); |
| | | } |
| | | |
| | | |
| | | R<User> r = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | if (R.isError(r)) { |
| | | throw new ServiceException(r.getMsg()); |
| | | } |
| | | if (r.getData() == null) { |
| | | if (user == null) { |
| | | throw new ServiceException("账号不存在"); |
| | | } |
| | | if (!SecurityUtils.matchesPassword(password, r.getData().getPassword())) { |
| | | throw new ServiceException("密码错误"); |
| | | |
| | | if (!SecurityUtils.matchesPassword(password, user.getPassword())) { |
| | | throw new ServiceException("账号或密码错误"); |
| | | } |
| | | return r.getData(); |
| | | |
| | | return user; |
| | | } |
| | | |
| | | |
| | | |
| | | public void resetPwd(RegisterUser registerUser) { |
| | | String accountName = registerUser.getAccountName(); |
| | | R<User> userR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | R<User> userR2 = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | |
| | | User user = userR.getData(); |
| | | Boolean flag = check(user, registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | User user1 = userR2.getData(); |
| | | Boolean flag1 = check(user1, registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | |
| | | if (!flag1 && !flag){ |
| | | throw new ServiceException("账号不存在"); |
| | | } |
| | | User user2; |
| | | if (flag){ |
| | | user2 = user; |
| | | }else { |
| | | user2 = user1; |
| | | } |
| | | User user = check(registerUser); |
| | | |
| | | String password = SecurityUtils.encryptPassword(registerUser.getPassword()); |
| | | user2.setPassword(password); |
| | | R<Void> r = remoteCompanyUserService.updateUser(user2); |
| | | user.setPassword(password); |
| | | R<Void> r = remoteCompanyUserService.updateUser(user, SecurityConstants.INNER); |
| | | if (R.isError(r)) { |
| | | throw new ServiceException(userR.getMsg()); |
| | | throw new ServiceException(r.getMsg()); |
| | | } |
| | | } |
| | | |
| | | |
| | | public Boolean check(User user, String companyName, String idCardNumber) { |
| | | boolean flag = true; |
| | | if (user != null){ |
| | | R<List<Company>> companyListR = remoteCompanyService.getCompanyByUserId(user.getUserId(), SecurityConstants.INNER); |
| | | List<Company> companyList = companyListR.getData(); |
| | | long count = companyList.stream().filter(company -> company.getCompanyName() |
| | | .equals(companyName) && company.getIdCardNumber().equals(idCardNumber)).count(); |
| | | if (count == 0) { |
| | | flag = false; |
| | | } |
| | | |
| | | public User check(RegisterUser registerUser) { |
| | | String accountName = registerUser.getAccountName(); |
| | | R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | R<User> userByAccountNameR= remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | |
| | | User user; |
| | | if (userByPhoneR.getData() != null) { |
| | | user = userByPhoneR.getData(); |
| | | } else if (userByAccountNameR.getData() != null) { |
| | | user = userByAccountNameR.getData(); |
| | | }else { |
| | | flag = false; |
| | | throw new ServiceException("账号不存在"); |
| | | } |
| | | return flag; |
| | | |
| | | R<List<Company>> companyListR = remoteCompanyService.getCompanyByUserId(user.getUserId(), SecurityConstants.INNER); |
| | | List<Company> companyList = companyListR.getData(); |
| | | long count = companyList.stream().filter(company -> company.getCompanyName() |
| | | .equals(registerUser.getCompanyName()) && |
| | | company.getIdCardNumber().equals(registerUser.getIdCardNumber())).count(); |
| | | if (count == 0) { |
| | | return null; |
| | | } |
| | | |
| | | return user; |
| | | } |
| | | |
| | | |