diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt index 6af9d76..eaad92d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt @@ -628,4 +628,12 @@ class ExplorerQueryRepository( ) .fetchFirst() } + + fun getVisibleDonationRank(creatorId: Long): Boolean { + return queryFactory + .select(member.isVisibleDonationRank) + .from(member) + .where(member.id.eq(creatorId)) + .fetchFirst() + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerService.kt index 4738f03..3cd6682 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerService.kt @@ -178,11 +178,15 @@ class ExplorerService( val notificationRecipientCount = notificationUserIds.size // 후원랭킹 - val memberDonationRanking = queryRepository.getMemberDonationRanking( - creatorId, - 10, - withDonationCan = creatorId == member.id!! - ) + val memberDonationRanking = if (creatorId == member.id!! || creatorAccount.isVisibleDonationRank) { + queryRepository.getMemberDonationRanking( + creatorId, + 10, + withDonationCan = creatorId == member.id!! + ) + } else { + listOf() + } // 추천 크리에이터 val similarCreatorList = queryRepository.getSimilarCreatorList(creatorId) @@ -290,6 +294,11 @@ class ExplorerService( } else { 0 }, + isVisibleDonationRank = if (creatorId == member.id!!) { + queryRepository.getVisibleDonationRank(creatorId) + } else { + false + }, totalCount = queryRepository.getMemberDonationRankingTotal(creatorId), userDonationRanking = queryRepository.getMemberDonationRanking( creatorId, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/MemberDonationRankingResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/MemberDonationRankingResponse.kt index 16af1c3..0776312 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/MemberDonationRankingResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/MemberDonationRankingResponse.kt @@ -4,6 +4,7 @@ data class GetDonationAllResponse( val accumulatedCansToday: Int, val accumulatedCansLastWeek: Int, val accumulatedCansThisMonth: Int, + val isVisibleDonationRank: Boolean, val totalCount: Int, val userDonationRanking: List ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 2d86b53..5661830 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -653,15 +653,19 @@ class LiveRoomService( .getNotificationUserIds(room.member!!.id!!) .contains(member.id) - val donationRankingTop3UserIds = explorerQueryRepository - .getMemberDonationRanking( - room.member!!.id!!, - 3, - withDonationCan = false - ) - .asSequence() - .map { it.userId } - .toList() + val donationRankingTop3UserIds = if (room.member!!.isVisibleDonationRank) { + explorerQueryRepository + .getMemberDonationRanking( + room.member!!.id!!, + 3, + withDonationCan = false + ) + .asSequence() + .map { it.userId } + .toList() + } else { + listOf() + } return GetRoomInfoResponse( roomId = roomId, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/Member.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/Member.kt index 8d8fbd1..1b5eb59 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/Member.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/Member.kt @@ -28,6 +28,8 @@ data class Member( @Enumerated(value = EnumType.STRING) var role: MemberRole = MemberRole.USER, + var isVisibleDonationRank: Boolean = true, + var isActive: Boolean = true, var container: String = "web" diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt index 9b788bc..975064f 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt @@ -547,6 +547,10 @@ class MemberService( member.blogUrl = profileUpdateRequest.blogUrl } + if (profileUpdateRequest.isVisibleDonationRank != null) { + member.isVisibleDonationRank = profileUpdateRequest.isVisibleDonationRank + } + return ProfileResponse(member, cloudFrontHost, profileUpdateRequest.container) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/ProfileUpdateRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/ProfileUpdateRequest.kt index 790db10..aeaac65 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/ProfileUpdateRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/ProfileUpdateRequest.kt @@ -13,5 +13,6 @@ data class ProfileUpdateRequest( val instagramUrl: String? = null, val websiteUrl: String? = null, val blogUrl: String? = null, + val isVisibleDonationRank: Boolean? = null, val container: String )