From be9f0443216de264a214e8c4015f2eb890ffdfd8 Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com> Date: 星期二, 03 九月 2024 10:25:06 +0800 Subject: [PATCH] 直接退款金额计算 --- src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java | 4 ++-- src/main/java/com/mzl/flower/service/payment/OrderItemSettlementService.java | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java index 8cca07c..5971386 100644 --- a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java @@ -609,13 +609,13 @@ if(Constants.CHECK_TYPE.replace.name().equals(dto.getType())){ deduct = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum())); } else if(Constants.CHECK_TYPE.lack.name().equals(dto.getType())){ - deduct = oi.getPrice().multiply(new BigDecimal(dto.getNum())); + deduct = oi.getRealPrice().multiply(new BigDecimal(dto.getNum())); } else if (Constants.CHECK_TYPE.reduce.name().equals(dto.getType())) { if(deductAmount == null){ throw new ValidationException("降级金额不能为空"); } deduct = deductAmount.multiply(new BigDecimal(dto.getNum())); - BigDecimal dt = oi.getPrice().multiply(new BigDecimal(dto.getNum())); + BigDecimal dt = oi.getRealPrice().multiply(new BigDecimal(dto.getNum())); if(deduct.doubleValue() > dt.doubleValue()){ throw new ValidationException("降级金额不能大于商品处理数量金额"); } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderItemSettlementService.java b/src/main/java/com/mzl/flower/service/payment/OrderItemSettlementService.java index 3d630d4..c407e60 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderItemSettlementService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderItemSettlementService.java @@ -110,9 +110,9 @@ int replaceNum = 0;//补货数量 BigDecimal replaceFee = new BigDecimal(0);//补货扣款 int lackNum = 0;//缺货数量 - BigDecimal lackFeeSupplier = new BigDecimal(0);//缺货扣款 - BigDecimal lackFeePartner = new BigDecimal(0);//缺货扣款 - BigDecimal lackFeePlatform = new BigDecimal(0);//缺货扣款 + BigDecimal lackFeeSupplier = new BigDecimal(0);//供应商缺货扣款 + BigDecimal lackFeePartner = new BigDecimal(0);//合伙人缺货扣款 + BigDecimal lackFeePlatform = new BigDecimal(0);//平台缺货扣款 if (orderItemCheckList != null && orderItemCheckList.size() > 0) { for (OrderItemCheck c : orderItemCheckList) { Integer num = c.getNum(); @@ -120,20 +120,20 @@ String type = c.getType(); if (Constants.CHECK_TYPE.reduce.name().equals(type)) { checkNum = num == null ? 0 : num; - checkFee = amount == null ? new BigDecimal(0) : amount; + checkFee = getAmount(amount); } else if (Constants.CHECK_TYPE.lack.name().equals(type)) { lackNum = num == null ? 0 : num; lackFeeSupplier = oi.getSupplierPrice().multiply(new BigDecimal(lackNum)); - BigDecimal markupPartner = oi.getMarkupPartner() == null ? new BigDecimal(0) : oi.getMarkupPartner(); + BigDecimal markupPartner = getAmount(oi.getMarkupPartner()); lackFeePartner = markupPartner.multiply(new BigDecimal(lackNum)); - BigDecimal markupTwo = oi.getMarkupTwo() == null ? new BigDecimal(0) : oi.getMarkupTwo(); - lackFeePlatform = oi.getMarkupOne().multiply(new BigDecimal(lackNum)); - lackFeePlatform = lackFeePlatform.add(markupTwo.multiply(new BigDecimal(lackNum))); + BigDecimal markupTwo = getAmount(oi.getMarkupTwo()); + BigDecimal ppPrice = oi.getMarkupOne().add(markupTwo).subtract(oi.getCouponAmount());//1次加价+2次加价-优惠券金额 + lackFeePlatform = lackFeePlatform.add(ppPrice.multiply(new BigDecimal(lackNum))); } else if (Constants.CHECK_TYPE.replace.name().equals(type)) { replaceNum = num == null ? 0 : num; - replaceFee = amount == null ? new BigDecimal(0) : amount; + replaceFee = getAmount(amount); } } } @@ -150,9 +150,9 @@ if (serviceFeeRate == null) { ois.setServiceFeeRate(getFeeRate(oi)); } - ois.setServiceFee(getServiceFee(oi, replaceNum, lackNum, ois.getServiceFeeRate())); + ois.setServiceFee(getServiceFee(oi, replaceNum, lackNum, ois.getServiceFeeRate()));//服务费 - ois.setStationFee(getStationFee(oi, replaceNum, lackNum)); + ois.setStationFee(getStationFee(oi, replaceNum, lackNum));//集货站运费 } //售后计算 -- Gitblit v1.9.3