diff --git a/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/AuthServiceImpl.java b/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/AuthServiceImpl.java index b0e880a..ca6bd54 100644 --- a/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/AuthServiceImpl.java +++ b/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/AuthServiceImpl.java @@ -456,9 +456,15 @@ return null; } } - if (chinaumsAuthInfo.getApplicationStatus().equals(ApplicationStatus.REGISTER_SUCCESS)) { + this.setRegStatusFromCondition(byxChinaumsCallBackDTO.getRegStatus(), chinaumsAuthInfo); + if (!byxChinaumsCallBackDTO.getRegStatus().equals("10")) { + chinaumsAuthInfoRepository.save(chinaumsAuthInfo); return chinaumsAuthInfo; } + return chinaumsAuthInfo; + } + + public ChinaumsAuthInfo changeChinaumsAuthInfoStatus(ByxChinaumsCallBackDTO byxChinaumsCallBackDTO, ChinaumsAuthInfo chinaumsAuthInfo) { this.setRegStatusFromCondition(byxChinaumsCallBackDTO.getRegStatus(), chinaumsAuthInfo); if (!byxChinaumsCallBackDTO.getRegStatus().equals("10")) { chinaumsAuthInfoRepository.save(chinaumsAuthInfo); @@ -470,17 +476,35 @@ @Override @Transactional(rollbackFor = Exception.class) public Boolean handleMchCallBackSuccess(ByxChinaumsCallBackDTO byxChinaumsCallBackDTO) { - ChinaumsAuthInfo chinaumsAuthInfo = this.changeChinaumsAuthInfoStatus(byxChinaumsCallBackDTO); + if (byxChinaumsCallBackDTO == null || + StringUtils.isEmpty(byxChinaumsCallBackDTO.getRegisterNo()) || + StringUtils.isEmpty(byxChinaumsCallBackDTO.getRegStatus())) { + return null; + } + Company company = companyRepository.findByRegisterNo(byxChinaumsCallBackDTO.getRegisterNo()); + if (company == null) { + return null; + } + ChinaumsAuthInfo chinaumsAuthInfo = chinaumsAuthInfoRepository.findFirstByCompanyId(company.getId()); if (chinaumsAuthInfo == null) { - return false; + chinaumsAuthInfo = chinaumsAuthInfoRepository.findFirstByMchId(byxChinaumsCallBackDTO.getRegisterNo()); + // 若查询不到则返回 + if (chinaumsAuthInfo == null) { + log.error("商家注册回调处理异常,找不到注册号-{}", byxChinaumsCallBackDTO.getRegisterNo()); + return null; + } } if (chinaumsAuthInfo.getApplicationStatus().equals(ApplicationStatus.REGISTER_SUCCESS)) { return true; } + chinaumsAuthInfo = this.changeChinaumsAuthInfoStatus(byxChinaumsCallBackDTO, chinaumsAuthInfo); + if (chinaumsAuthInfo == null) { + return false; + } + if (!byxChinaumsCallBackDTO.getRegStatus().equals("10")) { return true; } - Company company = chinaumsAuthInfo.getCompany(); // 处理注册成功状态 即getRegStatus == 10 // 保存企业电子账簿ID if (StringUtils.isBlank(company.getWalletId())) {