新代理政策-代理政策新增区域国家区分改造完成
This commit is contained in:
parent
c2bd8860b8
commit
b5eb179a10
@ -3,6 +3,9 @@ package com.red.circle.other.inner.model.dto.agency.agency;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@ -21,7 +24,7 @@ public class TeamBillSettleResultDTO implements Serializable {
|
||||
/**
|
||||
* 账单对应政策.
|
||||
*/
|
||||
private TeamPolicyManagerDTO policy;
|
||||
private Map<String, TeamPolicyManagerDTO> policy;
|
||||
|
||||
/**
|
||||
* 工作人数.
|
||||
|
||||
@ -239,7 +239,7 @@ public class BdTeamQryExe {
|
||||
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
|
||||
|
||||
// 5. 查询区域政策
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
billCycleMap.values().stream()
|
||||
.map(TeamBillCycle::getRegion)
|
||||
.collect(Collectors.toSet()));
|
||||
@ -357,7 +357,7 @@ public class BdTeamQryExe {
|
||||
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
|
||||
|
||||
// 4. 查询区域政策
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
billCycleMap.values().stream()
|
||||
.map(TeamBillCycle::getRegion)
|
||||
.collect(Collectors.toSet()));
|
||||
@ -388,8 +388,8 @@ public class BdTeamQryExe {
|
||||
}
|
||||
|
||||
List<TeamMemberTarget> targetList = teamMemberTargetMap.get(teamId);
|
||||
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
|
||||
targetList, policyManagerMap.get(billCycle.getRegion()));
|
||||
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
|
||||
targetList, policyManagerMap);
|
||||
|
||||
return ownTotalSalary(memberTargets);
|
||||
}
|
||||
|
||||
@ -228,7 +228,7 @@ public class BdTeamSummaryQryExe {
|
||||
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
|
||||
|
||||
// 查询区域政策
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
billCycleMap.values().stream()
|
||||
.map(TeamBillCycle::getRegion)
|
||||
.collect(Collectors.toSet()));
|
||||
@ -262,7 +262,7 @@ public class BdTeamSummaryQryExe {
|
||||
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
|
||||
|
||||
// 4. 查询区域政策
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
billCycleMap.values().stream()
|
||||
.map(TeamBillCycle::getRegion)
|
||||
.collect(Collectors.toSet()));
|
||||
@ -293,8 +293,8 @@ public class BdTeamSummaryQryExe {
|
||||
}
|
||||
|
||||
List<TeamMemberTarget> targetList = teamMemberTargetMap.get(teamId);
|
||||
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
|
||||
targetList, policyManagerMap.get(billCycle.getRegion()));
|
||||
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
|
||||
targetList, policyManagerMap);
|
||||
|
||||
return ownTotalSalary(memberTargets);
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ public class TeamBdMemberBillListQryExe {
|
||||
// 获取所有区域的政策配置
|
||||
Map<Long, TeamBillCycle> billCycleMap = teamBillCycleService.mapByTeamIds2(
|
||||
teamIdSet, currentBillBelong, TeamBillCycleStatus.UNPAID);
|
||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(
|
||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
billCycleMap.values().stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet()));
|
||||
|
||||
// 4. 查询当前周期的账单
|
||||
@ -284,7 +284,7 @@ public class TeamBdMemberBillListQryExe {
|
||||
Map<Long, TeamBillCycle> billCycleMap = teamBillCycleService.mapByTeamIds2(
|
||||
teamIdSet, currentBillBelong, TeamBillCycleStatus.UNPAID);
|
||||
|
||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(
|
||||
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
billCycleMap.values().stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet()));
|
||||
|
||||
// 4. 查询当前周期的账单
|
||||
@ -423,7 +423,7 @@ public class TeamBdMemberBillListQryExe {
|
||||
}
|
||||
|
||||
List<TeamMemberTarget> targetList = teamMemberTargetMap.get(teamId);
|
||||
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTarget(targetList, policyManagerMap.get(billCycle.getRegion()));
|
||||
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(targetList, policyManagerMap);
|
||||
return ownTotalSalary(memberTargets);
|
||||
}
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import com.red.circle.other.infra.common.props.PropsSendCommon;
|
||||
import com.red.circle.other.infra.database.mongo.dto.team.TeamBillMemberTarget;
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamBillCycle;
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMemberTarget;
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamPolicyManager;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.TeamBillCycleUtils;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.team.TeamBillCycleService;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberTargetService;
|
||||
@ -18,6 +19,8 @@ import com.red.circle.other.inner.model.cmd.material.PrizeDescribeRewardCmd;
|
||||
import com.red.circle.other.inner.asserts.team.TeamErrorCode;
|
||||
import com.red.circle.tool.core.collection.CollectionUtils;
|
||||
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -54,8 +57,13 @@ public class TeamPolicyPropsRewardExe {
|
||||
ResponseAssert.notNull(CommonErrorCode.RECEIVE_FAIL,
|
||||
teamBillCycle.getSettleResult().getPolicy());
|
||||
|
||||
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target,
|
||||
teamBillCycle.getSettleResult().getPolicy());
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamBillCycle.getSettleResult().getPolicy();
|
||||
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
|
||||
policyManagerMap,
|
||||
target.getRegion(),
|
||||
target.getCountryCode());
|
||||
|
||||
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target,policy);
|
||||
ResponseAssert.notNull(CommonErrorCode.RECEIVE_FAIL, billMemberTarget);
|
||||
ResponseAssert.isTrue(CommonErrorCode.RECEIVE_FAIL,
|
||||
CollectionUtils.isNotEmpty(billMemberTarget.getPropsRewards()));
|
||||
|
||||
@ -79,7 +79,6 @@ public class BdTeamAgentListQryExe {
|
||||
.setLastMonthBillDate(lastMonth)
|
||||
.setUserProfile(teamUserProfileMap.get(team.getAgentId()))
|
||||
.setBillBalance(getBillTotalSalary(billCycle))
|
||||
.setPolicyType(Objects.nonNull(billCycle.getSettleResult()) && Objects.nonNull(billCycle.getSettleResult().getPolicy().getPolicyType()) ? billCycle.getSettleResult().getPolicy().getPolicyType() : null)
|
||||
.setHostQuantity(getTeamHostQuantity(teamProfile))
|
||||
.setCreateTime(team.getCreateTime());
|
||||
})
|
||||
|
||||
@ -4,13 +4,21 @@ import com.red.circle.common.business.dto.cmd.app.AppIdLongCmd;
|
||||
import com.red.circle.framework.core.asserts.ResponseAssert;
|
||||
import com.red.circle.other.app.convertor.team.TeamAppConvertor;
|
||||
import com.red.circle.other.app.dto.clientobject.team.TeamPolicyManagerCO;
|
||||
import com.red.circle.other.app.service.user.user.UserProfileService;
|
||||
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
|
||||
import com.red.circle.other.domain.model.user.UserProfile;
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamPolicyManager;
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamProfile;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.TeamBillCycleUtils;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.team.TeamPolicyManagerService;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.team.TeamProfileService;
|
||||
import com.red.circle.other.inner.asserts.team.TeamErrorCode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 团队最新发布政策.
|
||||
*
|
||||
@ -23,16 +31,18 @@ public class TeamReleasePolicyQryExe {
|
||||
private final TeamAppConvertor teamAppConvertor;
|
||||
private final TeamProfileService teamProfileService;
|
||||
private final TeamPolicyManagerService teamPolicyManagerService;
|
||||
private final UserProfileGateway userProfileGateway;
|
||||
|
||||
public TeamPolicyManagerCO execute(AppIdLongCmd cmd) {
|
||||
TeamProfile teamProfile = teamProfileService.getById(cmd.getId());
|
||||
ResponseAssert.notNull(TeamErrorCode.TEAM_NOT_FOUND, teamProfile);
|
||||
|
||||
return teamAppConvertor.toTeamPolicyManagerCO(
|
||||
teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamProfile.getSysOrigin(),
|
||||
teamProfile.getRegion())
|
||||
);
|
||||
UserProfile userProfile = userProfileGateway.getByUserId(cmd.getReqUserId());
|
||||
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamProfile.getRegion()));
|
||||
TeamPolicyManager teamPolicyManager = TeamBillCycleUtils.getPolicyFromMap(policyManagerMap, teamProfile.getRegion(), userProfile.getCountryCode());
|
||||
|
||||
return teamAppConvertor.toTeamPolicyManagerCO(teamPolicyManager);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -179,48 +179,6 @@ public class GiftAnchorCountStrategy implements GiftStrategy {
|
||||
// });
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步团队钻石
|
||||
* @param teamIds
|
||||
*/
|
||||
private void initProfilesDiamond(Set<Long> teamIds, List<GiftAcceptUser> giftAcceptUsers) {
|
||||
List<TeamProfile> teamProfiles = teamProfileService.listStatusAvailable(teamIds);
|
||||
teamProfiles.forEach(teamProfile ->{
|
||||
TeamBillCycle teamBillCycle = getTeamUnpaidBill(teamProfile.getId());
|
||||
|
||||
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(), teamBillCycle.getRegion()
|
||||
);
|
||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
|
||||
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = calculatorTarget(teamMemberTargets,
|
||||
regionPolicyManager);
|
||||
|
||||
// 实时更新修改用户账单钻石余额
|
||||
if (Objects.equals(TeamPolicyTypeEnum.SALARY_DIAMOND.name(), regionPolicyManager.getPolicyType())) {
|
||||
SysRegionConfig regionConfig = sysRegionConfigService.getById(teamBillCycle.getRegion());
|
||||
Map<String, String> metadata = getMetadata(regionConfig);
|
||||
boolean isOpenDailyAutoSalary = isOpenDailyAutoSalary(metadata);
|
||||
log.warn("实时更新钻石账单周期:" + teamBillCycle.getBillBelong() + ",数据:" + teamBillMemberTargets + "\n" +
|
||||
"实时更新钻石账单政策类型:" + regionPolicyManager.getPolicyType() + "\n" +
|
||||
"区域账单配置" + regionConfig);
|
||||
|
||||
List<Long> giftAcceptUser = giftAcceptUsers.stream()
|
||||
.filter(GiftAcceptUser::getAnchor)
|
||||
.map(GiftAcceptUser::getAcceptUserId)
|
||||
.collect(Collectors.toList());
|
||||
giftAcceptUser.add(teamProfile.getOwnUserId());
|
||||
if (Boolean.TRUE.equals(isOpenDailyAutoSalary)) {
|
||||
// 钻石日结,暂时这样写
|
||||
List<TeamBillMemberTarget> teamBillMemberDayTargets = calculatorDayTarget(teamMemberTargets,
|
||||
regionPolicyManager);
|
||||
addDayBillDiamondBalance(teamBillMemberDayTargets, teamProfile, teamBillCycle, giftAcceptUser);
|
||||
} else {
|
||||
addBillDiamondBalance(teamBillMemberTargets, teamProfile, teamBillCycle, giftAcceptUser);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入账单数据
|
||||
@ -504,23 +462,6 @@ public class GiftAnchorCountStrategy implements GiftStrategy {
|
||||
.map(SysRegionConfig::getMetadata).orElseGet(CollectionUtils::newHashMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算政策目标工资
|
||||
*/
|
||||
private List<TeamBillMemberTarget> calculatorTarget(List<TeamMemberTarget> teamMemberTargets,
|
||||
TeamPolicyManager regionPolicyManager) {
|
||||
//2fun新增钻石政策
|
||||
if (Objects.isNull(regionPolicyManager.getPolicyType()) || Objects.equals("MONEY", regionPolicyManager.getPolicyType())) {
|
||||
return TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
|
||||
}
|
||||
|
||||
return TeamBillCycleUtils.calculatorPolicyDiamondTarget(teamMemberTargets, regionPolicyManager);
|
||||
}
|
||||
|
||||
private List<TeamBillMemberTarget> calculatorDayTarget(List<TeamMemberTarget> teamMemberTargets,
|
||||
TeamPolicyManager regionPolicyManager) {
|
||||
return TeamBillCycleUtils.calculatorPolicyDiamondDayTarget(teamMemberTargets, regionPolicyManager);
|
||||
}
|
||||
|
||||
private List<TeamProfile> listTeamProfile(TeamSalaryCountEvent event) {
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.red.circle.other.app.listener.team;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.red.circle.common.business.core.enums.ReceiptType;
|
||||
import com.red.circle.component.mq.MessageEventProcess;
|
||||
import com.red.circle.component.mq.MessageEventProcessDescribe;
|
||||
@ -130,13 +131,10 @@ public class TeamBillSettleListener implements MessageListener {
|
||||
|
||||
public TeamBillSettleResult processBill(TeamProfile teamProfile, TeamBillCycle teamBillCycle, Boolean isPay) {
|
||||
// 获取团队区域政策
|
||||
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(),
|
||||
teamBillCycle.getRegion()
|
||||
);
|
||||
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamBillCycle.getRegion()));
|
||||
log.warn("团队账单结算regionPolicyManager."+regionPolicyManager);
|
||||
|
||||
if (Objects.isNull(regionPolicyManager)) {
|
||||
if (MapUtil.isEmpty(regionPolicyManager)) {
|
||||
teamBillCycleService.updateStatus(teamBillCycle.getId(), TeamBillCycleStatus.HANG_UP,
|
||||
new TeamRemark()
|
||||
.setRemarkId(IdWorkerUtils.getIdStr())
|
||||
@ -161,8 +159,7 @@ public class TeamBillSettleListener implements MessageListener {
|
||||
return null;
|
||||
}
|
||||
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets =
|
||||
TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(teamMemberTargets, regionPolicyManager);
|
||||
log.warn("团队账单结算teamBillMemberTargets."+teamBillMemberTargets);
|
||||
|
||||
teamMemberTargets = teamMemberTargets.stream().filter(e -> !Boolean.TRUE.equals(e.getHistory())).toList();
|
||||
@ -196,8 +193,6 @@ public class TeamBillSettleListener implements MessageListener {
|
||||
.setSettleResult(settleResult)
|
||||
);
|
||||
|
||||
if (Objects.isNull(regionPolicyManager.getPolicyType()) ||
|
||||
Objects.equals(TeamPolicyTypeEnum.MONEY.name(), regionPolicyManager.getPolicyType())) {
|
||||
log.warn("美金入账{}", teamProfile);
|
||||
// 成员入账
|
||||
teamMemberCreditedBankBalance(teamProfile
|
||||
@ -210,7 +205,6 @@ public class TeamBillSettleListener implements MessageListener {
|
||||
Objects.toString(teamBillCycle.getId()),
|
||||
settleResult,
|
||||
regionConfig);
|
||||
}
|
||||
return settleResult;
|
||||
}
|
||||
|
||||
|
||||
@ -212,7 +212,8 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Objects.isNull(billCycle.getSettleResult().getPolicy().getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY, billCycle.getSettleResult().getPolicy().getPolicyType())) {
|
||||
if (Objects.isNull(billTarget.getPolicyType()) ||
|
||||
Objects.equals(TeamPolicyTypeEnum.MONEY, billTarget.getPolicyType())) {
|
||||
// 发送团队成员美元工资
|
||||
memberBankBalancePayment(teamProfile, memberTarget, usd,
|
||||
memberTarget.sumAcceptGiftValue(),
|
||||
@ -259,7 +260,7 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Objects.isNull(billCycle.getSettleResult().getPolicy().getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY, billCycle.getSettleResult().getPolicy().getPolicyType())) {
|
||||
if (Objects.isNull(billTarget.getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY, billTarget.getPolicyType())) {
|
||||
// 发送团队成员工资
|
||||
memberBankBalancePayment(teamProfile, memberTarget, usd, surplusTarget, exchangeRatio,
|
||||
region.getMetadata());
|
||||
|
||||
@ -33,10 +33,7 @@ import com.red.circle.other.inner.model.cmd.team.TeamBillCmd;
|
||||
import com.red.circle.tool.core.collection.CollectionUtils;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import com.red.circle.tool.core.date.TimestampUtils;
|
||||
@ -107,8 +104,8 @@ public class TeamSalaryCountListener implements MessageListener {
|
||||
return;
|
||||
}
|
||||
|
||||
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(), teamBillCycle.getRegion()
|
||||
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
Set.of(teamBillCycle.getRegion())
|
||||
);
|
||||
|
||||
if (Objects.isNull(regionPolicyManager)) {
|
||||
@ -120,8 +117,8 @@ public class TeamSalaryCountListener implements MessageListener {
|
||||
|
||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
|
||||
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = calculatorTarget(teamMemberTargets,
|
||||
regionPolicyManager);
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(teamMemberTargets,
|
||||
regionPolicyManager);
|
||||
|
||||
// 结算账单.
|
||||
teamBillCycleService.updateSelective(new TeamBillCycle()
|
||||
@ -269,15 +266,6 @@ public class TeamSalaryCountListener implements MessageListener {
|
||||
return Objects.equals(metadata.get("openDailyAutoSalary"), "true");
|
||||
}
|
||||
|
||||
private List<TeamBillMemberTarget> calculatorTarget(List<TeamMemberTarget> teamMemberTargets,
|
||||
TeamPolicyManager regionPolicyManager) {
|
||||
//2fun新增钻石政策
|
||||
if (Objects.isNull(regionPolicyManager.getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY.name(), regionPolicyManager.getPolicyType())) {
|
||||
return TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
|
||||
}
|
||||
|
||||
return TeamBillCycleUtils.calculatorPolicyDiamondTarget(teamMemberTargets, regionPolicyManager);
|
||||
}
|
||||
|
||||
private List<TeamBillMemberTarget> calculatorDayTarget(List<TeamMemberTarget> teamMemberTargets,
|
||||
TeamPolicyManager regionPolicyManager) {
|
||||
|
||||
@ -237,7 +237,6 @@ public class TeamSalaryPaymentListener implements MessageListener {
|
||||
// 辅助:组装钻石工资辅助模型
|
||||
tmpBillMemberTarget = buildDiamondTmpBillMemberTarget(policy, billTarget);
|
||||
|
||||
log.warn("组装钻石工资辅助模型:{}\n{}", tmpBillMemberTarget, billCycle.getSettleResult().getPolicy().getPolicyType());
|
||||
log.warn("发送团队成员钻石工资:{}\n{}\n{}\n{}\n{}\n{}", teamProfile, memberTarget, region, policy, payment, billCycle);
|
||||
|
||||
// 发送团队成员钻石工资
|
||||
|
||||
@ -4,6 +4,9 @@ import com.red.circle.other.infra.database.mongo.entity.team.team.TeamPolicyMana
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@ -22,7 +25,7 @@ public class TeamBillSettleResult implements Serializable {
|
||||
/**
|
||||
* 账单对应政策.
|
||||
*/
|
||||
private TeamPolicyManager policy;
|
||||
private Map<String, TeamPolicyManager> policy;
|
||||
|
||||
/**
|
||||
* 工作人数.
|
||||
|
||||
@ -46,11 +46,7 @@ import com.red.circle.other.inner.model.cmd.team.TeamBillByConditionQryCmd;
|
||||
import com.red.circle.other.inner.model.cmd.team.TeamBillCycleBackQryCmd;
|
||||
import com.red.circle.other.inner.model.cmd.team.TeamCalculatorWorkCmd;
|
||||
import com.red.circle.other.inner.model.cmd.team.TeamMemberTargetResetCmd;
|
||||
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillAnchorStatisticsModelDTO;
|
||||
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillCycleDTO;
|
||||
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillSettleResultDTO;
|
||||
import com.red.circle.other.inner.model.dto.agency.agency.TeamCalculatorWorkResultDTO;
|
||||
import com.red.circle.other.inner.model.dto.agency.agency.TeamRemark;
|
||||
import com.red.circle.other.inner.model.dto.agency.agency.*;
|
||||
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
|
||||
import com.red.circle.tool.core.collection.CollectionUtils;
|
||||
import com.red.circle.tool.core.date.DateFormatConstant;
|
||||
@ -138,17 +134,14 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
||||
TeamBillCycle teamBillCycle = teamBillCycleService.getByBillId(param.getBillId());
|
||||
ResponseAssert.notNull(TeamErrorCode.BILL_DOES_NOT_EXIST, teamBillCycle);
|
||||
|
||||
TeamPolicyManager teamPolicyManager = Objects.nonNull(param.getPolicyId())
|
||||
? teamPolicyManagerService.getById(param.getPolicyId())
|
||||
: teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(),
|
||||
teamBillCycle.getRegion());
|
||||
ResponseAssert.notNull(TeamErrorCode.NOT_FOUND_RELEASE_POLICY, teamPolicyManager);
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamBillCycle.getRegion()));
|
||||
|
||||
ResponseAssert.notNull(TeamErrorCode.NOT_FOUND_RELEASE_POLICY, policyManagerMap);
|
||||
|
||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
|
||||
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
|
||||
teamMemberTargets, teamPolicyManager);
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
|
||||
teamMemberTargets, policyManagerMap);
|
||||
|
||||
return new TeamCalculatorWorkResultDTO()
|
||||
.setWorkMembers(
|
||||
@ -157,7 +150,8 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
||||
.setMemberSalary(sumMemberSalary(teamBillMemberTargets))
|
||||
.setOwnSalary(ownSalary(teamBillMemberTargets))
|
||||
.setTotalSalary(ownTotalSalary(teamBillMemberTargets))
|
||||
.setPolicyId(teamPolicyManager.getId());
|
||||
// .setPolicyId(teamPolicyManager.getId())
|
||||
;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -301,12 +295,11 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
||||
return model;
|
||||
}
|
||||
|
||||
TeamPolicyManager teamPolicyManager = Objects.isNull(billCycle.getSettleResult())
|
||||
? TeamBillCycleUtils.getPolicyFromMap(
|
||||
TeamPolicyManager teamPolicyManager = TeamBillCycleUtils.getPolicyFromMap(
|
||||
mapRegionPolicy,
|
||||
target.getRegion(),
|
||||
target.getCountryCode())
|
||||
: teamInfraConvertor.toTeamPolicyManager(billCycle.getSettleResult().getPolicy());
|
||||
target.getCountryCode());
|
||||
|
||||
|
||||
if (Objects.isNull(teamPolicyManager)) {
|
||||
return model;
|
||||
@ -438,7 +431,7 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
||||
|
||||
// 结算账单.
|
||||
vo.setSettleResult(new TeamBillSettleResultDTO()
|
||||
.setPolicy(teamInfraConvertor.toTeamPolicyManagerDTO(policyManager))
|
||||
// .setPolicy(teamInfraConvertor.toTeamPolicyManagerDTO(policyManager))
|
||||
.setWorkMembers(countWorkMembers(teamMemberTargets))
|
||||
.setFinishMembers(teamBillMemberTargets.size())
|
||||
.setMemberSalary(sumMemberSalary(teamBillMemberTargets))
|
||||
@ -587,7 +580,7 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
||||
Set<String> regionIds = getRegionIds(teamBillCycles);
|
||||
|
||||
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService
|
||||
.mapRegionRelease(regionIds);
|
||||
.mapRegionReleaseWithCountry(regionIds);
|
||||
|
||||
return teamBillCycles.stream().map(teamBillCycle -> {
|
||||
|
||||
@ -605,11 +598,11 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
|
||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
|
||||
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils
|
||||
.calculatorPolicyTarget(teamMemberTargets, policyManager);
|
||||
.calculatorPolicyTargetWithMap(teamMemberTargets, policyManagerMap);
|
||||
|
||||
// 结算账单.
|
||||
vo.setSettleResult(new TeamBillSettleResultDTO()
|
||||
.setPolicy(teamInfraConvertor.toTeamPolicyManagerDTO(policyManager))
|
||||
// .setPolicy(teamInfraConvertor.toTeamPolicyManager(policyManagerMap))
|
||||
.setWorkMembers(countWorkMembers(teamMemberTargets))
|
||||
.setFinishMembers(teamBillMemberTargets.size())
|
||||
.setMemberSalary(sumMemberSalary(teamBillMemberTargets))
|
||||
|
||||
@ -395,8 +395,8 @@ public class TeamProfileClientServiceImpl implements TeamProfileClientService {
|
||||
//teamBillCycleService.removeBatchByTeamId(List.of(oldTeamProfile.getId()));
|
||||
TeamBillCycle teamBillCycle = teamBillCycleService.getLatestByTeamId(cmd.getId());
|
||||
|
||||
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(), teamBillCycle.getRegion()
|
||||
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
Set.of(teamBillCycle.getRegion())
|
||||
);
|
||||
// 修改账单区域信息
|
||||
teamBillCycleService.updateSelective(new TeamBillCycle()
|
||||
|
||||
@ -33,6 +33,8 @@ import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@SpringBootTest(classes = OtherServiceApplication.class)
|
||||
@RunWith(SpringRunner.class)
|
||||
@ -107,14 +109,13 @@ public class TeamMonthBillTest {
|
||||
|
||||
|
||||
// 获取团队区域政策
|
||||
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(),
|
||||
teamBillCycle.getRegion()
|
||||
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(
|
||||
Set.of(teamBillCycle.getRegion())
|
||||
);
|
||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
|
||||
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets =
|
||||
TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
|
||||
TeamBillCycleUtils.calculatorPolicyTargetWithMap(teamMemberTargets, regionPolicyManager);
|
||||
|
||||
// 结算账单.
|
||||
TeamBillSettleResult settleResult = new TeamBillSettleResult()
|
||||
|
||||
@ -66,7 +66,7 @@ public class TeamSalaryExportTest {
|
||||
public void exportTeamSalaryToExcel() {
|
||||
try {
|
||||
// 1. 获取当前账单
|
||||
Integer billBelong = TeamBillCycleUtils.getCalcBillBelong();
|
||||
Integer billBelong = 20260116;
|
||||
log.info("当前账单: {}", billBelong);
|
||||
|
||||
// 2. 查询所有待结算的账单
|
||||
@ -103,13 +103,11 @@ public class TeamSalaryExportTest {
|
||||
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
|
||||
|
||||
// 获取团队区域政策
|
||||
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
|
||||
teamBillCycle.getSysOrigin(),
|
||||
teamBillCycle.getRegion()
|
||||
);
|
||||
Map<String, TeamPolicyManager> regionPolicyManager =
|
||||
teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamBillCycle.getRegion()));
|
||||
|
||||
// 计算成员目标
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
|
||||
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
|
||||
teamMemberTargets, regionPolicyManager);
|
||||
|
||||
// 收集成员明细数据
|
||||
@ -220,7 +218,7 @@ public class TeamSalaryExportTest {
|
||||
*/
|
||||
private List<TeamBillCycle> queryPendingBills(Integer billBelong) {
|
||||
Criteria criteria = Criteria.where("billBelong").lte(billBelong)
|
||||
.and("status").is(TeamBillCycleStatus.UNPAID);
|
||||
.and("_id").is(2011906992356577281L);
|
||||
|
||||
return mongoTemplate.find(
|
||||
Query.query(criteria),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user