## 迁移会员三单补单业绩为0的,第三单也按0进行处理;

This commit is contained in:
cabbage 2025-05-22 09:03:11 +08:00
parent 4e9934c0ec
commit d95e43308f
3 changed files with 30 additions and 20 deletions

View File

@ -324,16 +324,40 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
cuMemberBonusPush.setCalAchieve(orderAchieve); cuMemberBonusPush.setCalAchieve(orderAchieve);
cuMemberBonusPush.setPretaxIncome(ComputeUtil.computeBonusMultiply(orderAchieve, cuMemberBonusPush.getCalValue())); cuMemberBonusPush.setPretaxIncome(ComputeUtil.computeBonusMultiply(orderAchieve, cuMemberBonusPush.getCalValue()));
} }
// 判断是否最后一次
boolean roundEnd = Objects.equals(ERecommendType.THREE_LOOP.getValue(), recommendType) && targetMemberSettleExt.getSecond() == 3; boolean roundEnd = Objects.equals(ERecommendType.THREE_LOOP.getValue(), recommendType) && targetMemberSettleExt.getSecond() == 3;
if (!roundEnd) { if (!roundEnd) {
roundEnd = Objects.equals(ERecommendType.FOUR_LOOP.getValue(), recommendType) && targetMemberSettleExt.getSecond() == 4; roundEnd = Objects.equals(ERecommendType.FOUR_LOOP.getValue(), recommendType) && targetMemberSettleExt.getSecond() == 4;
} }
// TODO 第1次为0从第2次开始第3单按0为最小单计算
// TODO 第12次为0从第3次开始第3单按0为最小单计算
if ((targetMemberSettleExt.getSecond() == 2 || targetMemberSettleExt.getSecond() == 3)
&& ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO)) {
// 当前第 23 并且最小业绩为0不进行任何处理
} else {
// 记录最小值前面的值 > 后面的值 // 记录最小值前面的值 > 后面的值
if (ComputeUtil.compareValue(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalAchieve()) || // 订单业绩 小于 最小业绩并且最小业绩为0则订单业绩为最小业绩
ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO)) { if (ComputeUtil.compareValue(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalAchieve())
|| ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO)
) {
targetMemberSettleExt.setMinAchieve(cuMemberBonusPush.getCalAchieve()); targetMemberSettleExt.setMinAchieve(cuMemberBonusPush.getCalAchieve());
} }
}
// // TODO 第1次为0从第2次开始第3单按非0为最小单计算
// // TODO 第12次为0从第3次开始第3单按非0为最小单计算
// // 记录最小值前面的值 > 后面的值
// // 订单业绩 小于 最小业绩并且最小业绩为0则订单业绩为最小业绩
// if (ComputeUtil.compareValue(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalAchieve())
// || ComputeUtil.compareEqual(targetMemberSettleExt.getMinAchieve(), BigDecimal.ZERO)
// ) {
// targetMemberSettleExt.setMinAchieve(cuMemberBonusPush.getCalAchieve());
// }
if (roundEnd) { if (roundEnd) {
// 是最后一次直接用最小业绩处理
cuMemberBonusPush.setCalAchieve(targetMemberSettleExt.getMinAchieve()); cuMemberBonusPush.setCalAchieve(targetMemberSettleExt.getMinAchieve());
cuMemberBonusPush.setPretaxIncome(ComputeUtil.computeBonusMultiply(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalValue())); cuMemberBonusPush.setPretaxIncome(ComputeUtil.computeBonusMultiply(targetMemberSettleExt.getMinAchieve(), cuMemberBonusPush.getCalValue()));
reductionMemberSettle(targetMemberSettleExt); reductionMemberSettle(targetMemberSettleExt);

View File

@ -1016,7 +1016,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), gradeExpandRatio); BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), gradeExpandRatio);
// actualIncome = 业绩 * 等级扩展比例 // actualIncome = 业绩 * 等级扩展比例
BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio); 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); BigDecimal expandIncome = ComputeUtil.computeAdd(ComputeUtil.computeAdd(cuMemberBonus.getRepurExpandIncome(), actualIncome), weekRepExpandIncome);

View File

@ -683,26 +683,12 @@
from sa_order_items soi from sa_order_items soi
where soi.pk_order = so.pk_id where soi.pk_order = so.pk_id
and soi.del_flag = 0 and soi.del_flag = 0
and soi.pk_product != 0
and soi.order_status in and soi.order_status in
<foreach collection="statusList" item="item" open="(" close=")" separator=","> <foreach collection="statusList" item="item" open="(" close=")" separator=",">
#{item} #{item}
</foreach> </foreach>
) )
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
<foreach collection="statusList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
)
) )
</select> </select>