From 7a16fa01435b02ca4dea9409370d2628a148e936 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 22 May 2025 09:03:11 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E8=BF=81=E7=A7=BB=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E4=B8=89=E5=8D=95=E8=A1=A5=E5=8D=95=E4=B8=9A=E7=BB=A9=E4=B8=BA?= =?UTF-8?q?0=E7=9A=84=EF=BC=8C=E7=AC=AC=E4=B8=89=E5=8D=95=E4=B9=9F?= =?UTF-8?q?=E6=8C=890=E8=BF=9B=E8=A1=8C=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BonusSettleFirstPurchaseHandle.java | 32 ++++++++++++++++--- .../impl/BonusSettlePurchaseHandle.java | 2 +- .../mapper/sale/order/SaOrderMapper.xml | 16 +--------- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java index 7e41e8e1..915cca7e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java @@ -324,16 +324,40 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { cuMemberBonusPush.setCalAchieve(orderAchieve); cuMemberBonusPush.setPretaxIncome(ComputeUtil.computeBonusMultiply(orderAchieve, cuMemberBonusPush.getCalValue())); } + + // 判断是否最后一次 boolean roundEnd = Objects.equals(ERecommendType.THREE_LOOP.getValue(), recommendType) && targetMemberSettleExt.getSecond() == 3; if (!roundEnd) { roundEnd = Objects.equals(ERecommendType.FOUR_LOOP.getValue(), recommendType) && targetMemberSettleExt.getSecond() == 4; } - // 记录最小值,前面的值 > 后面的值 - if (ComputeUtil.compareValue(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalAchieve()) || - ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO)) { - targetMemberSettleExt.setMinAchieve(cuMemberBonusPush.getCalAchieve()); + + // TODO 第1次为0,从第2次开始,第3单按0为最小单计算 + // TODO 第1、2次为0,从第3次开始,第3单按0为最小单计算 + if ((targetMemberSettleExt.getSecond() == 2 || targetMemberSettleExt.getSecond() == 3) + && ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO)) { + // 当前第 2、3 次,并且最小业绩为0,不进行任何处理 + } else { + // 记录最小值,前面的值 > 后面的值 + // 订单业绩 小于 最小业绩,并且最小业绩为0,则订单业绩为最小业绩 + if (ComputeUtil.compareValue(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalAchieve()) + || ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO) + ) { + targetMemberSettleExt.setMinAchieve(cuMemberBonusPush.getCalAchieve()); + } } + +// // TODO 第1次为0,从第2次开始,第3单按非0为最小单计算 +// // TODO 第1、2次为0,从第3次开始,第3单按非0为最小单计算 +// // 记录最小值,前面的值 > 后面的值 +// // 订单业绩 小于 最小业绩,并且最小业绩为0,则订单业绩为最小业绩 +// if (ComputeUtil.compareValue(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalAchieve()) +// || ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO) +// ) { +// targetMemberSettleExt.setMinAchieve(cuMemberBonusPush.getCalAchieve()); +// } + if (roundEnd) { + // 是最后一次,直接用最小业绩处理 cuMemberBonusPush.setCalAchieve(targetMemberSettleExt.getMinAchieve()); cuMemberBonusPush.setPretaxIncome(ComputeUtil.computeBonusMultiply(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalValue())); reductionMemberSettle(targetMemberSettleExt); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java index 6e88f938..4beb49f3 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java @@ -1016,7 +1016,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), gradeExpandRatio); // actualIncome = 业绩 * 等级扩展比例 BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio); - log.info("复购. maxIncome: {}, gradeExpandRatio: {}; actualIncome: {}, countryExpandRatio: {}", maxIncome, gradeExpandRatio, actualIncome, countryExpandRatio); +// log.info("复购. maxIncome: {}, gradeExpandRatio: {}; actualIncome: {}, countryExpandRatio: {}", maxIncome, gradeExpandRatio, actualIncome, countryExpandRatio); // 获取等级对应的封顶值(累计复购扩展 + 当前等级对应订单的最大收益) BigDecimal expandIncome = ComputeUtil.computeAdd(ComputeUtil.computeAdd(cuMemberBonus.getRepurExpandIncome(), actualIncome), weekRepExpandIncome); diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml index 0bedd4bc..150e3623 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml @@ -683,26 +683,12 @@ from sa_order_items soi where soi.pk_order = so.pk_id and soi.del_flag = 0 + and soi.pk_product != 0 and soi.order_status in #{item} ) - union all - select count(sto.pk_id) pk_id - from sa_t_order sto - where sto.del_flag = 0 - and sto.pk_country = #{pkCountry} - and (sto.pk_member = #{memberId} or sto.pk_creator = #{memberId}) - and exists (select 1 - from sa_t_order_items stoi - where stoi.pk_th_order = sto.pk_id - and stoi.del_flag = 0 - and stoi.order_status in - - #{item} - - ) )