1
luodangjia
2025-01-22 895ed97195660b0196b61f5da626ac6d18e2068d
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -205,59 +205,51 @@
    public void resetPwd(RegisterUser registerUser) {
        R<User> userR = resetPwdCheck(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;
        }
        String password = SecurityUtils.encryptPassword(registerUser.getPassword());
        user.setPassword(password);
        R<Void> r = remoteCompanyUserService.updateUser(user);
        user2.setPassword(password);
        R<Void> r = remoteCompanyUserService.updateUser(user2);
        if (R.isError(r)) {
            throw new ServiceException(userR.getMsg());
        }
    }
    public R<User> resetPwdCheck(RegisterUser registerUser) {
        String accountName = registerUser.getAccountName();
        R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER);
        if (R.isError(userByPhoneR)) {
            throw new RuntimeException(userByPhoneR.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;
        }
        boolean check = false;
        R<User> userR = new R<>();
        if (userByPhoneR.getData() != null) {
            check = check(userByPhoneR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber());
        }else {
            flag = false;
        }
        if (!check){
            userR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER);
            if (R.isError(userR)) {
                throw new RuntimeException(userR.getMsg());
            }
            if (userR.getData() == null) {
                throw new RuntimeException("账号不存在");
            }
            check = check(userR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber());
        }
        if (!check) {
            throw new RuntimeException("账号不存在");
        }
        return userR;
        return flag;
    }
    public boolean check(User user, String companyName, String idCardNumber) {
        Long userId = user.getUserId();
        R<List<Company>> companyR = remoteCompanyService.getCompanyByUserId(userId, SecurityConstants.INNER);
        if (R.isError(companyR)) {
            throw new ServiceException(companyR.getMsg());
        }
        List<Company> companyList = companyR.getData();
        if (companyList != null) {
            long count = companyList.stream()
                    .filter(company -> company.getCompanyName().equals(companyName) &&
                            company.getIdCardNumber().equals(idCardNumber))
                    .count();
            return count > 0;
        }
        return false;
    }
    /**
     * 管理端-修改密码