diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt index 833a825..8330a24 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt @@ -26,7 +26,8 @@ class FcmEvent( val messageId: Long? = null, val creatorId: Long? = null, val commentParentId: Long? = null, - val myMemberId: Long? = null + val myMemberId: Long? = null, + val isAvailableJoinCreator: Boolean? = null ) @Component @@ -99,6 +100,7 @@ class FcmSendListener( val pushTokens = memberRepository.getCreateLiveRoomNotificationRecipientPushTokens( creatorId = fcmEvent.creatorId!!, isAuth = fcmEvent.isAuth ?: false, + isAvailableJoinCreator = fcmEvent.isAvailableJoinCreator ?: false, container = fcmEvent.container ) @@ -120,6 +122,7 @@ class FcmSendListener( creatorId = fcmEvent.creatorId!!, roomId = fcmEvent.roomId!!, isAuth = fcmEvent.isAuth ?: false, + isAvailableJoinCreator = fcmEvent.isAvailableJoinCreator ?: false, container = fcmEvent.container ) 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 66e9d38..3bb8df2 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 @@ -376,6 +376,7 @@ class LiveRoomService( "라이브를 예약했습니다. - ${createdRoom.title}" }, isAuth = createdRoom.isAdult, + isAvailableJoinCreator = createdRoom.isAvailableJoinCreator, roomId = createdRoom.id, creatorId = createdRoom.member!!.id, container = "ios" @@ -392,6 +393,7 @@ class LiveRoomService( "라이브를 예약했습니다. - ${createdRoom.title}" }, isAuth = createdRoom.isAdult, + isAvailableJoinCreator = createdRoom.isAvailableJoinCreator, roomId = createdRoom.id, creatorId = createdRoom.member!!.id, container = "aos" @@ -534,6 +536,7 @@ class LiveRoomService( title = room.member!!.nickname, message = "라이브를 시작했습니다 - ${room.title}", isAuth = room.isAdult, + isAvailableJoinCreator = room.isAvailableJoinCreator, roomId = room.id, creatorId = room.member!!.id, container = "ios" @@ -546,6 +549,7 @@ class LiveRoomService( title = room.member!!.nickname, message = "라이브를 시작했습니다 - ${room.title}", isAuth = room.isAdult, + isAvailableJoinCreator = room.isAvailableJoinCreator, roomId = room.id, creatorId = room.member!!.id, container = "aos" diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt index 9839c64..364f2e4 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt @@ -29,6 +29,7 @@ interface MemberQueryRepository { fun getCreateLiveRoomNotificationRecipientPushTokens( creatorId: Long, isAuth: Boolean, + isAvailableJoinCreator: Boolean, container: String ): List> @@ -36,6 +37,7 @@ interface MemberQueryRepository { creatorId: Long, roomId: Long, isAuth: Boolean, + isAvailableJoinCreator: Boolean, container: String ): List> @@ -120,6 +122,7 @@ class MemberQueryRepositoryImpl( override fun getCreateLiveRoomNotificationRecipientPushTokens( creatorId: Long, isAuth: Boolean, + isAvailableJoinCreator: Boolean, container: String ): List> { val member = QMember.member @@ -142,6 +145,10 @@ class MemberQueryRepositoryImpl( where = where.and(auth.isNotNull) } + if (!isAvailableJoinCreator) { + where = where.and(creatorFollowing.member.role.ne(MemberRole.CREATOR)) + } + return queryFactory .select(creatorFollowing.member.pushToken) .from(creatorFollowing) @@ -159,6 +166,7 @@ class MemberQueryRepositoryImpl( creatorId: Long, roomId: Long, isAuth: Boolean, + isAvailableJoinCreator: Boolean, container: String ): List> { val member = QMember.member @@ -181,6 +189,10 @@ class MemberQueryRepositoryImpl( where = where.and(auth.isNotNull) } + if (!isAvailableJoinCreator) { + where = where.and(creatorFollowing.member.role.ne(MemberRole.CREATOR)) + } + val followingMemberPushToken = queryFactory .select(creatorFollowing.member.pushToken) .from(creatorFollowing)