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}
-
- )
)