新代理政策-calculatorPolicyTarget 单个参数引用逻辑修改

This commit is contained in:
tianfeng 2026-02-03 15:52:20 +08:00
parent 95e5fffe0c
commit c2bd8860b8
8 changed files with 57 additions and 55 deletions

View File

@ -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()));
List<BdIncomeDetailCO> incomeDetails = new ArrayList<>();
@ -120,7 +120,7 @@ public class BdTeamMemberDetailQryExe {
teamBillCycle.getTeamId(), teamBillCycle.getBillBelong());
BdIncomeDetailCO incomeDetail = buildIncomeDetail(
teamBillCycle, teamMemberTargets, regionPolicyMap.get(teamBillCycle.getRegion()));
teamBillCycle, teamMemberTargets, regionPolicyMap);
incomeDetails.add(incomeDetail);
}
@ -184,7 +184,7 @@ public class BdTeamMemberDetailQryExe {
.flatMap(List::stream)
.map(TeamBillCycle::getRegion)
.collect(Collectors.toSet());
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(allRegions);
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(allRegions);
// 按周期构建收入明细
List<BdIncomeDetailCO> incomeDetails = new ArrayList<>();
@ -222,7 +222,7 @@ public class BdTeamMemberDetailQryExe {
private BdIncomeDetailCO buildIncomeDetail(
TeamBillCycle teamBillCycle,
List<TeamMemberTarget> teamMemberTargets,
TeamPolicyManager policy) {
Map<String, TeamPolicyManager> policyManagerMap) {
BdIncomeDetailCO incomeDetail = new BdIncomeDetailCO();
@ -243,6 +243,10 @@ public class BdTeamMemberDetailQryExe {
// 计算每个成员的政策目标数据
List<TeamBillMemberTarget> memberTargetList = new ArrayList<>();
for (TeamMemberTarget target : teamMemberTargets) {
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
policyManagerMap,
target.getRegion(),
target.getCountryCode());
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
memberTargetList.add(teamBillMemberTarget);
}
@ -328,9 +332,12 @@ public class BdTeamMemberDetailQryExe {
}
// 计算team收入
TeamPolicyManager policy = regionPolicyMap.get(bill.getRegion());
List<TeamBillMemberTarget> memberTargetList = new ArrayList<>();
for (TeamMemberTarget target : teamMemberTargets) {
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
regionPolicyMap,
target.getRegion(),
target.getCountryCode());
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
memberTargetList.add(teamBillMemberTarget);
}

View File

@ -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())
);
@ -120,13 +120,14 @@ public class TeamBillQryExe {
continue;
}
// 获取该区域的政策配置
TeamPolicyManager policy = regionPolicyMap.get(teamBillCycle.getRegion());
// 累计所有成员的数据
List<TeamBillMemberTarget> memberTargetList = Lists.newArrayList();
for (TeamMemberTarget target : teamMemberTargets) {
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
regionPolicyMap,
target.getRegion(),
target.getCountryCode());
// 计算每个成员的政策目标数据
TeamBillMemberTarget teamBillMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policy);
memberTargetList.add(teamBillMemberTarget);

View File

@ -198,7 +198,7 @@ public class TeamMemberWorkQryExe {
TeamPolicyManager policy) {
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());

View File

@ -1,5 +1,6 @@
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.red.circle.common.business.core.enums.ReceiptType;
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 java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -154,8 +152,9 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
return;
}
TeamPolicyManager policyManager = getReleaseByRegionAndType(teamProfile);
if (Objects.isNull(policyManager)) {
// 获取所有区域的政策配置
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamProfile.getRegion()));
if (MapUtil.isEmpty(regionPolicyMap)) {
// [满足政策的团队工资实时发送]该团队没有区域政策
return;
}
@ -183,9 +182,13 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
return;
}
TeamPolicyManager policyManager = TeamBillCycleUtils.getPolicyFromMap(
regionPolicyMap,
memberTarget.getRegion(),
memberTarget.getCountryCode());
// 计算工资与等级
TeamBillMemberTarget billTarget = TeamBillCycleUtils
.calculatorPolicyTarget(memberTarget, policyManager);
TeamBillMemberTarget billTarget = TeamBillCycleUtils.calculatorPolicyTarget(memberTarget, policyManager);
if (Objects.isNull(billTarget)) {
return;
}
@ -558,25 +561,6 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
.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;
}
/**
* 获得达标的最大一级政策.

View File

@ -1,5 +1,6 @@
package com.red.circle.other.app.listener.team;
import cn.hutool.core.map.MapUtil;
import com.google.common.base.Throwables;
import com.google.common.collect.Lists;
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 java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -152,12 +150,11 @@ public class TeamSalaryPaymentListener implements MessageListener {
return;
}
TeamPolicyManager policyManager = getReleaseByRegionAndType(teamProfile);
if (Objects.isNull(policyManager)) {
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamProfile.getRegion()));
if (MapUtil.isEmpty(regionPolicyMap)) {
// [满足政策的团队工资实时发送]该团队没有区域政策
return;
}
log.warn("policyManager:"+ policyManager);
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(billCycle);
if (CollectionUtils.isEmpty(teamMemberTargets)) {
@ -178,6 +175,11 @@ public class TeamSalaryPaymentListener implements MessageListener {
return;
}
TeamPolicyManager policyManager = TeamBillCycleUtils.getPolicyFromMap(
regionPolicyMap,
memberTarget.getRegion(),
memberTarget.getCountryCode());
// 计算工资与等级
TeamBillMemberTarget billTarget = TeamBillCycleUtils
.calculatorPolicyTarget(memberTarget, policyManager);

View File

@ -139,13 +139,17 @@ public class TeamSalaryRevokeListener implements MessageListener {
isUpdateState.set(Boolean.TRUE);
TeamPolicyManager policyManager = mapPolicy.get(details.getTeamRegionId());
if (Objects.isNull(policyManager)) {
TeamMemberTarget target = getTeamMemberTarget(details.getMemberTargetId());
if (Objects.isNull(target) || CollectionUtils.isEmpty(target.getDailyTargets())) {
return;
}
TeamMemberTarget target = getTeamMemberTarget(details.getMemberTargetId());
if (Objects.isNull(target) || CollectionUtils.isEmpty(target.getDailyTargets())) {
TeamPolicyManager policyManager = TeamBillCycleUtils.getPolicyFromMap(
mapPolicy,
target.getRegion(),
target.getCountryCode());
if (Objects.isNull(policyManager)) {
return;
}
@ -153,8 +157,7 @@ public class TeamSalaryRevokeListener implements MessageListener {
deductOriginalTarget(new AtomicReference<>(notSubtract ? 0 : deductTarget), target);
// 根据团队政策 + 团队成员账单
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils
.calculatorPolicyTarget(target, policyManager);
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target, policyManager);
// 如果扣除退款目标后计算出来的等级依旧大于或等于发工资的等级,则不做处理
if (Objects.nonNull(billMemberTarget) && Objects.nonNull(billMemberTarget.getLevel())

View File

@ -125,8 +125,10 @@ public class ListMemberWorkDecay {
}
TeamProfile teamProfile = teamProfileMap.get(target.getTeamId());
TeamPolicyManager regionPolicyManager =
Objects.nonNull(teamProfile) ? policyManagerMap.get(teamProfile.getRegion()) : null;
TeamPolicyManager regionPolicyManager = TeamBillCycleUtils.getPolicyFromMap(
policyManagerMap,
target.getRegion(),
target.getCountryCode());
TeamMemberWorkTargetDTO workTarget = new TeamMemberWorkTargetDTO()
.setAcceptGiftValue(target.sumAcceptGiftValue())
@ -244,7 +246,7 @@ public class ListMemberWorkDecay {
}
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) {

View File

@ -194,7 +194,7 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
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 =
@ -302,7 +302,10 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
}
TeamPolicyManager teamPolicyManager = Objects.isNull(billCycle.getSettleResult())
? mapRegionPolicy.get(billCycle.getRegion())
? TeamBillCycleUtils.getPolicyFromMap(
mapRegionPolicy,
target.getRegion(),
target.getCountryCode())
: teamInfraConvertor.toTeamPolicyManager(billCycle.getSettleResult().getPolicy());
if (Objects.isNull(teamPolicyManager)) {