test #24
|
@ -113,7 +113,7 @@ class FcmSendListener(
|
|||
|
||||
FcmEventType.START_LIVE -> {
|
||||
if (fcmEvent.container.isNotBlank()) {
|
||||
val pushTokens = memberRepository.getCreateLiveRoomNotificationRecipientPushTokens(
|
||||
val pushTokens = memberRepository.getStartLiveRoomNotificationRecipientPushTokens(
|
||||
creatorId = fcmEvent.creatorId!!,
|
||||
isAuth = fcmEvent.isAuth,
|
||||
container = fcmEvent.container
|
||||
|
|
|
@ -3,6 +3,8 @@ package kr.co.vividnext.sodalive.member
|
|||
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||
import kr.co.vividnext.sodalive.fcm.GetMessageRecipientPushTokenResponse
|
||||
import kr.co.vividnext.sodalive.fcm.QGetMessageRecipientPushTokenResponse
|
||||
import kr.co.vividnext.sodalive.live.reservation.QLiveReservation.liveReservation
|
||||
import kr.co.vividnext.sodalive.live.room.QLiveRoom.liveRoom
|
||||
import kr.co.vividnext.sodalive.member.QMember.member
|
||||
import kr.co.vividnext.sodalive.member.auth.QAuth.auth
|
||||
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
||||
|
@ -30,6 +32,12 @@ interface MemberQueryRepository {
|
|||
container: String
|
||||
): List<List<String>>
|
||||
|
||||
fun getStartLiveRoomNotificationRecipientPushTokens(
|
||||
creatorId: Long,
|
||||
isAuth: Boolean,
|
||||
container: String
|
||||
): List<List<String>>
|
||||
|
||||
fun getUploadContentNotificationRecipientPushTokens(
|
||||
creatorId: Long,
|
||||
isAuth: Boolean,
|
||||
|
@ -135,6 +143,71 @@ class MemberQueryRepositoryImpl(
|
|||
.chunked(500)
|
||||
}
|
||||
|
||||
override fun getStartLiveRoomNotificationRecipientPushTokens(
|
||||
creatorId: Long,
|
||||
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)
|
||||
.and(creatorFollowing.member.container.eq(container))
|
||||
.and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
|
||||
.and(
|
||||
creatorFollowing.member.id.notIn(
|
||||
blockMemberRepository.getBlockedMemberList(creatorId)
|
||||
)
|
||||
)
|
||||
.and(creatorFollowing.member.pushToken.isNotNull)
|
||||
|
||||
if (isAuth) {
|
||||
where = where.and(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()
|
||||
.chunked(500)
|
||||
|
||||
where = liveReservation.isActive.isTrue
|
||||
.and(liveReservation.member.notification.live.isTrue)
|
||||
.and(liveReservation.member.container.eq(container))
|
||||
.and(liveReservation.member.email.notIn("admin@sodalive.net"))
|
||||
.and(liveReservation.member.pushToken.isNotNull)
|
||||
.and(
|
||||
liveReservation.member.id.notIn(
|
||||
blockMemberRepository.getBlockedMemberList(creatorId)
|
||||
)
|
||||
)
|
||||
|
||||
if (isAuth) {
|
||||
where = where.and(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()
|
||||
.chunked(500)
|
||||
|
||||
return followingMemberPushToken + reservationMemberPushToken
|
||||
}
|
||||
|
||||
override fun getUploadContentNotificationRecipientPushTokens(
|
||||
creatorId: Long,
|
||||
isAuth: Boolean,
|
||||
|
|
|
@ -349,6 +349,7 @@ class MemberService(
|
|||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun memberBlock(request: MemberBlockRequest, memberId: Long) {
|
||||
var blockMember = blockMemberRepository.getBlockAccount(
|
||||
blockedMemberId = request.blockMemberId,
|
||||
|
@ -367,6 +368,7 @@ class MemberService(
|
|||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun memberUnBlock(request: MemberBlockRequest, memberId: Long) {
|
||||
val blockMember = blockMemberRepository.getBlockAccount(
|
||||
blockedMemberId = request.blockMemberId,
|
||||
|
|
Loading…
Reference in New Issue