From 77c895dbb212452e51aa677e0b6140b2174ce7db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 22 Nov 2024 15:26:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=AF=94=E4=BE=8B=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=8F=AF=E9=80=80=E9=87=91=E9=A2=9D=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 0ed526f4..83a25ec2 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -2821,7 +2821,12 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (oldOrderInfo.getRefundAmount() == null) { oldOrderInfo.setRefundAmount(BigDecimal.ZERO); } - returnAmount = returnAmount.add(oldOrderInfo.getPayAmount().subtract(oldOrderInfo.getRefundAmount()).multiply(ratio)); + + if (ratio.compareTo(BigDecimal.ONE) == 0) { + returnAmount = oldOrderInfo.getPayAmount().subtract(oldOrderInfo.getRefundAmount()); + }else { + returnAmount = returnAmount.add(oldOrderInfo.getPayAmount().subtract(oldOrderInfo.getRefundAmount()).multiply(ratio)); + } saleAmount = saleAmount.add(orderDetail.getPrice()); packAMount = packAMount.add(orderDetail.getPackAmount() .divide(orderDetail.getNum(), 8, RoundingMode.HALF_UP) @@ -2838,6 +2843,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { .divide(orderDetail.getNum(), 8, RoundingMode.HALF_UP) .multiply(returnNum)).setScale(2, RoundingMode.HALF_UP); } + returnAmount = returnAmount.setScale(2, RoundingMode.DOWN); orderDetail.setNum(returnNum); orderDetail.setPriceAmount(currentDetailAMount); @@ -2904,6 +2910,9 @@ public class TbShopTableServiceImpl implements TbShopTableService { totalAmount = totalAmount.add(item.getPriceAmount()); } } + if (orderDetail.getPriceAmount().compareTo(totalAmount) == 0) { + return BigDecimal.ONE; + } return orderDetail.getPriceAmount().divide(totalAmount, 10, RoundingMode.DOWN) .divide(orderDetail.getNum(), 10, RoundingMode.DOWN).multiply(returnNum).setScale(2, RoundingMode.DOWN);