Compare commits

..

2 Commits

3 changed files with 57 additions and 11 deletions

View File

@ -563,8 +563,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
// 死点 停算收益 顾客 没有奖金 // 死点 停算收益 顾客 没有奖金
if (ECategory.NORMAL.getValue() != targetMember.getCategory() if (ECategory.NORMAL.getValue() != targetMember.getCategory()
|| EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()
|| EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) {
log.warn("直推收益:订单会员推荐人不满足计算奖金条件, memberCode: {}, category: {}, accountStatus: {}", targetMember.getMemberCode(), targetMember.getCategory(), targetMember.getAccountStatus()); // 非正常会员停止收益停算收益直接跳过
log.warn("直推收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode());
return; return;
} }
// 订单金额 // 订单金额
@ -616,8 +618,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
// 死点 停算收益 顾客 没有奖金 // 死点 停算收益 顾客 没有奖金
if (ECategory.NORMAL.getValue() != targetMember.getCategory() if (ECategory.NORMAL.getValue() != targetMember.getCategory()
|| EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()
|| EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) {
log.warn("见点收益:订单会员血缘上推荐人不满足计算奖金条件, memberCode: {}, category: {}, accountStatus: {}", targetMember.getMemberCode(), targetMember.getCategory(), targetMember.getAccountStatus()); // 非正常会员停止收益停算收益直接跳过
log.warn("见点收益:订单会员血缘上推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode());
return; return;
} }
pkParent = targetMember.getPkParent(); pkParent = targetMember.getPkParent();
@ -846,6 +850,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
giftPayTime = keyDate; giftPayTime = keyDate;
// 需要填充的直推会员 // 需要填充的直推会员
CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate); CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate);
if (ECategory.NORMAL.getValue() != targetMember.getCategory()
|| EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()
|| EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) {
// 非正常会员停止收益停算收益直接跳过
log.warn("阶段收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode());
continue;
}
// 推荐人一阶段子点位列表 // 推荐人一阶段子点位列表
LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = targetMember.getOneDetailMap(); LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = targetMember.getOneDetailMap();
if (CollectionUtil.isEmpty(parentDetailList)) { if (CollectionUtil.isEmpty(parentDetailList)) {
@ -894,6 +907,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
pkParent = targetMember.getPkParent(); pkParent = targetMember.getPkParent();
if (ECategory.NORMAL.getValue() != targetMember.getCategory()
|| EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()
|| EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) {
// 非正常会员停止收益停算收益直接跳过
log.warn("阶段收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode());
continue;
}
// 推荐人一阶段子点位列表 // 推荐人一阶段子点位列表
LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = null; LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = null;
if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) {
@ -1132,15 +1153,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
while (true) { while (true) {
// 推荐人 // 推荐人
CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent); CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent);
if (targetMember == null) { if (null == targetMember) {
break; break;
} }
// 推荐人的推荐人 // 推荐人的推荐人
pkParent = targetMember.getPkParent(); pkParent = targetMember.getPkParent();
if (ECategory.NORMAL.getValue() != targetMember.getCategory() if (ECategory.NORMAL.getValue() != targetMember.getCategory()
|| EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()) { || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()
// 非正常会员停止收益直接跳过 || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) {
// 非正常会员停止收益停算收益直接跳过
log.warn("领导奖或平级奖收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode());
continue; continue;
} }
// 当前会员奖衔值 // 当前会员奖衔值
@ -1155,8 +1178,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (calAwardsValue > beforeAwardsValue) { if (calAwardsValue > beforeAwardsValue) {
// 当前会员奖衔值大于前一个奖衔值会有领导奖级差 // 当前会员奖衔值大于前一个奖衔值会有领导奖级差
beforeRangeRatio = bdAwards.getRangeRatio().subtract(beforeRangeRatio); rangeBonusIncome = orderAchieve.multiply(bdAwards.getRangeRatio().subtract(beforeRangeRatio));
rangeBonusIncome = orderAchieve.multiply(beforeRangeRatio);
beforeRangeRatio = bdAwards.getRangeRatio();
beforeAwardsValue = calAwardsValue;
} else if (EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra < 3 } else if (EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra < 3
&& EOrderType.DISCOUNT_ORDER.getValue() != saOrderExt.getOrderType()) { && EOrderType.DISCOUNT_ORDER.getValue() != saOrderExt.getOrderType()) {
// 前一个等级是皇冠大使需要有3代平级五折专区不走平级收益 // 前一个等级是皇冠大使需要有3代平级五折专区不走平级收益
@ -1200,6 +1225,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
cuMemberBonusRangeList.add(sameLevelMemberBonusRange); cuMemberBonusRangeList.add(sameLevelMemberBonusRange);
} }
if (EOrderType.DISCOUNT_ORDER.getValue() != saOrderExt.getOrderType()
&& EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra >= 3) {
// 非五折专区有领导奖平级奖本次奖衔是最高并且已经拿满3次直接退回
break;
} else if (EOrderType.DISCOUNT_ORDER.getValue() == saOrderExt.getOrderType()
&& EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue) {
// 五折专区只有领导奖本次奖衔是最高直接退回
break;
}
} }
} }

View File

@ -22,6 +22,7 @@ import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.bonus.CuMemberBonus; import com.hzs.common.domain.member.bonus.CuMemberBonus;
import com.hzs.common.domain.member.bonus.CuMemberBonusRange;
import com.hzs.common.domain.member.ext.*; import com.hzs.common.domain.member.ext.*;
import com.hzs.common.domain.system.config.BdBonusItems; import com.hzs.common.domain.system.config.BdBonusItems;
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt; import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
@ -400,6 +401,15 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
// MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusRange, MemberBonusDetailSerVO.class); // MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusRange, MemberBonusDetailSerVO.class);
// memberBonusDetailSerVoS.add(memberBonusDetailVO); // memberBonusDetailSerVoS.add(memberBonusDetailVO);
// }); // });
} else if (EBonusItems.RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.SAME_LEVEL_INCOME.getValue() == bonusItemsValue) {
// 领导奖收益平级奖收益
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItemsForServer(bonusParam);
dataTable = getDataTable(cuMemberBonusRangeList);
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusRange, MemberBonusDetailSerVO.class);
memberBonusDetailSerVoS.add(memberBonusDetailVO);
});
} else if (EBonusItems.STAGE_INCOME.getValue() == bonusItemsValue) { } else if (EBonusItems.STAGE_INCOME.getValue() == bonusItemsValue) {
// 阶段收益 // 阶段收益
List<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusStageMapper.queryMemberBonusStageByBonusItemsFoServer(bonusParam); List<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusStageMapper.queryMemberBonusStageByBonusItemsFoServer(bonusParam);

View File

@ -161,9 +161,10 @@
where so.del_flag = 0 where so.del_flag = 0
) so ) so
inner join ( inner join (
select select cb.pk_member, cr.pk_order, cb.period, cb.pk_country, cr.pk_bonus_items,
cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status,cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income, cr.income_status, cr.cal_achieve, cr.remark,
cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio cr.pretax_income, cr.income_tax, cr.real_income,
cr.income_ratio, cr.income_dial_ratio, cr.order_dial_ratio
from cu_member_bonus cb from cu_member_bonus cb
inner join CU_MEMBER_BONUS_RANGE cr inner join CU_MEMBER_BONUS_RANGE cr
on cb.pk_id = cr.pk_bonus on cb.pk_id = cr.pk_bonus