家族会员列表增加代理和主播身份字段

This commit is contained in:
tianfeng 2025-12-24 16:42:32 +08:00
parent 6883d89b99
commit 43448cab51
2 changed files with 32 additions and 6 deletions

View File

@ -6,18 +6,19 @@ import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO;
import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd;
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
import com.red.circle.other.infra.common.family.FamilyCommon;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMember;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberService;
import com.red.circle.other.infra.database.rds.dto.family.FamilyMemberExpDTO;
import com.red.circle.other.infra.database.rds.service.family.FamilyMemberWeekExpService;
import com.red.circle.other.infra.enums.family.FamilyRoleEnum;
import com.red.circle.other.inner.asserts.FamilyErrorCode;
import com.red.circle.other.inner.enums.team.TeamMemberRole;
import com.red.circle.other.inner.model.dto.user.OwnSpecialIdDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.num.NumUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@ -38,6 +39,7 @@ public class FamilyMemberListExe {
private final UserProfileGateway userProfileGateway;
private final UserProfileAppConvertor userProfileAppConvertor;
private final FamilyMemberWeekExpService familyMemberWeekExpService;
private final TeamMemberService teamMemberService;
public List<FamilyMemberCO> execute(FamilyMemberListQueryCmd cmd) {
@ -53,14 +55,19 @@ public class FamilyMemberListExe {
if (CollectionUtils.isEmpty(mapUserBase)) {
return CollectionUtils.newArrayList();
}
return getMemberCO(members, mapUserBase);
Map<Long, TeamMember> teamMemberMap = mapTeamMember(members);
return getMemberCO(members, mapUserBase, teamMemberMap);
}
private List<FamilyMemberCO> getMemberCO(List<FamilyMemberExpDTO> members,
Map<Long, UserProfileDTO> userProfileMap) {
Map<Long, UserProfileDTO> userProfileMap,
Map<Long, TeamMember> teamMemberMap) {
return members.stream().map(member -> {
UserProfileDTO user = userProfileMap.get(member.getMemberUserId());
TeamMember teamMember = teamMemberMap.get(member.getMemberUserId());
return new FamilyMemberCO()
.setFamilyId(member.getFamilyId())
.setMemberId(member.getId())
@ -70,6 +77,8 @@ public class FamilyMemberListExe {
.setSpecialAccount(Optional.ofNullable(user.getOwnSpecialId()).map(OwnSpecialIdDTO::getAccount).orElse(null))
.setMemberNickname(user.getUserNickname())
.setMemberRole(member.getMemberRole())
.setAgent(Objects.nonNull(teamMember) && TeamMemberRole.OWN.eq(teamMember.getRole()))
.setAnchor(Objects.nonNull(teamMember))
;
}).filter(Objects::nonNull).toList();
@ -80,6 +89,12 @@ public class FamilyMemberListExe {
members.stream().map(FamilyMemberExpDTO::getMemberUserId).collect(Collectors.toSet())));
}
private Map<Long, TeamMember> mapTeamMember(List<FamilyMemberExpDTO> members) {
Set<Long> collect = members.stream().map(FamilyMemberExpDTO::getMemberUserId).collect(Collectors.toSet());
List<TeamMember> teamMemberList = teamMemberService.listByMemberIds(collect);
return teamMemberList.stream().collect(Collectors.toMap(TeamMember::getMemberId, e -> e, (v1, v2) -> v1));
}
private List<FamilyMemberExpDTO> pageList(FamilyMemberListQueryCmd cmd) {
return familyMemberWeekExpService
.pageByFamilyId(cmd.getFamilyId(),

View File

@ -76,4 +76,15 @@ public class FamilyMemberCO extends ClientObject {
*/
private String memberRole;
/**
* true代理false:不是.
*/
private Boolean agent;
/**
* true主播false:不是.
*/
private Boolean anchor;
}