家族成员列表接口完善

This commit is contained in:
tianfeng 2025-12-23 12:31:41 +08:00
parent e9df22f1a1
commit 22b417206e
13 changed files with 195 additions and 61 deletions

View File

@ -10,6 +10,7 @@ import com.red.circle.other.app.dto.clientobject.family.FamilyLeaderboardCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO; import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO; import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyMsgListCO; import com.red.circle.other.app.dto.clientobject.family.FamilyMsgListCO;
import com.red.circle.other.app.dto.clientobject.family.MyFamilyApplyCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyRewardCO; import com.red.circle.other.app.dto.clientobject.family.FamilyRewardCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyUserInfoCO; import com.red.circle.other.app.dto.clientobject.family.FamilyUserInfoCO;
import com.red.circle.other.app.dto.clientobject.room.RoomVoiceProfileCO; import com.red.circle.other.app.dto.clientobject.room.RoomVoiceProfileCO;
@ -26,6 +27,7 @@ import com.red.circle.other.app.dto.cmd.family.FamilyMemberListCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd; import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMessageHandleCmd; import com.red.circle.other.app.dto.cmd.family.FamilyMessageHandleCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMessageListCmd; import com.red.circle.other.app.dto.cmd.family.FamilyMessageListCmd;
import com.red.circle.other.app.dto.cmd.family.MyFamilyApplyListCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyOnlineRoomQueryCmd; import com.red.circle.other.app.dto.cmd.family.FamilyOnlineRoomQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyRemoveUserCmd; import com.red.circle.other.app.dto.cmd.family.FamilyRemoveUserCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyUserInfoQueryCmd; import com.red.circle.other.app.dto.cmd.family.FamilyUserInfoQueryCmd;
@ -108,6 +110,14 @@ public class FamilyRestController extends BaseController {
return familyService.listMessage(cmd); return familyService.listMessage(cmd);
} }
/**
* 我的家族申请列表.
*/
@GetMapping("/my-apply-list")
public List<MyFamilyApplyCO> myApplyList(MyFamilyApplyListCmd cmd) {
return familyService.myApplyList(cmd);
}
/** /**
* 家族族长信息(与家族成员信息 数据结构一致). * 家族族长信息(与家族成员信息 数据结构一致).
* *
@ -123,11 +133,6 @@ public class FamilyRestController extends BaseController {
/** /**
* 家族成员信息.(list_member) * 家族成员信息.(list_member)
*
* @eo.name 家族成员信息.
* @eo.url /list/member
* @eo.method get
* @eo.request-type formdata
*/ */
@GetMapping("/list/member") @GetMapping("/list/member")
public List<FamilyMemberCO> listMember(FamilyMemberListQueryCmd cmd) { public List<FamilyMemberCO> listMember(FamilyMemberListQueryCmd cmd) {

View File

@ -10,12 +10,14 @@ import com.red.circle.other.infra.database.rds.dto.family.FamilyMemberExpDTO;
import com.red.circle.other.infra.database.rds.service.family.FamilyMemberWeekExpService; import com.red.circle.other.infra.database.rds.service.family.FamilyMemberWeekExpService;
import com.red.circle.other.infra.enums.family.FamilyRoleEnum; import com.red.circle.other.infra.enums.family.FamilyRoleEnum;
import com.red.circle.other.inner.asserts.FamilyErrorCode; import com.red.circle.other.inner.asserts.FamilyErrorCode;
import com.red.circle.other.inner.model.dto.user.OwnSpecialIdDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils; import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.num.NumUtils; import com.red.circle.tool.core.num.NumUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -65,10 +67,9 @@ public class FamilyGetMembersExe {
.setMemberId(member.getId()) .setMemberId(member.getId())
.setMemberUserId(member.getMemberUserId()) .setMemberUserId(member.getMemberUserId())
.setMemberAvatar(user.getUserAvatar()) .setMemberAvatar(user.getUserAvatar())
.setAccount(user.getAccount())
.setSpecialAccount(Optional.ofNullable(user.getOwnSpecialId()).map(OwnSpecialIdDTO::getAccount).orElse(null))
.setMemberNickname(user.getUserNickname()) .setMemberNickname(user.getUserNickname())
.setMemberAge(user.getAge())
.setMemberSex(Objects.equals(user.getUserSex(), 1))
.setMemberExp(NumUtils.formatBigDecimal(member.getExp()))
.setMemberRole(member.getMemberRole()) .setMemberRole(member.getMemberRole())
; ;

View File

@ -10,12 +10,14 @@ import com.red.circle.other.infra.database.rds.dto.family.FamilyMemberExpDTO;
import com.red.circle.other.infra.database.rds.service.family.FamilyMemberWeekExpService; import com.red.circle.other.infra.database.rds.service.family.FamilyMemberWeekExpService;
import com.red.circle.other.infra.enums.family.FamilyRoleEnum; import com.red.circle.other.infra.enums.family.FamilyRoleEnum;
import com.red.circle.other.inner.asserts.FamilyErrorCode; import com.red.circle.other.inner.asserts.FamilyErrorCode;
import com.red.circle.other.inner.model.dto.user.OwnSpecialIdDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils; import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.num.NumUtils; import com.red.circle.tool.core.num.NumUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -64,10 +66,9 @@ public class FamilyMemberListExe {
.setMemberId(member.getId()) .setMemberId(member.getId())
.setMemberUserId(member.getMemberUserId()) .setMemberUserId(member.getMemberUserId())
.setMemberAvatar(user.getUserAvatar()) .setMemberAvatar(user.getUserAvatar())
.setAccount(user.getAccount())
.setSpecialAccount(Optional.ofNullable(user.getOwnSpecialId()).map(OwnSpecialIdDTO::getAccount).orElse(null))
.setMemberNickname(user.getUserNickname()) .setMemberNickname(user.getUserNickname())
.setMemberAge(user.getAge())
.setMemberSex(Objects.equals(user.getUserSex(), 1))
.setMemberExp(NumUtils.formatBigDecimal(member.getExp()))
.setMemberRole(member.getMemberRole()) .setMemberRole(member.getMemberRole())
; ;
@ -82,7 +83,7 @@ public class FamilyMemberListExe {
private List<FamilyMemberExpDTO> pageList(FamilyMemberListQueryCmd cmd) { private List<FamilyMemberExpDTO> pageList(FamilyMemberListQueryCmd cmd) {
return familyMemberWeekExpService return familyMemberWeekExpService
.pageByFamilyId(cmd.getFamilyId(), .pageByFamilyId(cmd.getFamilyId(),
List.of(FamilyRoleEnum.MANAGE, FamilyRoleEnum.MEMBER), cmd.getPageNo(), List.of(FamilyRoleEnum.MANAGE, FamilyRoleEnum.MEMBER, FamilyRoleEnum.ADMIN), cmd.getPageNo(),
cmd.getPageSize()); cmd.getPageSize());
} }

View File

@ -0,0 +1,70 @@
package com.red.circle.other.app.command.family;
import com.google.common.collect.Lists;
import com.red.circle.framework.mybatis.constant.PageConstant;
import com.red.circle.other.app.dto.clientobject.family.MyFamilyApplyCO;
import com.red.circle.other.app.dto.cmd.family.MyFamilyApplyListCmd;
import com.red.circle.other.infra.common.family.FamilyCommon;
import com.red.circle.other.infra.database.rds.entity.family.FamilyBaseInfo;
import com.red.circle.other.infra.database.rds.entity.family.FamilyMessage;
import com.red.circle.other.infra.database.rds.service.family.FamilyBaseInfoService;
import com.red.circle.other.infra.database.rds.service.family.FamilyMessageService;
import com.red.circle.other.inner.enums.FamilyMessageStatusEnum;
import com.red.circle.other.inner.model.dto.famliy.FamilyDetailsDTO;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.TimestampUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
/**
* 我的家族申请列表.
*/
@Component
@RequiredArgsConstructor
public class MyFamilyApplyListExe {
private final FamilyMessageService familyMessageService;
private final FamilyBaseInfoService familyInfoService;
private final FamilyCommon familyCommon;
public List<MyFamilyApplyCO> execute(MyFamilyApplyListCmd cmd) {
List<FamilyMessage> msgList = familyMessageService.query()
.eq(FamilyMessage::getSenderUser, cmd.getReqUserId())
.lt(Objects.nonNull(cmd.getLastId()), FamilyMessage::getId, cmd.getLastId())
.orderByDesc(FamilyMessage::getId)
.last(PageConstant.DEFAULT_LIMIT)
.list();
if (CollectionUtils.isEmpty(msgList)) {
return Lists.newArrayList();
}
Set<Long> familyIds = msgList.stream()
.map(FamilyMessage::getFamilyId)
.collect(Collectors.toSet());
Map<Long, FamilyBaseInfo> familyMap = familyInfoService.query()
.in(FamilyBaseInfo::getId, familyIds)
.list()
.stream()
.collect(Collectors.toMap(FamilyBaseInfo::getId, f -> f));
return msgList.stream().map(msg -> {
FamilyDetailsDTO familyDetails = familyCommon.getFamilyDetails(msg.getSysOrigin(), msg.getFamilyId());
return new MyFamilyApplyCO()
.setMsgId(msg.getId())
.setFamilyId(msg.getFamilyId())
.setFamilyName(familyDetails != null ? familyDetails.getFamilyName() : "")
.setFamilyAvatar(familyDetails != null ? familyDetails.getFamilyAvatar() : "")
.setMaxMember(familyDetails != null ? familyDetails.getMaxMember() : 0)
.setStatus(msg.getStatus())
.setCreateTime(msg.getCreateTime());
}).toList();
}
}

View File

@ -25,12 +25,14 @@ import com.red.circle.other.app.command.family.FamilyRewardExe;
import com.red.circle.other.app.command.family.FamilyUserExitExe; import com.red.circle.other.app.command.family.FamilyUserExitExe;
import com.red.circle.other.app.command.family.FamilyUserInfoExe; import com.red.circle.other.app.command.family.FamilyUserInfoExe;
import com.red.circle.other.app.command.family.ReceiveFamilyAwardExe; import com.red.circle.other.app.command.family.ReceiveFamilyAwardExe;
import com.red.circle.other.app.command.family.MyFamilyApplyListExe;
import com.red.circle.other.app.dto.clientobject.family.FamilyBaseInfoCO; import com.red.circle.other.app.dto.clientobject.family.FamilyBaseInfoCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyCreateRulesCO; import com.red.circle.other.app.dto.clientobject.family.FamilyCreateRulesCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyLeaderboardCO; import com.red.circle.other.app.dto.clientobject.family.FamilyLeaderboardCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO; import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO; import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyMsgListCO; import com.red.circle.other.app.dto.clientobject.family.FamilyMsgListCO;
import com.red.circle.other.app.dto.clientobject.family.MyFamilyApplyCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyRewardCO; import com.red.circle.other.app.dto.clientobject.family.FamilyRewardCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyUserInfoCO; import com.red.circle.other.app.dto.clientobject.family.FamilyUserInfoCO;
import com.red.circle.other.app.dto.clientobject.room.RoomVoiceProfileCO; import com.red.circle.other.app.dto.clientobject.room.RoomVoiceProfileCO;
@ -47,6 +49,7 @@ import com.red.circle.other.app.dto.cmd.family.FamilyMemberListCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd; import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMessageHandleCmd; import com.red.circle.other.app.dto.cmd.family.FamilyMessageHandleCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMessageListCmd; import com.red.circle.other.app.dto.cmd.family.FamilyMessageListCmd;
import com.red.circle.other.app.dto.cmd.family.MyFamilyApplyListCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyOnlineRoomQueryCmd; import com.red.circle.other.app.dto.cmd.family.FamilyOnlineRoomQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyRemoveUserCmd; import com.red.circle.other.app.dto.cmd.family.FamilyRemoveUserCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyUserInfoQueryCmd; import com.red.circle.other.app.dto.cmd.family.FamilyUserInfoQueryCmd;
@ -95,6 +98,7 @@ public class FamilyServiceImpl implements FamilyService {
private final FamilyDismissGroupChatExe familyDismissGroupChatExe; private final FamilyDismissGroupChatExe familyDismissGroupChatExe;
private final FamilyMemberIdGetUserIdExe familyMemberIdGetUserIdExe; private final FamilyMemberIdGetUserIdExe familyMemberIdGetUserIdExe;
private final FamilyPurchasingGroupChatExe familyPurchasingGroupChatExe; private final FamilyPurchasingGroupChatExe familyPurchasingGroupChatExe;
private final MyFamilyApplyListExe myFamilyApplyListExe;
private final DistributedLockUtil distributedLockUtil; private final DistributedLockUtil distributedLockUtil;
@Override @Override
@ -227,4 +231,9 @@ public class FamilyServiceImpl implements FamilyService {
return familyGetMembersExe.execute(cmd); return familyGetMembersExe.execute(cmd);
} }
@Override
public List<MyFamilyApplyCO> myApplyList(MyFamilyApplyListCmd cmd) {
return myFamilyApplyListExe.execute(cmd);
}
} }

View File

@ -42,6 +42,10 @@ public class FamilyMemberCO extends ClientObject {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long memberUserId; private Long memberUserId;
private String account;
private String specialAccount;
/** /**
* 成员头像 * 成员头像
*/ */

View File

@ -0,0 +1,49 @@
package com.red.circle.other.app.dto.clientobject.family;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* 我的家族申请信息.
*/
@Data
@Accessors(chain = true)
public class MyFamilyApplyCO {
/**
* 消息ID.
*/
private Long msgId;
/**
* 家族ID.
*/
private Long familyId;
/**
* 家族名称.
*/
private String familyName;
/**
* 家族头像.
*/
private String familyAvatar;
/**
* 最大人数
*/
private Integer maxMember;
/**
* 状态(0.待审核 1.已通过 2.已驳回 -1.已取消).
*/
private Integer status;
/**
* 创建时间.
*/
private Timestamp createTime;
}

View File

@ -0,0 +1,15 @@
package com.red.circle.other.app.dto.cmd.family;
import com.red.circle.common.business.dto.cmd.AppExtCommand;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 我的家族申请列表查询.
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class MyFamilyApplyListCmd extends AppExtCommand {
private Long lastId;
}

View File

@ -2,32 +2,10 @@ package com.red.circle.other.app.service.family;
import com.red.circle.common.business.dto.cmd.AppExtCommand; import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.other.app.dto.clientobject.family.FamilyBaseInfoCO; import com.red.circle.other.app.dto.clientobject.family.*;
import com.red.circle.other.app.dto.clientobject.family.FamilyCreateRulesCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyLeaderboardCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyLevelParentCacheCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyMemberCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyMsgListCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyRewardCO;
import com.red.circle.other.app.dto.clientobject.family.FamilyUserInfoCO;
import com.red.circle.other.app.dto.clientobject.room.RoomVoiceProfileCO; import com.red.circle.other.app.dto.clientobject.room.RoomVoiceProfileCO;
import com.red.circle.other.app.dto.cmd.family.ApplyJoinFamilyCmd; import com.red.circle.other.app.dto.cmd.family.*;
import com.red.circle.other.app.dto.cmd.family.FamilyAdminQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyBaseInfoQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyCreateCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyDailyTaskCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyGrantUserRoleCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyGroupChatPayCheckCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyGroupChatQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyInfoEditCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMemberListCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMemberListQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMessageHandleCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyMessageListCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyOnlineRoomQueryCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyRemoveUserCmd;
import com.red.circle.other.app.dto.cmd.family.FamilyUserInfoQueryCmd;
import com.red.circle.other.app.dto.cmd.family.ReceiveFamilyAwardCmd;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@ -156,4 +134,9 @@ public interface FamilyService {
* 家族成员信息-不分页. * 家族成员信息-不分页.
*/ */
List<FamilyMemberCO> getMembers(FamilyMemberListCmd cmd); List<FamilyMemberCO> getMembers(FamilyMemberListCmd cmd);
/**
* 我的家族申请列表.
*/
List<MyFamilyApplyCO> myApplyList(MyFamilyApplyListCmd cmd);
} }

View File

@ -401,7 +401,7 @@ public class FamilyCommon {
* @param levelConfig 等级信息 * @param levelConfig 等级信息
* @param familyCO 容器 * @param familyCO 容器
*/ */
private void handleFamilyLevel(FamilyLevelConfig levelConfig, FamilyDetailsDTO familyCO) { private void fillFamilyDetails(FamilyLevelConfig levelConfig, FamilyDetailsDTO familyCO) {
/*PropsSourceRecord avatarFrame = getPropsSourceById(levelConfig.getAvatarFrameId()); /*PropsSourceRecord avatarFrame = getPropsSourceById(levelConfig.getAvatarFrameId());
BadgePictureConfig badge = getByBadgeId(levelConfig.getSysOrigin(), BadgePictureConfig badge = getByBadgeId(levelConfig.getSysOrigin(),
@ -490,7 +490,7 @@ public class FamilyCommon {
FamilyDetailsDTO levelCacheCO = new FamilyDetailsDTO() FamilyDetailsDTO levelCacheCO = new FamilyDetailsDTO()
.setFamilyId(familyId); .setFamilyId(familyId);
handleFamilyLevel(levelConfig, levelCacheCO); fillFamilyDetails(levelConfig, levelCacheCO);
familyLevelCacheService.setFamilyLevelData(key, levelCacheCO); familyLevelCacheService.setFamilyLevelData(key, levelCacheCO);
} }
@ -503,23 +503,23 @@ public class FamilyCommon {
* @return 等级信息 * @return 等级信息
*/ */
public FamilyDetailsDTO getFamilyDetails(String sysOrigin, Long familyId) { public FamilyDetailsDTO getFamilyDetails(String sysOrigin, Long familyId) {
FamilyDetailsDTO thisLevelCO = familyLevelCacheService FamilyDetailsDTO familyDetailsDTO = familyLevelCacheService
.getFamilyLevelData(sysOrigin + familyId, FamilyDetailsDTO.class); .getFamilyLevelData(sysOrigin + familyId, FamilyDetailsDTO.class);
if (Objects.isNull(thisLevelCO)) { if (Objects.isNull(familyDetailsDTO)) {
FamilyBaseInfo familyBaseInfo = getFamilyBaseInfo(familyId); FamilyBaseInfo familyBaseInfo = getFamilyBaseInfo(familyId);
ResponseAssert.notNull(FamilyErrorCode.NOT_EXIST_FAMILY_INFO_DATA, familyBaseInfo); ResponseAssert.notNull(FamilyErrorCode.NOT_EXIST_FAMILY_INFO_DATA, familyBaseInfo);
thisLevelCO = new FamilyDetailsDTO() familyDetailsDTO = new FamilyDetailsDTO()
.setFamilyId(familyId) .setFamilyId(familyId)
.setFamilyName(familyBaseInfo.getFamilyName()) .setFamilyName(familyBaseInfo.getFamilyName())
.setFamilyAccount(familyBaseInfo.getFamilyAccount()) .setFamilyAccount(familyBaseInfo.getFamilyAccount())
.setFamilyAvatar(familyBaseInfo.getFamilyAvatar()) .setFamilyAvatar(familyBaseInfo.getFamilyAvatar())
.setFamilyNotice(familyBaseInfo.getFamilyNotice()); .setFamilyNotice(familyBaseInfo.getFamilyNotice());
handleFamilyLevel(getFamilyLevelConfig(familyBaseInfo.getFamilyLevelId()), thisLevelCO); fillFamilyDetails(getFamilyLevelConfig(familyBaseInfo.getFamilyLevelId()), familyDetailsDTO);
} }
return thisLevelCO; return familyDetailsDTO;
} }
private FamilyLevelConfig getFamilyLevelConfig(Long familyLevelId) { private FamilyLevelConfig getFamilyLevelConfig(Long familyLevelId) {

View File

@ -18,9 +18,7 @@ import org.apache.ibatis.annotations.Param;
*/ */
public interface FamilyMemberWeekExpDAO extends BaseDAO<FamilyMemberWeekExp> { public interface FamilyMemberWeekExpDAO extends BaseDAO<FamilyMemberWeekExp> {
List<FamilyMemberExpDTO> pageByFamilyId(@Param("familyId") Long familyId, List<FamilyMemberExpDTO> pageByFamilyId(@Param("familyId") Long familyId, @Param("start") Integer start, @Param("end") Integer end);
@Param("roles") List<FamilyRoleEnum> roles,
@Param("start") Integer start, @Param("end") Integer end);
List<FamilyMemberExpDTO> listByFamilyId(@Param("familyId") Long familyId, List<FamilyMemberExpDTO> listByFamilyId(@Param("familyId") Long familyId,
@Param("roles") List<FamilyRoleEnum> roles); @Param("roles") List<FamilyRoleEnum> roles);

View File

@ -117,7 +117,7 @@ public class FamilyMemberWeekExpServiceImpl extends
return CollectionUtils.newArrayList(); return CollectionUtils.newArrayList();
} }
pageSize = Objects.isNull(pageSize) ? PageConstant.DEFAULT_LIMIT_SIZE : pageSize; pageSize = Objects.isNull(pageSize) ? PageConstant.DEFAULT_LIMIT_SIZE : pageSize;
return familyMemberWeekExpDAO.pageByFamilyId(familyId, roles, pageNo * pageSize, pageSize); return familyMemberWeekExpDAO.pageByFamilyId(familyId, pageNo * pageSize, pageSize);
} }

View File

@ -5,21 +5,20 @@
namespace="com.red.circle.other.infra.database.rds.dao.family.FamilyMemberWeekExpDAO"> namespace="com.red.circle.other.infra.database.rds.dao.family.FamilyMemberWeekExpDAO">
<select id="pageByFamilyId" <select id="pageByFamilyId"
resultType="com.red.circle.other.infra.database.rds.dto.family.FamilyMemberExpDTO"> resultType="com.red.circle.other.infra.database.rds.dto.family.FamilyMemberExpDTO">
SELECT fm.id AS id, SELECT
fm.sys_origin AS sysOrigin, fm.id AS id,
fm.family_id AS family_id, fm.sys_origin AS sysOrigin,
fm.member_user_id AS memberUserId, fm.family_id AS family_id,
fm.member_role AS memberRole, fm.member_user_id AS memberUserId,
fmwe.exp AS exp fm.member_role AS memberRole
FROM `family_member` fm FROM `family_member` fm
LEFT JOIN family_member_week_exp fmwe ON fm.`member_user_id`= fmwe.`family_member_id`
AND fm.`family_id`= fmwe.`family_id`
WHERE fm.`family_id` = #{familyId} WHERE fm.`family_id` = #{familyId}
AND fm.member_role IN ORDER BY
<foreach collection="roles" item="item" open="(" separator="," close=")"> CASE fm.member_role
#{item} WHEN 'ADMIN' THEN 1
</foreach> WHEN 'MANAGE' THEN 2
ORDER BY fmwe.exp DESC WHEN 'MEMBER' THEN 3
END
LIMIT #{start}, #{end} LIMIT #{start}, #{end}
</select> </select>