diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 516a66d..df6f4aa 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1283,6 +1283,8 @@ public class PayService { BigDecimal saleAmount = BigDecimal.ZERO; ArrayList remainOrderDetailList = new ArrayList<>(); boolean hasNormalReturn = false; + + ArrayList copyDetailList = new ArrayList<>(); for (TbOrderDetail orderDetail : detailList) { // 原始金额 BigDecimal originalAmount = orderDetail.getPriceAmount(); @@ -1374,6 +1376,11 @@ public class PayService { orderDetail.setReturnAmount(returnAmount); // orderDetail.setStatus(isOnline ? "refunding" : "refund"); orderDetail.setStatus("refund"); + + TbOrderDetail returnOrderDetailCopy = new TbOrderDetail(); + cn.hutool.core.bean.BeanUtil.copyProperties(orderDetail, returnOrderDetailCopy); + returnOrderDetailCopy.setId(null); + copyDetailList.add(returnOrderDetailCopy); } if (returnAmount.compareTo(BigDecimal.ZERO) < 0) { @@ -1411,6 +1418,9 @@ public class PayService { returnOrder.setSettlementAmount(returnAmount); returnOrder.setPayAmount(returnAmount); mPOrderInfoMapper.insert(returnOrder); + // 保存新的退款detail信息 + copyDetailList.forEach(item -> item.setOrderId(returnOrder.getId())); + mpOrderDetailService.saveBatch(copyDetailList); updateStockAndRecord(detailList); mpOrderDetailService.updateBatchById(detailList); diff --git a/src/main/resources/mapper/TbOrderInfoMapper.xml b/src/main/resources/mapper/TbOrderInfoMapper.xml index 99e9bc8..11dc85e 100644 --- a/src/main/resources/mapper/TbOrderInfoMapper.xml +++ b/src/main/resources/mapper/TbOrderInfoMapper.xml @@ -115,7 +115,6 @@ and toi.order_no = #{orderNo} - and toi.source is null group by toi.id,toi.shop_id order by toi.id desc