新代理政策-calculatorPolicyTarget 单个参数引用逻辑修改
This commit is contained in:
parent
95e5fffe0c
commit
c2bd8860b8
@ -105,7 +105,7 @@ public class BdTeamMemberDetailQryExe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取所有区域的政策配置
|
// 获取所有区域的政策配置
|
||||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(
|
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||||
teamBillCycles.stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet()));
|
teamBillCycles.stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet()));
|
||||||
|
|
||||||
List<BdIncomeDetailCO> incomeDetails = new ArrayList<>();
|
List<BdIncomeDetailCO> incomeDetails = new ArrayList<>();
|
||||||
@ -120,7 +120,7 @@ public class BdTeamMemberDetailQryExe {
|
|||||||
teamBillCycle.getTeamId(), teamBillCycle.getBillBelong());
|
teamBillCycle.getTeamId(), teamBillCycle.getBillBelong());
|
||||||
|
|
||||||
BdIncomeDetailCO incomeDetail = buildIncomeDetail(
|
BdIncomeDetailCO incomeDetail = buildIncomeDetail(
|
||||||
teamBillCycle, teamMemberTargets, regionPolicyMap.get(teamBillCycle.getRegion()));
|
teamBillCycle, teamMemberTargets, regionPolicyMap);
|
||||||
|
|
||||||
incomeDetails.add(incomeDetail);
|
incomeDetails.add(incomeDetail);
|
||||||
}
|
}
|
||||||
@ -184,7 +184,7 @@ public class BdTeamMemberDetailQryExe {
|
|||||||
.flatMap(List::stream)
|
.flatMap(List::stream)
|
||||||
.map(TeamBillCycle::getRegion)
|
.map(TeamBillCycle::getRegion)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(allRegions);
|
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(allRegions);
|
||||||
|
|
||||||
// 按周期构建收入明细
|
// 按周期构建收入明细
|
||||||
List<BdIncomeDetailCO> incomeDetails = new ArrayList<>();
|
List<BdIncomeDetailCO> incomeDetails = new ArrayList<>();
|
||||||
@ -222,7 +222,7 @@ public class BdTeamMemberDetailQryExe {
|
|||||||
private BdIncomeDetailCO buildIncomeDetail(
|
private BdIncomeDetailCO buildIncomeDetail(
|
||||||
TeamBillCycle teamBillCycle,
|
TeamBillCycle teamBillCycle,
|
||||||
List<TeamMemberTarget> teamMemberTargets,
|
List<TeamMemberTarget> teamMemberTargets,
|
||||||
TeamPolicyManager policy) {
|
Map<String, TeamPolicyManager> policyManagerMap) {
|
||||||
|
|
||||||
BdIncomeDetailCO incomeDetail = new BdIncomeDetailCO();
|
BdIncomeDetailCO incomeDetail = new BdIncomeDetailCO();
|
||||||
|
|
||||||
@ -243,6 +243,10 @@ public class BdTeamMemberDetailQryExe {
|
|||||||
// 计算每个成员的政策目标数据
|
// 计算每个成员的政策目标数据
|
||||||
List<TeamBillMemberTarget> memberTargetList = new ArrayList<>();
|
List<TeamBillMemberTarget> memberTargetList = new ArrayList<>();
|
||||||
for (TeamMemberTarget target : teamMemberTargets) {
|
for (TeamMemberTarget target : teamMemberTargets) {
|
||||||
|
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
|
policyManagerMap,
|
||||||
|
target.getRegion(),
|
||||||
|
target.getCountryCode());
|
||||||
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
||||||
memberTargetList.add(teamBillMemberTarget);
|
memberTargetList.add(teamBillMemberTarget);
|
||||||
}
|
}
|
||||||
@ -328,9 +332,12 @@ public class BdTeamMemberDetailQryExe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 计算team收入
|
// 计算team收入
|
||||||
TeamPolicyManager policy = regionPolicyMap.get(bill.getRegion());
|
|
||||||
List<TeamBillMemberTarget> memberTargetList = new ArrayList<>();
|
List<TeamBillMemberTarget> memberTargetList = new ArrayList<>();
|
||||||
for (TeamMemberTarget target : teamMemberTargets) {
|
for (TeamMemberTarget target : teamMemberTargets) {
|
||||||
|
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
|
regionPolicyMap,
|
||||||
|
target.getRegion(),
|
||||||
|
target.getCountryCode());
|
||||||
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
||||||
memberTargetList.add(teamBillMemberTarget);
|
memberTargetList.add(teamBillMemberTarget);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,7 +98,7 @@ public class TeamBillQryExe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取所有区域的政策配置
|
// 获取所有区域的政策配置
|
||||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(
|
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||||
teamBillCycles.stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet())
|
teamBillCycles.stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet())
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -120,13 +120,14 @@ public class TeamBillQryExe {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取该区域的政策配置
|
|
||||||
TeamPolicyManager policy = regionPolicyMap.get(teamBillCycle.getRegion());
|
|
||||||
|
|
||||||
// 累计所有成员的数据
|
// 累计所有成员的数据
|
||||||
List<TeamBillMemberTarget> memberTargetList = Lists.newArrayList();
|
List<TeamBillMemberTarget> memberTargetList = Lists.newArrayList();
|
||||||
|
|
||||||
for (TeamMemberTarget target : teamMemberTargets) {
|
for (TeamMemberTarget target : teamMemberTargets) {
|
||||||
|
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
|
regionPolicyMap,
|
||||||
|
target.getRegion(),
|
||||||
|
target.getCountryCode());
|
||||||
// 计算每个成员的政策目标数据
|
// 计算每个成员的政策目标数据
|
||||||
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
||||||
memberTargetList.add(teamBillMemberTarget);
|
memberTargetList.add(teamBillMemberTarget);
|
||||||
|
|||||||
@ -198,7 +198,7 @@ public class TeamMemberWorkQryExe {
|
|||||||
TeamPolicyManager policy) {
|
TeamPolicyManager policy) {
|
||||||
|
|
||||||
if (Objects.isNull(policy.getPolicyType()) || Objects.equals("MONEY", policy.getPolicyType())) {
|
if (Objects.isNull(policy.getPolicyType()) || Objects.equals("MONEY", policy.getPolicyType())) {
|
||||||
return TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
// return TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
|
||||||
}
|
}
|
||||||
|
|
||||||
BillDiamondBalance billDiamondBalance = billDiamondBalanceService.getEntityByBillBelongAndUserId(target.getSysOrigin(), target.getBillBelong(), target.getUserId());
|
BillDiamondBalance billDiamondBalance = billDiamondBalanceService.getEntityByBillBelongAndUserId(target.getSysOrigin(), target.getBillBelong(), target.getUserId());
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.red.circle.other.app.listener.team;
|
package com.red.circle.other.app.listener.team;
|
||||||
|
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import com.alibaba.nacos.shaded.com.google.common.base.Throwables;
|
import com.alibaba.nacos.shaded.com.google.common.base.Throwables;
|
||||||
import com.red.circle.common.business.core.enums.ReceiptType;
|
import com.red.circle.common.business.core.enums.ReceiptType;
|
||||||
import com.red.circle.component.mq.MessageEventProcess;
|
import com.red.circle.component.mq.MessageEventProcess;
|
||||||
@ -52,10 +53,7 @@ import com.red.circle.wallet.inner.model.enums.GoldOrigin;
|
|||||||
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
|
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.Comparator;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -154,8 +152,9 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TeamPolicyManager policyManager = getReleaseByRegionAndType(teamProfile);
|
// 获取所有区域的政策配置
|
||||||
if (Objects.isNull(policyManager)) {
|
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamProfile.getRegion()));
|
||||||
|
if (MapUtil.isEmpty(regionPolicyMap)) {
|
||||||
// [满足政策的团队工资实时发送]该团队没有区域政策
|
// [满足政策的团队工资实时发送]该团队没有区域政策
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -183,9 +182,13 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TeamPolicyManager policyManager = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
|
regionPolicyMap,
|
||||||
|
memberTarget.getRegion(),
|
||||||
|
memberTarget.getCountryCode());
|
||||||
|
|
||||||
// 计算工资与等级
|
// 计算工资与等级
|
||||||
TeamBillMemberTarget billTarget = TeamBillCycleUtils
|
TeamBillMemberTarget billTarget = TeamBillCycleUtils.calculatorPolicyTarget(memberTarget, policyManager);
|
||||||
.calculatorPolicyTarget(memberTarget, policyManager);
|
|
||||||
if (Objects.isNull(billTarget)) {
|
if (Objects.isNull(billTarget)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -558,25 +561,6 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
|
|||||||
.listByBillBelong(billCycle.getTeamId(), billCycle.getBillBelong());
|
.listByBillBelong(billCycle.getTeamId(), billCycle.getBillBelong());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得区域政策.
|
|
||||||
*/
|
|
||||||
private TeamPolicyManager getReleaseByRegionAndType(TeamProfile teamProfile) {
|
|
||||||
|
|
||||||
TeamPolicyManager manager = teamPolicyManagerService.getReleaseByRegionAndType(
|
|
||||||
teamProfile.getSysOrigin(), teamProfile.getRegion());
|
|
||||||
|
|
||||||
if (Objects.isNull(manager)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(manager.getPolicy())) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return manager;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得达标的最大一级政策.
|
* 获得达标的最大一级政策.
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.red.circle.other.app.listener.team;
|
package com.red.circle.other.app.listener.team;
|
||||||
|
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.red.circle.common.business.core.enums.ReceiptType;
|
import com.red.circle.common.business.core.enums.ReceiptType;
|
||||||
@ -62,10 +63,7 @@ import com.red.circle.wallet.inner.model.dto.UserSalaryDiamondRunningWaterDTO;
|
|||||||
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
|
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.Comparator;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -152,12 +150,11 @@ public class TeamSalaryPaymentListener implements MessageListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TeamPolicyManager policyManager = getReleaseByRegionAndType(teamProfile);
|
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamProfile.getRegion()));
|
||||||
if (Objects.isNull(policyManager)) {
|
if (MapUtil.isEmpty(regionPolicyMap)) {
|
||||||
// [满足政策的团队工资实时发送]该团队没有区域政策
|
// [满足政策的团队工资实时发送]该团队没有区域政策
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.warn("policyManager:"+ policyManager);
|
|
||||||
|
|
||||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(billCycle);
|
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(billCycle);
|
||||||
if (CollectionUtils.isEmpty(teamMemberTargets)) {
|
if (CollectionUtils.isEmpty(teamMemberTargets)) {
|
||||||
@ -178,6 +175,11 @@ public class TeamSalaryPaymentListener implements MessageListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TeamPolicyManager policyManager = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
|
regionPolicyMap,
|
||||||
|
memberTarget.getRegion(),
|
||||||
|
memberTarget.getCountryCode());
|
||||||
|
|
||||||
// 计算工资与等级
|
// 计算工资与等级
|
||||||
TeamBillMemberTarget billTarget = TeamBillCycleUtils
|
TeamBillMemberTarget billTarget = TeamBillCycleUtils
|
||||||
.calculatorPolicyTarget(memberTarget, policyManager);
|
.calculatorPolicyTarget(memberTarget, policyManager);
|
||||||
|
|||||||
@ -139,13 +139,17 @@ public class TeamSalaryRevokeListener implements MessageListener {
|
|||||||
|
|
||||||
isUpdateState.set(Boolean.TRUE);
|
isUpdateState.set(Boolean.TRUE);
|
||||||
|
|
||||||
TeamPolicyManager policyManager = mapPolicy.get(details.getTeamRegionId());
|
TeamMemberTarget target = getTeamMemberTarget(details.getMemberTargetId());
|
||||||
if (Objects.isNull(policyManager)) {
|
if (Objects.isNull(target) || CollectionUtils.isEmpty(target.getDailyTargets())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TeamMemberTarget target = getTeamMemberTarget(details.getMemberTargetId());
|
TeamPolicyManager policyManager = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
if (Objects.isNull(target) || CollectionUtils.isEmpty(target.getDailyTargets())) {
|
mapPolicy,
|
||||||
|
target.getRegion(),
|
||||||
|
target.getCountryCode());
|
||||||
|
|
||||||
|
if (Objects.isNull(policyManager)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,8 +157,7 @@ public class TeamSalaryRevokeListener implements MessageListener {
|
|||||||
deductOriginalTarget(new AtomicReference<>(notSubtract ? 0 : deductTarget), target);
|
deductOriginalTarget(new AtomicReference<>(notSubtract ? 0 : deductTarget), target);
|
||||||
|
|
||||||
// 根据团队政策 + 团队成员账单
|
// 根据团队政策 + 团队成员账单
|
||||||
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils
|
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policyManager);
|
||||||
.calculatorPolicyTarget(target, policyManager);
|
|
||||||
|
|
||||||
// 如果扣除退款目标后计算出来的等级依旧大于或等于发工资的等级,则不做处理
|
// 如果扣除退款目标后计算出来的等级依旧大于或等于发工资的等级,则不做处理
|
||||||
if (Objects.nonNull(billMemberTarget) && Objects.nonNull(billMemberTarget.getLevel())
|
if (Objects.nonNull(billMemberTarget) && Objects.nonNull(billMemberTarget.getLevel())
|
||||||
|
|||||||
@ -125,8 +125,10 @@ public class ListMemberWorkDecay {
|
|||||||
}
|
}
|
||||||
TeamProfile teamProfile = teamProfileMap.get(target.getTeamId());
|
TeamProfile teamProfile = teamProfileMap.get(target.getTeamId());
|
||||||
|
|
||||||
TeamPolicyManager regionPolicyManager =
|
TeamPolicyManager regionPolicyManager = TeamBillCycleUtils.getPolicyFromMap(
|
||||||
Objects.nonNull(teamProfile) ? policyManagerMap.get(teamProfile.getRegion()) : null;
|
policyManagerMap,
|
||||||
|
target.getRegion(),
|
||||||
|
target.getCountryCode());
|
||||||
|
|
||||||
TeamMemberWorkTargetDTO workTarget = new TeamMemberWorkTargetDTO()
|
TeamMemberWorkTargetDTO workTarget = new TeamMemberWorkTargetDTO()
|
||||||
.setAcceptGiftValue(target.sumAcceptGiftValue())
|
.setAcceptGiftValue(target.sumAcceptGiftValue())
|
||||||
@ -244,7 +246,7 @@ public class ListMemberWorkDecay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, TeamPolicyManager> getPolicyManagerMap(TeamMemberWorkQryCmd query) {
|
private Map<String, TeamPolicyManager> getPolicyManagerMap(TeamMemberWorkQryCmd query) {
|
||||||
return teamPolicyManagerService.mapRegionRelease(listSysRegionConfig(query.getSysOrigin()));
|
return teamPolicyManagerService.mapRegionReleaseWithCountry(listSysRegionConfig(query.getSysOrigin()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<String> listSysRegionConfig(String sysOrigin) {
|
private Set<String> listSysRegionConfig(String sysOrigin) {
|
||||||
|
|||||||
@ -194,7 +194,7 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
|||||||
String regionName = sysRegionConfigService.getRegionName(cmd.getRegion());
|
String regionName = sysRegionConfigService.getRegionName(cmd.getRegion());
|
||||||
|
|
||||||
// 获取团队区域政策
|
// 获取团队区域政策
|
||||||
Map<String, TeamPolicyManager> mapRegionPolicy = mapRegionPolicyManager(cmd);
|
Map<String, TeamPolicyManager> mapRegionPolicy = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(cmd.getRegion()));
|
||||||
|
|
||||||
// 团队信息
|
// 团队信息
|
||||||
Map<Long, TeamProfile> teamProfileMap =
|
Map<Long, TeamProfile> teamProfileMap =
|
||||||
@ -302,7 +302,10 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
|||||||
}
|
}
|
||||||
|
|
||||||
TeamPolicyManager teamPolicyManager = Objects.isNull(billCycle.getSettleResult())
|
TeamPolicyManager teamPolicyManager = Objects.isNull(billCycle.getSettleResult())
|
||||||
? mapRegionPolicy.get(billCycle.getRegion())
|
? TeamBillCycleUtils.getPolicyFromMap(
|
||||||
|
mapRegionPolicy,
|
||||||
|
target.getRegion(),
|
||||||
|
target.getCountryCode())
|
||||||
: teamInfraConvertor.toTeamPolicyManager(billCycle.getSettleResult().getPolicy());
|
: teamInfraConvertor.toTeamPolicyManager(billCycle.getSettleResult().getPolicy());
|
||||||
|
|
||||||
if (Objects.isNull(teamPolicyManager)) {
|
if (Objects.isNull(teamPolicyManager)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user