From 352a4323d0a6e86b126ff39345706c99a1ba2066 Mon Sep 17 00:00:00 2001 From: Hawking Date: Tue, 23 May 2023 14:45:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=AD=90=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E8=BF=BD=E5=8A=A0=E6=89=A3=E5=87=8F=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ghy/order/domain/OrderAddSubtract.java | 2 ++ .../com/ghy/order/mapper/OrderAddSubtractMapper.java | 2 ++ .../order/service/impl/OrderDetailServiceImpl.java | 12 +++++++++++- .../mapper/order/OrderAddSubtractMapper.xml | 8 ++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderAddSubtract.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderAddSubtract.java index d3d71329..40963e74 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderAddSubtract.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderAddSubtract.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.ghy.common.enums.PayStatus; import com.ghy.common.enums.PayTypeEnum; import lombok.Data; +import lombok.experimental.Accessors; import javax.validation.constraints.Max; import javax.validation.constraints.Min; @@ -15,6 +16,7 @@ import java.time.LocalDateTime; * 订单追加扣减 */ @Data +@Accessors(chain = true) public class OrderAddSubtract { private Long id; diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderAddSubtractMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderAddSubtractMapper.java index 6b4a0a04..d024feb1 100644 --- a/ghy-order/src/main/java/com/ghy/order/mapper/OrderAddSubtractMapper.java +++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderAddSubtractMapper.java @@ -15,5 +15,7 @@ public interface OrderAddSubtractMapper { List select(OrderAddSubtract insert); + List selectByOrderDetail(Long orderDetailId); + OrderAddSubtract selectById(Long id); } diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index ff32db49..41bba76f 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -797,8 +797,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(orderDetail.getId()); Assert.notNull(financialDetail, "找不到财务单"); - // 派单金额 = 财务单金额 - 已支付的加价记录 + // 可用派单金额 = 财务单金额 - 已支付的加价记录 - 已支付的追加记录 BigDecimal paiDanMoney = financialDetail.getPayMoney(); + // 已支付的加价记录 List paidChangeRecords = financialChangeRecordService.selectByDetailIds(orderDetail.getId().toString()) .stream().filter(x -> x.getPayStatus() == 1).collect(Collectors.toList()); @@ -806,6 +807,15 @@ public class OrderDetailServiceImpl implements OrderDetailService { paiDanMoney = paiDanMoney.subtract(record.getChangeMoney()); } + // 已支付的追加记录 + List orderAdds = orderAddSubtractMapper.select(new OrderAddSubtract() + .setOrderDetailId(orderDetail.getId()).setPayStatus(PayStatus.PAID.getCode())); + for (OrderAddSubtract oas : orderAdds) { + if (MoneyUtil.gt0(oas.getMoney())) { + paiDanMoney = paiDanMoney.subtract(oas.getMoney()); + } + } + // 如果这是扣减操作 if (MoneyUtil.lt0(body.getMoney())) { // 扣减金额不能超过派单金额 diff --git a/ghy-order/src/main/resources/mapper/order/OrderAddSubtractMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderAddSubtractMapper.xml index 98d719f9..2619e270 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderAddSubtractMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderAddSubtractMapper.xml @@ -56,6 +56,9 @@ AND payment_id = #{paymentId} + + AND pay_status = #{payStatus} + @@ -64,4 +67,9 @@ WHERE id = #{id} + +