## 领导奖获取月新増业绩改为当期减上月最后一期;

This commit is contained in:
cabbage 2025-04-19 09:21:08 +08:00
parent e20142917c
commit fd310590bf
5 changed files with 39 additions and 46 deletions

View File

@ -806,13 +806,11 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
*
* @param settleTableName 当天结算表
* @param settleTableNameMonthLast 上月最后一天结算表
* @param cuMemberMonth 当月月业绩表
* @param pkMemberList 查询奖衔会员
* @return
*/
List<CuMemberSettleExt> listMemberMonthAssess(@Param("settleTableName") String settleTableName,
@Param("settleTableNameMonthLast") String settleTableNameMonthLast,
@Param("cuMemberMonth") String cuMemberMonth,
@Param("pkMemberList") List<?> pkMemberList);
}

View File

@ -299,11 +299,10 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
*
* @param settleTableName 当天结算表
* @param settleTableNameMonthLast 上月最后一天结算表
* @param cuMemberMonth 当月月业绩表
* @param pkMemberList 查询奖衔会员
* @return
*/
List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, String cuMemberMonth, List<Long> pkMemberList);
List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, List<Long> pkMemberList);
/**
* 批量根据量奖信息查询会员结算表中的父级血缘数据

View File

@ -429,14 +429,14 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
}
@Override
public List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, String cuMemberMonth, List<Long> pkMemberList) {
public List<CuMemberSettleExt> listMemberMonthAssess(String settleTableName, String settleTableNameMonthLast, List<Long> pkMemberList) {
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
if (CollectionUtil.isEmpty(pkMemberList)) {
return cuMemberSettleExtList;
}
List<List<?>> listList = cuMemberBonusSettle.handleCutList(pkMemberList, MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
listList.forEach(list ->
cuMemberSettleExtList.addAll(baseMapper.listMemberMonthAssess(settleTableName, settleTableNameMonthLast, cuMemberMonth, list)));
cuMemberSettleExtList.addAll(baseMapper.listMemberMonthAssess(settleTableName, settleTableNameMonthLast, list)));
return cuMemberSettleExtList;
}

View File

@ -706,7 +706,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
Map<Long, CuMemberAssess> cuMemberAssessMap = new HashMap<>();
// TODO new 新逻辑没有复购考核根据上月结余判断大小区然后判断本月小区新増业绩来判断拿几代
// 奖衔会员能拿几代领导奖key:会员IDvalue:拿几代
// 奖衔会员能拿几代领导奖key:会员IDvalue:奖衔值+上月结余+本月新増
Map<Long, CuMemberSettleExt> cuMemberBonusNumMap = getCoachAwardsMemberMap(settleTableName, settleDateStr, cuMemberSettleExtList);
Map<Long, CuMemberSettleExt> bonusIdSettleMap = getMemberExpandBonus(cuMemberSettleExtMap);
@ -1191,7 +1191,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), gradeExpandRatio);
// actualIncome = 业绩 * 等级扩展比例
BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio);
log.info("首购. maxIncome: {}, actualIncome: {}", maxIncome, actualIncome);
log.info("首购. maxIncome: {}, gradeExpandRatio: {}; actualIncome: {}, countryExpandRatio: {}", maxIncome, gradeExpandRatio, actualIncome, countryExpandRatio);
// K值设置
if (riskControlMap.containsKey(cuMemberBonus.getPkMember())) {
@ -1424,6 +1424,36 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
recordDetailVO.setCuMemberBonusDelayDetailList(cuMemberBonusDelayDetailList);
}
/**
* 获取奖衔会员各能拿多少代
*
* @param settleTableName 结算表
* @param settleDateStr 结算日期
* @param cuMemberSettleExtList
*/
private Map<Long, CuMemberSettleExt> getCoachAwardsMemberMap(String settleTableName, String settleDateStr, List<CuMemberSettleExt> cuMemberSettleExtList) {
// 奖衔会员能拿几代领导奖key:会员IDvalue:奖衔值+上月结余+本月新増
Map<Long, CuMemberSettleExt> cuMemberBonusNumMap = new HashMap<>();
// 拓展收益血缘上会员ID
List<Long> pkAwardsMemberList = cuMemberSettleExtList.stream().map(CuMemberSettleExt::getPkMember).distinct().collect(Collectors.toList());
Date settleDate = DateUtils.parseStringToDate(settleDateStr);
// 之前月份的最后一期
Integer monthLastPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.beforeMonthLastDateStr(settleDate)).getPkId();
String settleTableNameMonthLast = TableNameConstants.CU_MEMBER_SETTLE + monthLastPeriod;
// TODO new 有奖衔的会员本月左右区新増上月最后一期左右区结余需要确保上月最后一期日结表存在
List<CuMemberSettleExt> awardsMemberSettleList = iCuMemberTreeService.listMemberMonthAssess(settleTableName, settleTableNameMonthLast, pkAwardsMemberList);
if (CollectionUtil.isNotEmpty(awardsMemberSettleList)) {
for (CuMemberSettleExt tmpCuMemberSettleExt : awardsMemberSettleList) {
cuMemberBonusNumMap.put(tmpCuMemberSettleExt.getPkMember(), tmpCuMemberSettleExt);
}
}
return cuMemberBonusNumMap;
}
/**
* 处理当天没有奖金的延缓发放
*/
@ -1527,39 +1557,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
}
}
/**
* 获取奖衔会员各能拿多少代
*
* @param settleTableName 结算表
* @param settleDateStr 结算日期
* @param cuMemberSettleExtList
*/
private Map<Long, CuMemberSettleExt> getCoachAwardsMemberMap(String settleTableName, String settleDateStr, List<CuMemberSettleExt> cuMemberSettleExtList) {
// 奖衔会员能拿几代领导奖key:会员IDvalue:奖衔值
Map<Long, CuMemberSettleExt> cuMemberBonusNumMap = new HashMap<>();
// 拓展收益血缘上会员ID
List<Long> pkAwardsMemberList = cuMemberSettleExtList.stream().map(CuMemberSettleExt::getPkMember).distinct().collect(Collectors.toList());
Date settleDate = DateUtils.parseStringToDate(settleDateStr);
// 之前月份的最后一期
Integer monthLastPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.beforeMonthLastDateStr(settleDate)).getPkId();
String settleTableNameMonthLast = TableNameConstants.CU_MEMBER_SETTLE + monthLastPeriod;
// 当前月表
String cuMemberMonth = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(settleDateStr);
// TODO new 有奖衔的会员本月左右区新増上月最后一期左右区结余需要确保上月最后一期日结表存在结算月表存在
List<CuMemberSettleExt> awardsMemberSettleList = iCuMemberTreeService.listMemberMonthAssess(settleTableName, settleTableNameMonthLast, cuMemberMonth, pkAwardsMemberList);
if (CollectionUtil.isNotEmpty(awardsMemberSettleList)) {
for (CuMemberSettleExt tmpCuMemberSettleExt : awardsMemberSettleList) {
cuMemberBonusNumMap.put(tmpCuMemberSettleExt.getPkMember(), tmpCuMemberSettleExt);
}
}
return cuMemberBonusNumMap;
}
/**
* 获取领导奖实际的奖衔值
*

View File

@ -2307,13 +2307,14 @@
order by t.pk_member
</select>
<!-- 有奖衔的会员,本月左右区新増,上月最后一期左右区结余 -->
<!-- 有奖衔的会员,上月最后一期左右区结余,本月左右区新増 -->
<!-- 当期的 首购累计 + 复购累计 - 上月最后一期首购累计 - 上月最后一期复购累计 -->
<select id="listMemberMonthAssess" resultType="com.hzs.common.domain.member.ext.CuMemberSettleExt">
select t.*,
nvl(cms.a_balance, 0) a_balance,
nvl(cms.b_balance, 0) b_balance,
nvl(cmm.a_sum_pv, 0) + nvl(cmm.rep_a_sum_pv, 0) a_sum_pv,
nvl(cmm.b_sum_pv, 0) + nvl(cmm.rep_b_sum_pv, 0) b_sum_pv
nvl(t.a_sum_pv, 0) + nvl(t.rep_a_sum_pv, 0) - nvl(cms.a_sum_pv, 0) - nvl(cms.rep_a_sum_pv, 0) a_sum_pv,
nvl(t.b_sum_pv, 0) + nvl(t.rep_b_sum_pv, 0) - nvl(cms.b_sum_pv, 0) - nvl(cms.rep_b_sum_pv, 0) b_sum_pv
from (
select cms.*, ba.awards_value
from (select cms.pk_member, cms.pk_awards
@ -2329,8 +2330,6 @@
) t
left join ${settleTableNameMonthLast} cms
on cms.pk_member = t.pk_member
left join ${cuMemberMonth} cmm
on cmm.pk_member = t.pk_member
</select>
</mapper>