라이브 예약 후 시작 시 푸시 - join 제거

This commit is contained in:
Klaus 2023-09-07 22:18:41 +09:00
parent 300e20dcd0
commit 8b30c1c319
2 changed files with 7 additions and 12 deletions

View File

@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.fcm
import kr.co.vividnext.sodalive.content.comment.AudioContentCommentRepository
import kr.co.vividnext.sodalive.member.MemberRepository
import org.slf4j.LoggerFactory
import org.springframework.scheduling.annotation.Async
import org.springframework.stereotype.Component
import org.springframework.transaction.annotation.Propagation
@ -34,10 +35,14 @@ class FcmSendListener(
private val memberRepository: MemberRepository,
private val contentCommentRepository: AudioContentCommentRepository
) {
private val logger = LoggerFactory.getLogger(this::class.java)
@Async
@TransactionalEventListener
@Transactional(propagation = Propagation.REQUIRES_NEW)
fun send(fcmEvent: FcmEvent) {
logger.info("발송타입 - ${fcmEvent.type}")
when (fcmEvent.type) {
FcmEventType.ALL -> {
if (fcmEvent.container.isNotBlank()) {

View File

@ -149,9 +149,6 @@ class MemberQueryRepositoryImpl(
isAuth: Boolean,
container: String
): List<List<String>> {
val member = QMember.member
val creator = QMember.member
var where = creatorFollowing.isActive.isTrue
.and(creatorFollowing.creator.id.eq(creatorId))
.and(creatorFollowing.member.notification.live.isTrue)
@ -165,16 +162,12 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.pushToken.isNotNull)
if (isAuth) {
where = where.and(member.auth.isNotNull)
where = where.and(creatorFollowing.member.auth.isNotNull)
}
val followingMemberPushToken = queryFactory
.select(creatorFollowing.member.pushToken)
.from(creatorFollowing)
.innerJoin(creatorFollowing.creator, creator)
.innerJoin(creatorFollowing.member, member)
.innerJoin(member.notification, memberNotification)
.leftJoin(member.auth, auth)
.where(where)
.fetch()
.toSet()
@ -192,15 +185,12 @@ class MemberQueryRepositoryImpl(
)
if (isAuth) {
where = where.and(member.auth.isNotNull)
where = where.and(liveReservation.member.auth.isNotNull)
}
val reservationMemberPushToken = queryFactory
.select(liveReservation.member.pushToken)
.from(liveReservation)
.innerJoin(liveReservation.member, member)
.innerJoin(liveReservation.room, liveRoom)
.innerJoin(liveRoom.member, creator)
.where(where)
.fetch()
.toSet()