提交 a37ddd81 authored 作者: huyufan's avatar huyufan

货主还款监听器开发

上级 cddd686f
......@@ -4,8 +4,7 @@ import cn.hutool.json.JSONUtil;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.enums.nbbank.NbBankStatusEnum;
import com.clx.performance.param.OwnerBankNotifyMqParam;
import com.clx.performance.service.loan.OwnerLoanAccountService;
import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.service.loan.OwnerRepaymentService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
......@@ -21,23 +20,22 @@ import java.util.Objects;
@AllArgsConstructor
public class OwnerRepaymentPayNotifyListener {
private final OwnerLoanRecordService ownerLoanRecordService;
private final OwnerRepaymentService ownerRepaymentService;
private final OwnerLoanAccountService ownerLoanAccountService;
@RabbitListener(queues = RabbitKeyConstants.OWNER_LOAN_PAY_QUEUE)
@RabbitListener(queues = RabbitKeyConstants.OWNER_REPAYMENT_QUEUE)
public void onMessage(String message) {
log.info("处理货主还款支付监听器执行,数据为{}", message);
OwnerBankNotifyMqParam param = JSONUtil.toBean(message, OwnerBankNotifyMqParam.class);
if (Objects.equals(param.getPayStatus(), NbBankStatusEnum.Status.SUCCESS.getCode())) {
// 支付成功
ownerLoanRecordService.paySuccess(param.getMerSeqNo());
ownerRepaymentService.paySuccess(param.getMerSeqNo());
}
else if (Objects.equals(param.getPayStatus(), NbBankStatusEnum.Status.FAIL.getCode())) {
// 支付失败
ownerLoanRecordService.payFail(param.getMerSeqNo());
ownerRepaymentService.payFail(param.getMerSeqNo());
}
}
}
......@@ -253,4 +253,29 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
ownerRepaymentDao.updateStatusById(ownerRepayment);
}
@Override
public void paySuccess(String merSeqNo) {
// 查询交易流水
BankTrade bankTrade = bankTradeDao.getOneByField(BankTrade::getMerchantRunningWaterNo, merSeqNo)
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 查询还款信息
OwnerRepayment ownerRepayment = ownerRepaymentDao.getOneByField(OwnerRepayment::getRepaymentNo, bankTrade.getRelationNo()).get();
ownerRepayment.setStatus(OwnerRePaymentEnum.Status.PAY_SUCCESS.getCode());
// 更新借款信息
ownerRepaymentDao.updateStatusById(ownerRepayment);
}
@Override
public void payFail(String merSeqNo) {
// 查询交易流水
BankTrade bankTrade = bankTradeDao.getOneByField(BankTrade::getMerchantRunningWaterNo, merSeqNo)
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 查询还款信息
OwnerRepayment ownerRepayment = ownerRepaymentDao.getOneByField(OwnerRepayment::getRepaymentNo, bankTrade.getRelationNo()).get();
ownerRepayment.setStatus(OwnerRePaymentEnum.Status.PAY_FAIL.getCode());
// 更新借款信息
ownerRepaymentDao.updateStatusById(ownerRepayment);
}
}
......@@ -36,4 +36,8 @@ public interface OwnerRepaymentService {
void ownerLoanRecordCancelPay(String repaymentNo);
void ownerRepaymentRetryPay(String repaymentNo);
void paySuccess(String merSeqNo);
void payFail(String merSeqNo);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论