From 0e2a1f2571c7ced7ef2b9e7847bc341f807fe5ff Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 13 Jun 2025 18:18:37 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=A4=8D=E8=B4=AD=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=88=86=E7=BA=A2=E6=8C=89=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E7=9A=84=E4=BB=B7=E6=A0=BC=E8=BF=9B=E8=A1=8C=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 24 ++++++++++++++----- .../mapper/bonus/order/BonusOrderMapper.xml | 4 +++- .../domain/sale/ext/SaOrderWaresExt.java | 7 ++++++ 3 files changed, 28 insertions(+), 7 deletions(-) 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 03236b4b..beb8f19e 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 @@ -1596,14 +1596,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return null; } - // 区域收益,商品价格 * 0.5% * 商品数量 // 处理区域收益 -- 计算比例为 0.5% BigDecimal benefitIncome = BigDecimal.ZERO; - // 计算业绩(此处作为比例) - BigDecimal calAchieve = BigDecimal.ZERO; - for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) { - benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(RetailConstants.SAME_RATIO)).setScale(6, BigDecimal.ROUND_HALF_UP); - calAchieve = calAchieve.add(saOrderWaresExt.getWaresPrice()); + if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) { + // 注册、升级订单, 区域收益 = 商品价格 * 0.5% * 商品数量 + for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) { + // 商品最终价格 + BigDecimal waresPrice = saOrderWaresExt.getWaresPrice(); + // 商品数量 + BigDecimal waresQuantityBig = new BigDecimal(saOrderWaresExt.getWaresQuantity()); + // 单个商品价格 + BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR); + + benefitIncome = benefitIncome.add(waresOnePrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP).multiply(waresQuantityBig)); + } + } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) { + // 复购订单, 区域收益 = 复购区域分红 * 商品数量 + for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) { + benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity()))); + } } CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME); diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml index 5e45a63b..b946e1f4 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml @@ -60,6 +60,7 @@ + @@ -153,7 +154,8 @@ nvl(st.pk_wares,0) pk_wares, nvl(st.wares_price,0) wares_price, nvl(bw.wares_code,'~') wares_code, - nvl(st.wares_quantity,0) wares_quantity + nvl(st.wares_quantity,0) wares_quantity, + nvl(bw.area_income, 0) area_income from sa_order so left join sa_order_wares st on so.pk_id = st.pk_order and st.wares_price > 0 diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderWaresExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderWaresExt.java index 6a6cd648..37e0e56b 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderWaresExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderWaresExt.java @@ -4,6 +4,8 @@ import com.hzs.common.domain.sale.order.SaOrderWares; import lombok.Data; import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + @EqualsAndHashCode(callSuper = true) @Data public class SaOrderWaresExt extends SaOrderWares { @@ -13,4 +15,9 @@ public class SaOrderWaresExt extends SaOrderWares { */ private String waresCode; + /** + * 复购区域分红 + */ + private BigDecimal areaIncome; + }