家族详情增加组长信息字段

This commit is contained in:
tianfeng 2025-12-23 18:08:04 +08:00
parent 50c1a81dc9
commit 91812a3caa
3 changed files with 46 additions and 2 deletions

View File

@ -4,13 +4,18 @@ import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.other.app.dto.clientobject.family.FamilyBaseInfoCO;
import com.red.circle.other.app.dto.cmd.family.FamilyBaseInfoQueryCmd;
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
import com.red.circle.other.domain.model.user.OwnSpecialId;
import com.red.circle.other.domain.model.user.UserProfile;
import com.red.circle.other.infra.common.family.FamilyCommon;
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
import com.red.circle.other.infra.database.rds.entity.family.FamilyBaseInfo;
import com.red.circle.other.infra.database.rds.entity.family.FamilyMemberInfo;
import com.red.circle.other.infra.database.rds.enums.OtherConfigEnum;
import com.red.circle.other.infra.database.rds.service.family.FamilyBaseInfoService;
import com.red.circle.other.infra.database.rds.service.family.FamilyLevelExpService;
import com.red.circle.other.infra.database.rds.service.family.FamilyMemberInfoService;
import com.red.circle.other.infra.enums.family.FamilyRoleEnum;
import com.red.circle.other.infra.enums.family.FamilyStatusEnum;
import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.model.dto.famliy.FamilyDetailsDTO;
@ -39,21 +44,38 @@ public class FamilyBaseInfoExe {
private final FamilyBaseInfoService familyBaseInfoService;
private final FamilyMemberInfoService familyMemberInfoService;
private final EnumConfigCacheService enumConfigCacheService;
private final UserProfileGateway userProfileGateway;
public FamilyBaseInfoCO execute(FamilyBaseInfoQueryCmd cmd) {
FamilyBaseInfo baseInfo = getFamilyBaseInfo(cmd);
FamilyDetailsDTO familyLevel = getCacheFamilyLevel(cmd, baseInfo.getId());
FamilyMemberInfo familyMemberInfo = familyMemberInfoService.getAdmin(cmd.getFamilyId(), FamilyRoleEnum.ADMIN.getKey());
return getFamilyInfoCO(baseInfo, familyLevel,cmd);
FamilyBaseInfoCO.FamilyAdminInfo adminInfo = null;
if (familyMemberInfo != null) {
UserProfile userProfile = userProfileGateway.getByUserId(familyMemberInfo.getMemberUserId());
if (userProfile != null) {
adminInfo = new FamilyBaseInfoCO.FamilyAdminInfo();
adminInfo.setUserId(userProfile.getId());
adminInfo.setAccount(userProfile.getAccount());
adminInfo.setUserAvatar(userProfile.getUserAvatar());
adminInfo.setAccount(userProfile.getAccount());
adminInfo.setSpecialAccount(Optional.ofNullable(userProfile.getOwnSpecialId()).map(OwnSpecialId::getAccount).orElse(null));
}
}
return getFamilyInfoCO(baseInfo, familyLevel, adminInfo);
}
private FamilyBaseInfoCO getFamilyInfoCO(FamilyBaseInfo baseInfo,
FamilyDetailsDTO familyLevel,FamilyBaseInfoQueryCmd cmd) {
FamilyDetailsDTO familyLevel,
FamilyBaseInfoCO.FamilyAdminInfo adminInfo) {
return new FamilyBaseInfoCO()
.setFamilyId(baseInfo.getId())
.setFamilyAdmin(adminInfo)
.setFamilyAccount(baseInfo.getFamilyAccount())
.setFamilyAvatar(baseInfo.getFamilyAvatar())
.setFamilyName(baseInfo.getFamilyName())

View File

@ -57,6 +57,11 @@ public class FamilyBaseInfoCO extends ClientObject {
*/
private String familyNotice;
/**
* 家族长信息
*/
private FamilyAdminInfo familyAdmin;
/**
* 家族当前经验值
*/
@ -115,4 +120,20 @@ public class FamilyBaseInfoCO extends ClientObject {
*/
private BigDecimal amount;
@Data
public static class FamilyAdminInfo {
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
private String account;
private String specialAccount;
private String userAvatar;
private String userNickName;
}
}

View File

@ -53,6 +53,7 @@ public class FamilyMemberInfo extends TimestampBaseEntity {
/**
* 角色.
* ADMIN-族长MANAGE-管理员MEMBER-成员
*/
@TableField("member_role")
private String memberRole;