From 11f9ddaeb63510a286348d830bd758e169431ee0 Mon Sep 17 00:00:00 2001 From: Chopper Date: Mon, 10 Jan 2022 09:41:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E4=BC=98=E9=9B=85=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BB=B7=E6=A0=BC=E5=8A=A0=E5=87=8F=E6=B3=95?= =?UTF-8?q?=E8=BF=90=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/common/utils/CurrencyUtil.java | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java b/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java index 7e77edcb..74f12d7c 100644 --- a/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java +++ b/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java @@ -2,6 +2,7 @@ package cn.lili.common.utils; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Arrays; /** * 金额计算工具 @@ -24,27 +25,30 @@ public final class CurrencyUtil { /** * 提供精确的加法运算。 * - * @param v1 被加数 - * @param v2 加数 - * @return 两个参数的和 + * @return 累加之和 */ - public static Double add(double v1, double v2) { - BigDecimal b1 = BigDecimal.valueOf(v1); - BigDecimal b2 = BigDecimal.valueOf(v2); - return b1.add(b2).setScale(2, RoundingMode.HALF_UP).doubleValue(); + public static Double add(double... params) { + BigDecimal result = new BigDecimal("0"); + for (double param : params) { + BigDecimal bigParam = BigDecimal.valueOf(param); + result = result.add(bigParam).setScale(2, RoundingMode.HALF_UP); + } + return result.doubleValue(); } /** - * 提供精确的减法运算。 + * 提供精确的加法运算。 * - * @param v1 被减数 - * @param v2 减数 - * @return 两个参数的差 + * @return 累加之和 */ - public static double sub(double v1, double v2) { - BigDecimal b1 = BigDecimal.valueOf(v1); - BigDecimal b2 = BigDecimal.valueOf(v2); - return b1.subtract(b2).setScale(2, RoundingMode.HALF_UP).doubleValue(); + public static Double sub(double... params) { + BigDecimal result = BigDecimal.valueOf(params[0]); + params = Arrays.stream(params).skip(1).toArray(); + for (double param : params) { + BigDecimal bigParam = BigDecimal.valueOf(param); + result = result.subtract(bigParam).setScale(2, RoundingMode.HALF_UP); + } + return result.doubleValue(); } /** From 643e8c8157b4619661d0ed7aa622f21e0e0a40de Mon Sep 17 00:00:00 2001 From: Chopper Date: Mon, 10 Jan 2022 09:48:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=BF=9E=E7=BB=AD=E5=8A=A0=E5=87=8F?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E8=BF=90=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java | 1 - .../cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java | 2 +- .../modules/order/order/serviceimpl/StoreFlowServiceImpl.java | 2 +- .../java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java b/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java index 74f12d7c..6b1b9aa2 100644 --- a/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java +++ b/framework/src/main/java/cn/lili/common/utils/CurrencyUtil.java @@ -35,7 +35,6 @@ public final class CurrencyUtil { } return result.doubleValue(); } - /** * 提供精确的加法运算。 * diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java index 15724eb7..dcc9ce66 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/PriceDetailDTO.java @@ -170,7 +170,7 @@ public class PriceDetailDTO implements Serializable { billPrice = settlementPrice; } else { //如果是普通订单最终结算金额 = flowPrice - platFormCommission - distributionCommission 流水金额-平台佣金-分销佣金 - billPrice = CurrencyUtil.sub(CurrencyUtil.sub(flowPrice, platFormCommission), distributionCommission); + billPrice = CurrencyUtil.sub(flowPrice, platFormCommission, distributionCommission); } } diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java index da22d3ab..bcb8df53 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java @@ -160,7 +160,7 @@ public class StoreFlowServiceImpl extends ServiceImpl implements Bi bill.setPointSettlementPrice(orderBill.getPointSettlementPrice()); bill.setKanjiaSettlementPrice(orderBill.getKanjiaSettlementPrice()); //入账金额=订单金额+积分商品+砍价商品 - orderPrice = CurrencyUtil.add(CurrencyUtil.add(orderBill.getBillPrice(), orderBill.getPointSettlementPrice()), + orderPrice = CurrencyUtil.add(orderBill.getBillPrice(), orderBill.getPointSettlementPrice(), orderBill.getKanjiaSettlementPrice()); }