退款增加判断

This commit is contained in:
2025-09-25 15:28:58 +08:00
parent 27f5576aa2
commit f7472da77d
2 changed files with 35 additions and 30 deletions

View File

@ -296,16 +296,19 @@ public class WechatPayService {
private void recordRefundInfo(RefundRequest request, CompanyWechatConfig companyConfig, Map<String, String> result,BigDecimal totalFee) {
try {
RefundRecord refundRecord = refundRecordMapper.getRefundRecordByOutRefundNo(request.getOutRefundNo());
if (refundRecord == null) {
refundRecord = new RefundRecord();
refundRecord.setCompanyId(request.getCompanyId());
refundRecord.setOutTradeNo(request.getOutTradeNo());
refundRecord.setOutRefundNo(request.getOutRefundNo());
refundRecord.setTotalFee(totalFee);
refundRecord.setRefundFee(new BigDecimal(request.getRefundFee()).divide(new BigDecimal(100))); // 转换为元
refundRecord.setRefundDesc(request.getRefundDesc());
refundRecord.setCreateTime(new Date());
refundRecord.setUpdateTime(new Date());
if (refundRecord != null) {
logger.warn("已存在对应的退款记录,退款单号: {}", request.getOutRefundNo());
return;
}
refundRecord = new RefundRecord();
refundRecord.setCompanyId(request.getCompanyId());
refundRecord.setOutTradeNo(request.getOutTradeNo());
refundRecord.setOutRefundNo(request.getOutRefundNo());
refundRecord.setTotalFee(totalFee);
refundRecord.setRefundFee(new BigDecimal(request.getRefundFee()).divide(new BigDecimal(100))); // 转换为元
refundRecord.setRefundDesc(request.getRefundDesc());
refundRecord.setCreateTime(new Date());
refundRecord.setUpdateTime(new Date());
if ("SUCCESS".equals(result.get("result_code"))) {
refundRecord.setRefundStatus("PROCESSING"); // 退款处理中

View File

@ -606,28 +606,30 @@ public class AlipayServiceImpl implements AlipayService {
*/
private void recordRefundInfo(AlipayRefundRequest request) {
try {
PaymentRecord paymentRecord = paymentRecordMapper.getPaymentRecordByOutTradeNo(request.getOutTradeNo());
RefundRecord refundRecord = refundRecordMapper.getRefundRecordByOutRefundNo(request.getOutRequestNo());
if(refundRecord == null){
PaymentRecord paymentRecord = paymentRecordMapper.getPaymentRecordByOutTradeNo(request.getOutTradeNo());
refundRecord = new RefundRecord();
refundRecord.setCompanyId(request.getCompanyId());
refundRecord.setOutTradeNo(request.getOutTradeNo());
refundRecord.setOutRefundNo(request.getOutRequestNo());
refundRecord.setTotalFee(paymentRecord.getTotalFee());
refundRecord.setRefundFee(new BigDecimal(request.getRefundAmount())); // 转换为元
refundRecord.setRefundDesc(request.getRefundReason());
refundRecord.setCreateTime(new Date());
refundRecord.setUpdateTime(new Date());
refundRecord.setRefundStatus("PROCESSING"); // 退款处理中
refundRecord.setRefundStatusDesc("退款处理中");
refundRecord.setRefundId(request.getOutRequestNo());
refundRecord.setPayChannel(PaymentRecord.PayChannel.ALIPAY.name());
refundRecordMapper.insertRefundRecord(refundRecord);
log.info("退款记录已保存,退款单号: {}", request.getOutRequestNo());
}else {
log.info("退款记录已存在,退款单号: {}", request.getOutRequestNo());
if (refundRecord != null) {
log.warn("已存在对应的退款记录,退款单号: {}", request.getOutRequestNo());
return;
}
refundRecord = new RefundRecord();
refundRecord.setCompanyId(request.getCompanyId());
refundRecord.setOutTradeNo(request.getOutTradeNo());
refundRecord.setOutRefundNo(request.getOutRequestNo());
refundRecord.setTotalFee(paymentRecord.getTotalFee());
refundRecord.setRefundFee(new BigDecimal(request.getRefundAmount())); // 转换为元
refundRecord.setRefundDesc(request.getRefundReason());
refundRecord.setCreateTime(new Date());
refundRecord.setUpdateTime(new Date());
refundRecord.setRefundStatus("PROCESSING"); // 退款处理中
refundRecord.setRefundStatusDesc("退款处理中");
refundRecord.setRefundId(request.getOutRequestNo());
refundRecord.setPayChannel(PaymentRecord.PayChannel.ALIPAY.name());
refundRecordMapper.insertRefundRecord(refundRecord);
log.info("退款记录已保存,退款单号: {}", request.getOutRequestNo());
} catch (Exception e) {
log.error("保存退款记录异常,退款单号: {}", request.getOutRequestNo(), e);
}