diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyBaseInfoExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyBaseInfoExe.java index 0996bb2f..312d044c 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyBaseInfoExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyBaseInfoExe.java @@ -42,6 +42,7 @@ import java.util.stream.Collectors; import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import lombok.RequiredArgsConstructor; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Component; /** @@ -64,16 +65,28 @@ public class FamilyBaseInfoExe { private final FamilyBoxUserContributeService familyBoxUserContributeService; private final FamilyBoxUserRewardService familyBoxUserRewardService; private final TeamMemberService teamMemberService; - private final EnumConfigCacheService enumConfigCacheService; private final UserProfileGateway userProfileGateway; public FamilyBaseInfoCO execute(FamilyBaseInfoQueryCmd 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 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; if (familyMemberInfo != null) { UserProfile userProfile = userProfileGateway.getByUserId(familyMemberInfo.getMemberUserId()); @@ -86,17 +99,13 @@ public class FamilyBaseInfoExe { adminInfo.setSpecialAccount(Optional.ofNullable(userProfile.getOwnSpecialId()).map(OwnSpecialId::getAccount).orElse(null)); } } - - FamilyBaseInfoCO.FamilyBoxInfo boxInfo = buildBoxInfo(cmd.getFamilyId(), cmd.getReqUserId()); - - FamilyBaseInfoCO.FamilyMemberList memberList = buildMemberList(cmd.getFamilyId()); - - return getFamilyInfoCO(baseInfo, familyLevel, adminInfo, boxInfo, memberList); + return adminInfo; } private FamilyBaseInfoCO getFamilyInfoCO(FamilyBaseInfo baseInfo, FamilyDetailsDTO familyLevel, FamilyBaseInfoCO.FamilyAdminInfo adminInfo, + FamilyMemberInfo myFamilyInfo, FamilyBaseInfoCO.FamilyBoxInfo boxInfo, FamilyBaseInfoCO.FamilyMemberList memberList) { @@ -118,11 +127,9 @@ public class FamilyBaseInfoExe { .setMaxMember(familyLevel.getMaxMember()) .setLevelBackgroundPicture(familyLevel.getLevelBackgroundPicture()) .setBoxInfo(boxInfo) - .setMemberList(memberList); - } - - private FamilyDetailsDTO getCacheFamilyLevel(FamilyBaseInfoQueryCmd cmd, Long familyId) { - return familyCommon.getFamilyDetails(cmd.getReqSysOrigin().getOrigin(), familyId); + .setMemberList(memberList) + .setMyFamilyRole(Optional.ofNullable(myFamilyInfo).map(FamilyMemberInfo::getMemberRole).orElse(null)) + ; } private Integer getFamilyMemberCount(Long familyId) { diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyBaseInfoCO.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyBaseInfoCO.java index d2967634..e28637d0 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyBaseInfoCO.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyBaseInfoCO.java @@ -7,6 +7,7 @@ import java.io.Serial; import java.math.BigDecimal; import java.util.List; +import com.red.circle.other.inner.model.dto.famliy.FamilyMemberInfoDTO; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -125,6 +126,11 @@ public class FamilyBaseInfoCO extends ClientObject { */ private FamilyMemberList memberList; + /** + * 我的家族权限 + */ + private String myFamilyRole; + /** * 家族群聊付费解锁金额. */