家族信息新增我的家族权限字段

This commit is contained in:
tianfeng 2025-12-25 10:58:38 +08:00
parent 8f0e9ed468
commit abf1ab1d47
2 changed files with 26 additions and 13 deletions

View File

@ -42,6 +42,7 @@ import java.util.stream.Collectors;
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.jetbrains.annotations.Nullable;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
@ -64,16 +65,28 @@ public class FamilyBaseInfoExe {
private final FamilyBoxUserContributeService familyBoxUserContributeService; private final FamilyBoxUserContributeService familyBoxUserContributeService;
private final FamilyBoxUserRewardService familyBoxUserRewardService; private final FamilyBoxUserRewardService familyBoxUserRewardService;
private final TeamMemberService teamMemberService; private final TeamMemberService teamMemberService;
private final EnumConfigCacheService enumConfigCacheService;
private final UserProfileGateway userProfileGateway; private final UserProfileGateway userProfileGateway;
public FamilyBaseInfoCO execute(FamilyBaseInfoQueryCmd cmd) { public FamilyBaseInfoCO execute(FamilyBaseInfoQueryCmd cmd) {
FamilyBaseInfo baseInfo = getFamilyBaseInfo(cmd); FamilyBaseInfo baseInfo = getFamilyBaseInfo(cmd);
FamilyDetailsDTO familyLevel = getCacheFamilyLevel(cmd, baseInfo.getId()); FamilyDetailsDTO familyLevel = familyCommon.getFamilyDetails(cmd.getReqSysOrigin().getOrigin(), baseInfo.getId());
FamilyMemberInfo familyMemberInfo = familyMemberInfoService.getAdmin(cmd.getFamilyId(), FamilyRoleEnum.ADMIN.getKey()); FamilyMemberInfo familyMemberInfo = familyMemberInfoService.getAdmin(cmd.getFamilyId(), FamilyRoleEnum.ADMIN.getKey());
FamilyMemberInfo myFamilyInfo = familyMemberInfoService.getFamilyMemberByUserId(cmd.getReqUserId());
//族长信息
FamilyBaseInfoCO.FamilyAdminInfo adminInfo = getFamilyAdminInfo(familyMemberInfo);
//宝箱信息
FamilyBaseInfoCO.FamilyBoxInfo boxInfo = buildBoxInfo(cmd.getFamilyId(), cmd.getReqUserId());
//支持者和主播列表
FamilyBaseInfoCO.FamilyMemberList memberList = buildMemberList(cmd.getFamilyId());
return getFamilyInfoCO(baseInfo, familyLevel, adminInfo, myFamilyInfo, boxInfo, memberList);
}
private FamilyBaseInfoCO.FamilyAdminInfo getFamilyAdminInfo(FamilyMemberInfo familyMemberInfo) {
FamilyBaseInfoCO.FamilyAdminInfo adminInfo = null; FamilyBaseInfoCO.FamilyAdminInfo adminInfo = null;
if (familyMemberInfo != null) { if (familyMemberInfo != null) {
UserProfile userProfile = userProfileGateway.getByUserId(familyMemberInfo.getMemberUserId()); UserProfile userProfile = userProfileGateway.getByUserId(familyMemberInfo.getMemberUserId());
@ -86,17 +99,13 @@ public class FamilyBaseInfoExe {
adminInfo.setSpecialAccount(Optional.ofNullable(userProfile.getOwnSpecialId()).map(OwnSpecialId::getAccount).orElse(null)); adminInfo.setSpecialAccount(Optional.ofNullable(userProfile.getOwnSpecialId()).map(OwnSpecialId::getAccount).orElse(null));
} }
} }
return adminInfo;
FamilyBaseInfoCO.FamilyBoxInfo boxInfo = buildBoxInfo(cmd.getFamilyId(), cmd.getReqUserId());
FamilyBaseInfoCO.FamilyMemberList memberList = buildMemberList(cmd.getFamilyId());
return getFamilyInfoCO(baseInfo, familyLevel, adminInfo, boxInfo, memberList);
} }
private FamilyBaseInfoCO getFamilyInfoCO(FamilyBaseInfo baseInfo, private FamilyBaseInfoCO getFamilyInfoCO(FamilyBaseInfo baseInfo,
FamilyDetailsDTO familyLevel, FamilyDetailsDTO familyLevel,
FamilyBaseInfoCO.FamilyAdminInfo adminInfo, FamilyBaseInfoCO.FamilyAdminInfo adminInfo,
FamilyMemberInfo myFamilyInfo,
FamilyBaseInfoCO.FamilyBoxInfo boxInfo, FamilyBaseInfoCO.FamilyBoxInfo boxInfo,
FamilyBaseInfoCO.FamilyMemberList memberList) { FamilyBaseInfoCO.FamilyMemberList memberList) {
@ -118,11 +127,9 @@ public class FamilyBaseInfoExe {
.setMaxMember(familyLevel.getMaxMember()) .setMaxMember(familyLevel.getMaxMember())
.setLevelBackgroundPicture(familyLevel.getLevelBackgroundPicture()) .setLevelBackgroundPicture(familyLevel.getLevelBackgroundPicture())
.setBoxInfo(boxInfo) .setBoxInfo(boxInfo)
.setMemberList(memberList); .setMemberList(memberList)
} .setMyFamilyRole(Optional.ofNullable(myFamilyInfo).map(FamilyMemberInfo::getMemberRole).orElse(null))
;
private FamilyDetailsDTO getCacheFamilyLevel(FamilyBaseInfoQueryCmd cmd, Long familyId) {
return familyCommon.getFamilyDetails(cmd.getReqSysOrigin().getOrigin(), familyId);
} }
private Integer getFamilyMemberCount(Long familyId) { private Integer getFamilyMemberCount(Long familyId) {

View File

@ -7,6 +7,7 @@ import java.io.Serial;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import com.red.circle.other.inner.model.dto.famliy.FamilyMemberInfoDTO;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -125,6 +126,11 @@ public class FamilyBaseInfoCO extends ClientObject {
*/ */
private FamilyMemberList memberList; private FamilyMemberList memberList;
/**
* 我的家族权限
*/
private String myFamilyRole;
/** /**
* 家族群聊付费解锁金额. * 家族群聊付费解锁金额.
*/ */