diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt index d1fe8f2..3445f6a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt @@ -56,6 +56,7 @@ interface LiveRoomQueryRepository { fun getRoomActiveAndChannelNameIsNotNull(memberId: Long): List fun getActiveRoomIdList(memberId: Long): Int fun getTotalHeartCount(roomId: Long): Int? + fun getLiveRoomCreatorId(roomId: Long): Long? } class LiveRoomQueryRepositoryImpl( @@ -334,4 +335,15 @@ class LiveRoomQueryRepositoryImpl( .where(where) .fetchOne() } + + override fun getLiveRoomCreatorId(roomId: Long): Long? { + return queryFactory + .select(liveRoom.member.id) + .from(liveRoom) + .where( + liveRoom.isActive.isTrue + .and(liveRoom.id.eq(roomId)) + ) + .fetchFirst() + } } 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 6f23069..4c31c80 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 @@ -885,11 +885,18 @@ class LiveRoomService( } fun getDonationMessageList(roomId: Long, member: Member): List { + val liveRoomCreatorId = repository.getLiveRoomCreatorId(roomId) + ?: throw SodaException("해당하는 라이브의 정보가 없습니다.") + val roomInfo = roomInfoRepository.findByIdOrNull(roomId) ?: throw SodaException("해당하는 라이브의 정보가 없습니다.") - return roomInfo.donationMessageList - .filter { !it.isSecret || it.memberId == member.id!! } + return if (liveRoomCreatorId != member.id!!) { + roomInfo.donationMessageList + .filter { !it.isSecret || it.memberId == member.id!! } + } else { + roomInfo.donationMessageList + } } fun deleteDonationMessage(request: DeleteLiveRoomDonationMessage, member: Member) {