diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/payment/CanPaymentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/payment/CanPaymentService.kt index 29da205..14479c8 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/can/payment/CanPaymentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/payment/CanPaymentService.kt @@ -36,6 +36,7 @@ class CanPaymentService( memberId: Long, needCan: Int, canUsage: CanUsage, + isSecret: Boolean = false, liveRoom: LiveRoom? = null, order: Order? = null, audioContent: AudioContent? = null, @@ -65,7 +66,8 @@ class CanPaymentService( val useCan = UseCan( canUsage = canUsage, can = useChargeCan?.total ?: 0, - rewardCan = useRewardCan.total + rewardCan = useRewardCan.total, + isSecret = isSecret ) var recipientId: Long? = null diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/use/UseCan.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/use/UseCan.kt index 916d4b0..31ac687 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/can/use/UseCan.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/use/UseCan.kt @@ -25,7 +25,9 @@ data class UseCan( val rewardCan: Int, - var isRefund: Boolean = false + var isRefund: Boolean = false, + + val isSecret: Boolean = false ) : BaseEntity() { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", nullable = false) 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 981139f..766c7fa 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt @@ -198,7 +198,7 @@ class ExplorerQueryRepository( member.role.eq(MemberRole.CREATOR) .and(member.isActive.isTrue) .and(auth.gender.eq(gender)) - .and(member.id.notIn(3, 351, 19209, 8103)) + .and(member.id.notIn(3, 351, 19209, 8103, 19775)) ) .orderBy(caseExpression.asc(), randomExpression) .offset(0) 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 9b19673..c4aeac8 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 @@ -229,6 +229,7 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L liveRoom.id.eq(roomId) .and(useCan.canUsage.eq(CanUsage.DONATION).or(useCan.canUsage.eq(CanUsage.SPIN_ROULETTE))) .and(useCan.isRefund.isFalse) + .and(useCan.isSecret.isFalse) ) .fetchOne() } @@ -253,6 +254,7 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L useCan.room.id.eq(roomId) .and(useCan.canUsage.eq(CanUsage.DONATION).or(useCan.canUsage.eq(CanUsage.SPIN_ROULETTE))) .and(useCan.isRefund.isFalse) + .and(useCan.isSecret.isFalse) ) .orderBy(useCan.can.sum().add(useCan.rewardCan.sum()).desc()) .fetch() 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 1d026e0..32b0c0e 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 @@ -1052,11 +1052,12 @@ class LiveRoomService( memberId = member.id!!, needCan = request.can, canUsage = CanUsage.DONATION, + isSecret = request.isSecret, liveRoom = room, container = request.container ) - if (request.message.isNotBlank()) { + if (!request.isSecret && request.message.isNotBlank()) { val lock = getOrCreateLock(memberId = member.id!!) lock.write { val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!) @@ -1095,11 +1096,12 @@ class LiveRoomService( memberId = member.id!!, needCan = request.can, canUsage = CanUsage.DONATION, + isSecret = request.isSecret, liveRoom = room, container = request.container ) - if (request.message.isNotBlank()) { + if (!request.isSecret && request.message.isNotBlank()) { val lock = getOrCreateLock(memberId = member.id!!) lock.write { val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/donation/LiveRoomDonationRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/donation/LiveRoomDonationRequest.kt index 732bd84..0d7efac 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/donation/LiveRoomDonationRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/donation/LiveRoomDonationRequest.kt @@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.live.room.donation data class LiveRoomDonationRequest( val roomId: Long, val can: Int, + val isSecret: Boolean = false, val container: String, val message: String = "" )