退款时, 已退款金额判断移动到具体方法中

This commit is contained in:
Guoqs
2025-04-23 10:18:26 +08:00
parent 6203e957a9
commit 2b6fd1ac36
3 changed files with 54 additions and 12 deletions

View File

@@ -457,6 +457,11 @@ public interface OrderBasicInfoService{
*/
List<OrderBasicInfo> queryRepayOrder(String memberId);
/**
* 获取订单已退款金额
*/
BigDecimal getOrderRefundedAmount(String orderCode);
/**
* 通过orderCode获取退款明细列表
* @param orderCode

View File

@@ -4662,6 +4662,28 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
return orderBasicInfoMapper.queryRepayOrder(memberId);
}
/**
* 获取订单已退款金额
*/
@Override
public BigDecimal getOrderRefundedAmount(String orderCode) {
BigDecimal refunded = BigDecimal.ZERO;
OrderBasicInfo orderBasicInfo = getOrderInfoByOrderCode(orderCode);
List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = getOrderRefundInfoList(orderBasicInfo);
if (CollectionUtils.isNotEmpty(orderRefundInfoList)) {
// 已退款金额
refunded = orderRefundInfoList.stream()
.map(x -> Objects.nonNull(x.getReverseAmt()) ? new BigDecimal(x.getReverseAmt()) : BigDecimal.ZERO)
.reduce(BigDecimal.ZERO,BigDecimal::add);
}
return refunded;
}
/**
* 查询该笔订单的退款记录
* @param orderCode
* @return
*/
@Override
public List<OrderDetailInfoVO.OrderRefundInfo> getOrderRefundInfoList(String orderCode) {
OrderBasicInfo orderBasicInfo = getOrderInfoByOrderCode(orderCode);

View File

@@ -774,18 +774,18 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
logger.info("执行订单退款-退款金额小于等于0orderCode:{}, 退款金额:{}", orderBasicInfo.getOrderCode(), refundAmount);
return;
}
// 查询该笔订单的退款记录
List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = orderBasicInfoService.getOrderRefundInfoList(orderBasicInfo);
if (CollectionUtils.isNotEmpty(orderRefundInfoList)) {
// 已退款金额
BigDecimal refunded = orderRefundInfoList.stream()
.map(x -> Objects.nonNull(x.getReverseAmt()) ? new BigDecimal(x.getReverseAmt()) : BigDecimal.ZERO)
.reduce(BigDecimal.ZERO,BigDecimal::add);
if (refunded.compareTo(refundAmount) >= 0) {
logger.info("执行订单退款-校验已退款金额orderCode:{}, 应退款金额:{}, 已经退款金额:{}, 不再执行退款", orderBasicInfo.getOrderCode(), refundAmount, refunded);
return;
}
}
// 查询该笔订单的退款记录 2025年4月23日10点17分此判断移动到具体方法中了
// List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = orderBasicInfoService.getOrderRefundInfoList(orderBasicInfo);
// if (CollectionUtils.isNotEmpty(orderRefundInfoList)) {
// // 已退款金额
// BigDecimal refunded = orderRefundInfoList.stream()
// .map(x -> Objects.nonNull(x.getReverseAmt()) ? new BigDecimal(x.getReverseAmt()) : BigDecimal.ZERO)
// .reduce(BigDecimal.ZERO,BigDecimal::add);
// if (refunded.compareTo(refundAmount) >= 0) {
// logger.info("执行订单退款-校验已退款金额orderCode:{}, 应退款金额:{}, 已经退款金额:{}, 不再执行退款", orderBasicInfo.getOrderCode(), refundAmount, refunded);
// return;
// }
// }
try {
String payMode = orderBasicInfo.getPayMode();
@@ -996,6 +996,13 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
return;
}
// 获取订单已退款金额
BigDecimal orderRefundedAmount = orderBasicInfoService.getOrderRefundedAmount(orderBasicInfo.getOrderCode());
if (orderRefundedAmount.compareTo(refundAmount) >= 0) {
logger.info("执行订单退款-校验已退款金额orderCode:{}, 应退款金额:{}, 已经退款金额:{}, 不再执行退款", orderBasicInfo.getOrderCode(), refundAmount, orderRefundedAmount);
return;
}
// 订单编号
String orderCode = orderBasicInfo.getOrderCode();
@@ -1075,6 +1082,14 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
return;
}
// 获取已退款金额
BigDecimal orderRefundedAmount = orderBasicInfoService.getOrderRefundedAmount(orderBasicInfo.getOrderCode());
if (orderRefundedAmount.compareTo(refundAmount) >= 0) {
logger.info("执行订单退款-校验已退款金额orderCode:{}, 应退款金额:{}, 已经退款金额:{}, 不再执行退款", orderBasicInfo.getOrderCode(), refundAmount, orderRefundedAmount);
return;
}
// 微信退款逻辑
ApplyRefundDTO applyRefundDTO = new ApplyRefundDTO();
applyRefundDTO.setOrderCode(orderBasicInfo.getOrderCode());