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 67953e7b..8bb7aed2 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 @@ -5,6 +5,7 @@ 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.cmd.family.FamilyMemberListQueryCmd; import com.red.circle.other.domain.gateway.user.UserProfileGateway; +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.mongo.entity.team.team.TeamMember; import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberService; @@ -46,6 +47,12 @@ public class FamilyMemberListExe { ResponseAssert.isTrue(FamilyErrorCode.NOT_EXIST_FAMILY_INFO_DATA, familyCommon.isExistFamilyById(cmd.getFamilyId())); + + if (cmd.getAccount() != null && !cmd.getAccount().isEmpty()) { + UserProfile accountNew = userProfileGateway.getByAccountNew(cmd.getReqSysOrigin().getOrigin(), cmd.getAccount()); + cmd.setMemberUserId(Optional.ofNullable(accountNew).map(UserProfile::getId).orElse(-1L)); + } + List members = pageList(cmd); if (CollectionUtils.isEmpty(members)) { return CollectionUtils.newArrayList(); @@ -99,7 +106,7 @@ public class FamilyMemberListExe { return familyMemberWeekExpService .pageByFamilyId(cmd.getFamilyId(), List.of(FamilyRoleEnum.MANAGE, FamilyRoleEnum.MEMBER, FamilyRoleEnum.ADMIN), cmd.getPageNo(), - cmd.getPageSize()); + cmd.getPageSize(), cmd.getMemberUserId()); } diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/cmd/family/FamilyMemberListQueryCmd.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/cmd/family/FamilyMemberListQueryCmd.java index 9ee5b424..3a40c8ef 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/cmd/family/FamilyMemberListQueryCmd.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/cmd/family/FamilyMemberListQueryCmd.java @@ -33,4 +33,12 @@ public class FamilyMemberListQueryCmd extends AppExtCommand { */ private Integer pageSize; + /** + * 家族成员账号 + */ + private String account; + + + private Long memberUserId; + } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/dao/family/FamilyMemberWeekExpDAO.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/dao/family/FamilyMemberWeekExpDAO.java index 0dded17b..d933ab61 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/dao/family/FamilyMemberWeekExpDAO.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/dao/family/FamilyMemberWeekExpDAO.java @@ -18,7 +18,10 @@ import org.apache.ibatis.annotations.Param; */ public interface FamilyMemberWeekExpDAO extends BaseDAO { - List pageByFamilyId(@Param("familyId") Long familyId, @Param("start") Integer start, @Param("end") Integer end); + List pageByFamilyId(@Param("familyId") Long familyId, + @Param("start") Integer start, + @Param("end") Integer end, + @Param("memberUserId") Long memberUserId); List listByFamilyId(@Param("familyId") Long familyId, @Param("roles") List roles); diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMemberWeekExpService.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMemberWeekExpService.java index e25351f8..e076f5aa 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMemberWeekExpService.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/FamilyMemberWeekExpService.java @@ -32,7 +32,7 @@ public interface FamilyMemberWeekExpService extends BaseService pageByFamilyId(Long familyId, List roles, - Integer pageNo, Integer pageSize); + Integer pageNo, Integer pageSize, Long memberUserId); void deleteByFamilyId(Long familyId); diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMemberWeekExpServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMemberWeekExpServiceImpl.java index f81a5774..d4de3b2f 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMemberWeekExpServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/family/impl/FamilyMemberWeekExpServiceImpl.java @@ -112,12 +112,13 @@ public class FamilyMemberWeekExpServiceImpl extends @Override public List pageByFamilyId(Long familyId, List roles, - Integer pageNo, Integer pageSize) { + Integer pageNo, Integer pageSize, Long memberUserId) { if (Objects.isNull(familyId) || Objects.isNull(pageNo)) { return CollectionUtils.newArrayList(); } + pageNo = pageNo <= 1 ? 0 : pageNo - 1; pageSize = Objects.isNull(pageSize) ? PageConstant.DEFAULT_LIMIT_SIZE : pageSize; - return familyMemberWeekExpDAO.pageByFamilyId(familyId, pageNo * pageSize, pageSize); + return familyMemberWeekExpDAO.pageByFamilyId(familyId, pageNo * pageSize, pageSize, memberUserId); } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/resources/dao/family/FamilyMemberWeekExpDAO.xml b/rc-service/rc-service-other/other-infrastructure/src/main/resources/dao/family/FamilyMemberWeekExpDAO.xml index 5b0b3c2c..afe5f088 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/resources/dao/family/FamilyMemberWeekExpDAO.xml +++ b/rc-service/rc-service-other/other-infrastructure/src/main/resources/dao/family/FamilyMemberWeekExpDAO.xml @@ -13,6 +13,9 @@ fm.member_role AS memberRole FROM `family_member` fm WHERE fm.`family_id` = #{familyId} + + AND fm.member_user_id = #{memberUserId} + ORDER BY CASE fm.member_role WHEN 'ADMIN' THEN 1