Compare commits

..

2 Commits

Author SHA1 Message Date
0988d548cd 修改合并错误 2025-09-25 15:34:31 +08:00
f7472da77d 退款增加判断 2025-09-25 15:28:58 +08:00
2 changed files with 48 additions and 45 deletions

View File

@ -293,34 +293,35 @@ public class WechatPayService {
/**
* 记录退款信息到数据库
*/
private void recordRefundInfo(RefundRequest request, CompanyWechatConfig companyConfig, Map<String, String> result,BigDecimal totalFee) {
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 ("SUCCESS".equals(result.get("result_code"))) {
refundRecord.setRefundStatus("PROCESSING"); // 退款处理中
refundRecord.setRefundStatusDesc("退款处理中");
refundRecord.setRefundId(result.get("refund_id"));
} else {
refundRecord.setRefundStatus("FAIL"); // 退款失败
refundRecord.setRefundStatusDesc(result.get("err_code_des"));
}
refundRecordMapper.insertRefundRecord(refundRecord);
logger.info("退款记录已保存,退款单号: {}", request.getOutRefundNo());
} else{
logger.info("退款记录已存在,退款单号: {}", request.getOutRefundNo());
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"); // 退款处理中
refundRecord.setRefundStatusDesc("退款处理中");
refundRecord.setRefundId(result.get("refund_id"));
} else {
refundRecord.setRefundStatus("FAIL"); // 退款失败
refundRecord.setRefundStatusDesc(result.get("err_code_des"));
}
refundRecordMapper.insertRefundRecord(refundRecord);
logger.info("退款记录已保存,退款单号: {}", request.getOutRefundNo());
} catch (Exception e) {
logger.error("保存退款记录异常,退款单号: {}", request.getOutRefundNo(), e);

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);
}