diff --git a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java index 7832dbf1..6c564e09 100644 --- a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java +++ b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/family/FamilyRestController.java @@ -114,7 +114,7 @@ public class FamilyRestController extends BaseController { * 家族成员信息 */ @GetMapping("/list/member") - public List listMember(FamilyMemberListQueryCmd cmd) { + public FamilyMemberListCO listMember(FamilyMemberListQueryCmd cmd) { return familyService.listMember(cmd); } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMemberListExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMemberListExe.java index 8bb7aed2..0c012105 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMemberListExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/family/FamilyMemberListExe.java @@ -3,6 +3,7 @@ package com.red.circle.other.app.command.family; import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.other.app.convertor.user.UserProfileAppConvertor; import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO; +import com.red.circle.other.app.dto.clientobject.family.FamilyMemberListCO; import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd; import com.red.circle.other.domain.gateway.user.UserProfileGateway; import com.red.circle.other.domain.model.user.UserProfile; @@ -14,6 +15,7 @@ import com.red.circle.other.infra.database.rds.service.family.FamilyMemberWeekEx 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.famliy.FamilyDetailsDTO; 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; @@ -42,7 +44,9 @@ public class FamilyMemberListExe { private final FamilyMemberWeekExpService familyMemberWeekExpService; private final TeamMemberService teamMemberService; - public List execute(FamilyMemberListQueryCmd cmd) { + public FamilyMemberListCO execute(FamilyMemberListQueryCmd cmd) { + + FamilyDetailsDTO familyDetails = familyCommon.getFamilyDetails(cmd.getReqSysOrigin().getOrigin(), cmd.getFamilyId()); ResponseAssert.isTrue(FamilyErrorCode.NOT_EXIST_FAMILY_INFO_DATA, familyCommon.isExistFamilyById(cmd.getFamilyId())); @@ -55,17 +59,31 @@ public class FamilyMemberListExe { List members = pageList(cmd); if (CollectionUtils.isEmpty(members)) { - return CollectionUtils.newArrayList(); + return new FamilyMemberListCO() + .setFamilyId(cmd.getFamilyId()) + .setMaxMember(familyDetails.getMaxMember()) + .setMaxManager(familyDetails.getMaxManager()) + .setMembers(CollectionUtils.newArrayList()); } Map mapUserBase = mapUserProfile(members); if (CollectionUtils.isEmpty(mapUserBase)) { - return CollectionUtils.newArrayList(); + return new FamilyMemberListCO() + .setFamilyId(cmd.getFamilyId()) + .setMaxMember(familyDetails.getMaxMember()) + .setMaxManager(familyDetails.getMaxManager()) + .setMembers(CollectionUtils.newArrayList()); } Map teamMemberMap = mapTeamMember(members); - return getMemberCO(members, mapUserBase, teamMemberMap); + List memberCOList = getMemberCO(members, mapUserBase, teamMemberMap); + + return new FamilyMemberListCO() + .setFamilyId(cmd.getFamilyId()) + .setMaxMember(familyDetails.getMaxMember()) + .setMaxManager(familyDetails.getMaxManager()) + .setMembers(memberCOList); } private List getMemberCO(List members, diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java index 33cae890..afa234e6 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/family/FamilyServiceImpl.java @@ -110,7 +110,7 @@ public class FamilyServiceImpl implements FamilyService { } @Override - public List listMember(FamilyMemberListQueryCmd cmd) { + public FamilyMemberListCO listMember(FamilyMemberListQueryCmd cmd) { return familyMemberListExe.execute(cmd); } diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyMemberListCO.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyMemberListCO.java new file mode 100644 index 00000000..7fdc1266 --- /dev/null +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/family/FamilyMemberListCO.java @@ -0,0 +1,44 @@ +package com.red.circle.other.app.dto.clientobject.family; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.red.circle.framework.dto.ClientObject; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serial; +import java.util.List; + +/** + * 家族成员列表响应 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class FamilyMemberListCO extends ClientObject { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 家族ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long familyId; + + /** + * 最大成员数 + */ + private Integer maxMember; + + /** + * 最大管理员数 + */ + private Integer maxManager; + + /** + * 家族成员列表 + */ + private List members; +} diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java index cbc8d101..88fec4ae 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/family/FamilyService.java @@ -38,7 +38,7 @@ public interface FamilyService { /** * 家族成员信息. */ - List listMember(FamilyMemberListQueryCmd cmd); + FamilyMemberListCO listMember(FamilyMemberListQueryCmd cmd); /** * 家族基本信息.