diff --git a/rc-service/rc-service-other/other-application/pom.xml b/rc-service/rc-service-other/other-application/pom.xml
index c54b5320..453bb3c0 100644
--- a/rc-service/rc-service-other/other-application/pom.xml
+++ b/rc-service/rc-service-other/other-application/pom.xml
@@ -45,7 +45,6 @@
org.springframework.boot
spring-boot-starter-test
- test
diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/team/TeamBillSettleListener.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/team/TeamBillSettleListener.java
index bc69144f..6686f214 100644
--- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/team/TeamBillSettleListener.java
+++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/team/TeamBillSettleListener.java
@@ -13,24 +13,17 @@ import com.red.circle.mq.business.model.event.team.TeamBillSettleEvent;
import com.red.circle.mq.rocket.business.streams.TeamBillSettleSink;
import com.red.circle.other.infra.database.mongo.dto.team.TeamBillMemberTarget;
import com.red.circle.other.infra.database.mongo.dto.team.TeamBillSettleResult;
-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.entity.team.team.TeamProfile;
+import com.red.circle.other.infra.database.mongo.entity.team.team.*;
import com.red.circle.other.infra.database.mongo.entity.user.region.SysRegionConfig;
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;
-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.infra.database.mongo.service.team.team.*;
import com.red.circle.other.infra.database.mongo.service.user.region.SysRegionConfigService;
import com.red.circle.other.infra.database.rds.entity.team.BillDiamondBalance;
import com.red.circle.other.infra.database.rds.service.team.BillDiamondBalanceService;
-import com.red.circle.other.inner.enums.team.TeamPolicyTypeEnum;
+import com.red.circle.other.inner.endpoint.team.target.TeamProfileClient;
+import com.red.circle.other.inner.enums.team.*;
+import com.red.circle.other.inner.model.dto.agency.agency.TeamMemberDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamRemark;
-import com.red.circle.other.inner.enums.team.TeamBillCycleStatus;
-import com.red.circle.other.inner.enums.team.TeamMemberTargetSettlementResult;
-import com.red.circle.other.inner.enums.team.TeamMemberTargetStatus;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.LocalDateTimeUtils;
import com.red.circle.tool.core.date.TimestampUtils;
@@ -76,6 +69,7 @@ public class TeamBillSettleListener implements MessageListener {
private final SysRegionConfigService sysRegionConfigService;
private final UserBankBalanceClient userBankBalanceClient;
private final TeamMemberTargetService teamMemberTargetService;
+ private final TeamMemberService teamMemberService;
private final TeamPolicyManagerService teamPolicyManagerService;
private final UserBankRunningWaterClient userBankRunningWaterClient;
private final SalaryDiamondBalanceClient salaryDiamondBalanceClient;
@@ -158,6 +152,13 @@ public class TeamBillSettleListener implements MessageListener {
teamBillCycle.getBillBelong());
log.warn("团队账单结算teamMemberTargets."+teamMemberTargets);
+ teamMemberTargets.forEach(teamMemberTarget -> {
+ TeamMember teamMember = teamMemberService.getByMemberId(teamMemberTarget.getUserId());
+ if (Objects.nonNull(teamMember) && TeamMemberRole.OWN.eq(teamMember.getRole())) {
+ teamMemberTarget.setIsOwn(true);
+ }
+ });
+
List teamBillMemberTargets = calculatorTarget(teamMemberTargets,
regionPolicyManager);
log.warn("团队账单结算teamBillMemberTargets."+teamBillMemberTargets);
@@ -746,14 +747,9 @@ public class TeamBillSettleListener implements MessageListener {
}
private BigDecimal ownSalary(List teamBillMemberTargets) {
- BigDecimal ownSalaryTotal = teamBillMemberTargets.stream().map(TeamBillMemberTarget::getOwnSalary)
- .reduce(BigDecimal.ZERO, BigDecimal::add)
- .setScale(2, RoundingMode.DOWN);
- // 代理有工资时 +1份主播的工资(主播代理也是主播)
- if (ownSalaryTotal.compareTo(BigDecimal.ZERO) > 0 && CollectionUtils.isNotEmpty(teamBillMemberTargets)) {
- return ownSalaryTotal.add(teamBillMemberTargets.get(0).getMemberSalary());
- }
- return ownSalaryTotal;
+ return teamBillMemberTargets.stream().map(TeamBillMemberTarget::getOwnSalary)
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
+ .setScale(2, RoundingMode.DOWN);
}
private BigDecimal ownTotalSalary(List teamBillMemberTargets) {
diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/entity/team/team/TeamMemberTarget.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/entity/team/team/TeamMemberTarget.java
index 7bf0e7bd..10db288e 100644
--- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/entity/team/team/TeamMemberTarget.java
+++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/entity/team/team/TeamMemberTarget.java
@@ -51,6 +51,11 @@ public class TeamMemberTarget implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
private Long teamId;
+ /**
+ * 是否团队长
+ */
+ private Boolean isOwn;
+
/**
* 账单归属.
*/
diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/TeamBillCycleUtils.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/TeamBillCycleUtils.java
index 209ff82b..12c6a348 100644
--- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/TeamBillCycleUtils.java
+++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/TeamBillCycleUtils.java
@@ -176,9 +176,9 @@ public final class TeamBillCycleUtils {
resultTarget.setSatisfyLevel(Boolean.TRUE);
resultTarget.setPropsRewards(teamPolicy.getPropsRewards());
return resultTarget;
- } else if (acceptGiftValue >= policyGiftValue) {
+ } else if (acceptGiftValue >= policyGiftValue && !Boolean.TRUE.equals(target.getIsOwn())) {
resultTarget.setMemberSalary(teamPolicy.getMemberSalary().multiply(new BigDecimal("0.9")).setScale(2, RoundingMode.DOWN));
- resultTarget.setTotalSalary(teamPolicy.getMemberSalary());
+ resultTarget.setTotalSalary(teamPolicy.getMemberSalary().multiply(new BigDecimal("0.9")).setScale(2, RoundingMode.DOWN));
resultTarget.setLevel(teamPolicy.getLevel());
resultTarget.setSatisfyLevel(Boolean.TRUE);
resultTarget.setPropsRewards(teamPolicy.getPropsRewards());
diff --git a/rc-service/rc-service-other/other-start/src/test/java/TeamMonthBillTest.java b/rc-service/rc-service-other/other-start/src/test/java/TeamMonthBillTest.java
index 2897299d..7e9fec25 100644
--- a/rc-service/rc-service-other/other-start/src/test/java/TeamMonthBillTest.java
+++ b/rc-service/rc-service-other/other-start/src/test/java/TeamMonthBillTest.java
@@ -24,7 +24,7 @@ public class TeamMonthBillTest {
*/
@Test
public void processTeamBill() {
-// teamBillTask.processTeamMonthBillTest();
+ teamBillTask.processTeamMonthBillTest();
}
/**
@@ -32,8 +32,8 @@ public class TeamMonthBillTest {
*/
@Test
public void testListener() {
- Long teamId = 1960260858980765698L;
-// teamBillSettleListener.processBillTest(teamId);
+ Long teamId = 1963841774709805058L;
+ teamBillSettleListener.processBillTest(teamId);
}
}