홈 크리에이터 랭킹 팔로우 조회 최적화
홈 API의 크리에이터 랭킹 응답에서 팔로우 여부를 일괄 조회로 계산한다.
This commit is contained in:
@@ -82,18 +82,20 @@ class HomeService(
|
||||
timezone = timezone
|
||||
)
|
||||
|
||||
val creatorRanking = rankingRepository
|
||||
.getCreatorRankings(memberId = memberId)
|
||||
.map {
|
||||
val followerCount = explorerQueryRepository.getNotificationUserIds(it.id!!).size
|
||||
val follow = if (memberId != null) {
|
||||
explorerQueryRepository.isFollow(it.id!!, memberId = memberId)
|
||||
} else {
|
||||
false
|
||||
}
|
||||
val creatorRankingMembers = rankingRepository.getCreatorRankings(memberId = memberId)
|
||||
val creatorRankingIds = creatorRankingMembers.mapNotNull { it.id }
|
||||
val followedCreatorIds = if (memberId != null) {
|
||||
explorerQueryRepository.getFollowedCreatorIds(creatorRankingIds, memberId)
|
||||
} else {
|
||||
emptySet()
|
||||
}
|
||||
|
||||
it.toExplorerSectionCreator(imageHost, follow, followerCount = followerCount)
|
||||
}
|
||||
val creatorRanking = creatorRankingMembers.map { creator ->
|
||||
val creatorId = creator.id!!
|
||||
val follow = memberId != null && followedCreatorIds.contains(creatorId)
|
||||
|
||||
creator.toExplorerSectionCreator(imageHost, follow)
|
||||
}
|
||||
|
||||
val latestContentThemeList = contentThemeService.getActiveThemeOfContent(
|
||||
isAdult = isAdult,
|
||||
|
||||
Reference in New Issue
Block a user