From 2543767de62a5f35e1cee74ae76739437ddbcdae Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 13 Jun 2025 14:33:51 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=B9=B3=E7=BA=A7=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E6=8C=89=E5=8D=95=E5=95=86=E5=93=81=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/bonus/service/impl/BonusSettleRangeHandle.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 1878b811..a7506a4c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -38,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -1287,6 +1288,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { BigDecimal waresPrice = saOrderItems.getWaresPrice(); // 商品数量 BigDecimal waresQuantityBig = new BigDecimal(saOrderItems.getWaresQuantity()); + // 单个商品价格 + BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR); + // 前一个会员等级 int beforeGradeValue = 0; // 前一个会员等级的平级收益人数 @@ -1356,7 +1360,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { continue; } // 平级收益(商品价格 * 千分之五) -- 6位小数,四舍五入 - sameBonusIncome = waresPrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP); + sameBonusIncome = waresOnePrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP).multiply(waresQuantityBig); // 平级收益累计 beforeSameBonus = beforeSameBonus.add(sameBonusIncome); // 平级等级代数等级