teamMembers优化

This commit is contained in:
tianfeng 2025-09-25 20:32:34 +08:00
parent 19988d179e
commit 7654f728af
4 changed files with 15 additions and 25 deletions

View File

@ -1,7 +1,6 @@
package com.red.circle.other.app.command.team.query;
import com.google.common.collect.Lists;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.common.business.dto.cmd.app.AppIdLongCmd;
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
import com.red.circle.other.app.dto.clientobject.team.TeamMemberCO;
@ -10,8 +9,6 @@ import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMember;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMemberTarget;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberService;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberTargetService;
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.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
@ -21,7 +18,6 @@ import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import com.red.circle.wallet.inner.endpoint.diamond.SalaryDiamondRunningWaterClient;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@ -38,8 +34,6 @@ public class TeamMemberListQryExe {
private final UserProfileGateway userProfileGateway;
private final UserProfileAppConvertor userProfileAppConvertor;
private final TeamMemberTargetService teamMemberTargetService;
private final BillDiamondBalanceService billDiamondBalanceService;
private final SalaryDiamondRunningWaterClient salaryDiamondRunningWaterClient;
public List<TeamMemberCO> execute(AppIdLongCmd cmd) {
@ -57,16 +51,12 @@ public class TeamMemberListQryExe {
Map<Long, TeamMemberTarget> teamMemberTargetMap = teamMemberTargetService.mapMemberBillTarget(
cmd.getId(), memberUserIds, ZonedDateTimeAsiaRiyadhUtils.nowYearMonthToInt());
Map<Long, Long> diamondMap = CollectionUtils.isNotEmpty(memberUserIds) ?
salaryDiamondRunningWaterClient.getDiamondByUserIds(memberUserIds.stream().toList()).getBody() : new HashMap<>();
List<TeamMemberCO> teamMemberCOs = teamMembers.stream().map(teamMember -> new TeamMemberCO()
.setId(teamMember.getMemberId())
.setUserProfile(userProfileMap.get(teamMember.getMemberId()))
.setTargetFormat(Optional.ofNullable(teamMemberTargetMap.get(teamMember.getMemberId()))
.map(target -> NumUtils.formatLong(target.sumAcceptGiftValue()))
.orElse("0"))
.setDiamondFormat(NumUtils.formatLong(diamondMap.get(teamMember.getMemberId())))
.setTimeHours(Optional.ofNullable(teamMemberTargetMap.get(teamMember.getMemberId()))
.map(target -> BigDecimal.valueOf(target.sumAllTargetTime())
.divide(BigDecimal.valueOf(60), 2, RoundingMode.DOWN)
@ -82,21 +72,6 @@ public class TeamMemberListQryExe {
teamMember.getWalletWithdrawal(), Boolean.TRUE))
.setCreateTime(teamMember.getCreateTime())
).collect(Collectors.toList());
teamMemberCOs.forEach(item -> {
TeamMemberTarget target = teamMemberTargetMap.get(item.getId());
if (Objects.nonNull(target)) {
// 查询钻石账单表信息
BillDiamondBalance billDiamondBalance = billDiamondBalanceService.getEntityByBillBelongAndUserId(SysOriginPlatformEnum.TARAB.name(), target.getBillBelong(), item.getId());
if (Objects.nonNull(billDiamondBalance)) {
item.setUseDiamonds(billDiamondBalance.getConsumptionPoints().setScale(0, RoundingMode.DOWN) + "");
item.setSurplusDiamonds(billDiamondBalance.getBalance().setScale(0, RoundingMode.DOWN) + "");
} else {
item.setUseDiamonds("0");
item.setSurplusDiamonds("0");
}
}
});
return teamMemberCOs;
}

View File

@ -30,6 +30,11 @@ public class TeamMemberCO extends ClientObject {
*/
private UserProfileDTO userProfile;
/**
* 主播数量
*/
private Long memberQuantity;
/**
* 目标.
*/

View File

@ -103,6 +103,11 @@ public interface TeamProfileService {
*/
TeamProfile getByOwnUserId(Long ownUserId);
/**
* 获取团队资料.
*/
List<TeamProfile> getByOwnUserIds(Set<Long> ownUserIds);
/**
* 获取团队资料列表.
*/

View File

@ -269,6 +269,11 @@ public class TeamProfileServiceImpl implements TeamProfileService {
.findOne(Query.query(Criteria.where("ownUserId").is(ownUserId)), TeamProfile.class);
}
@Override
public List<TeamProfile> getByOwnUserIds(Set<Long> ownUserIds) {
return mongoTemplate.find(Query.query(Criteria.where("ownUserId").in(ownUserIds)), TeamProfile.class);
}
@Override
public List<TeamProfile> listByIds(Set<Long> ids) {
return mongoTemplate.find(Query.query(Criteria.where("id").in(ids)), TeamProfile.class);