test #24
|
@ -113,7 +113,7 @@ class FcmSendListener(
|
||||||
|
|
||||||
FcmEventType.START_LIVE -> {
|
FcmEventType.START_LIVE -> {
|
||||||
if (fcmEvent.container.isNotBlank()) {
|
if (fcmEvent.container.isNotBlank()) {
|
||||||
val pushTokens = memberRepository.getCreateLiveRoomNotificationRecipientPushTokens(
|
val pushTokens = memberRepository.getStartLiveRoomNotificationRecipientPushTokens(
|
||||||
creatorId = fcmEvent.creatorId!!,
|
creatorId = fcmEvent.creatorId!!,
|
||||||
isAuth = fcmEvent.isAuth,
|
isAuth = fcmEvent.isAuth,
|
||||||
container = fcmEvent.container
|
container = fcmEvent.container
|
||||||
|
|
|
@ -3,6 +3,8 @@ package kr.co.vividnext.sodalive.member
|
||||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||||
import kr.co.vividnext.sodalive.fcm.GetMessageRecipientPushTokenResponse
|
import kr.co.vividnext.sodalive.fcm.GetMessageRecipientPushTokenResponse
|
||||||
import kr.co.vividnext.sodalive.fcm.QGetMessageRecipientPushTokenResponse
|
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.QMember.member
|
||||||
import kr.co.vividnext.sodalive.member.auth.QAuth.auth
|
import kr.co.vividnext.sodalive.member.auth.QAuth.auth
|
||||||
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
||||||
|
@ -30,6 +32,12 @@ interface MemberQueryRepository {
|
||||||
container: String
|
container: String
|
||||||
): List<List<String>>
|
): List<List<String>>
|
||||||
|
|
||||||
|
fun getStartLiveRoomNotificationRecipientPushTokens(
|
||||||
|
creatorId: Long,
|
||||||
|
isAuth: Boolean,
|
||||||
|
container: String
|
||||||
|
): List<List<String>>
|
||||||
|
|
||||||
fun getUploadContentNotificationRecipientPushTokens(
|
fun getUploadContentNotificationRecipientPushTokens(
|
||||||
creatorId: Long,
|
creatorId: Long,
|
||||||
isAuth: Boolean,
|
isAuth: Boolean,
|
||||||
|
@ -135,6 +143,71 @@ class MemberQueryRepositoryImpl(
|
||||||
.chunked(500)
|
.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(
|
override fun getUploadContentNotificationRecipientPushTokens(
|
||||||
creatorId: Long,
|
creatorId: Long,
|
||||||
isAuth: Boolean,
|
isAuth: Boolean,
|
||||||
|
|
|
@ -349,6 +349,7 @@ class MemberService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
fun memberBlock(request: MemberBlockRequest, memberId: Long) {
|
fun memberBlock(request: MemberBlockRequest, memberId: Long) {
|
||||||
var blockMember = blockMemberRepository.getBlockAccount(
|
var blockMember = blockMemberRepository.getBlockAccount(
|
||||||
blockedMemberId = request.blockMemberId,
|
blockedMemberId = request.blockMemberId,
|
||||||
|
@ -367,6 +368,7 @@ class MemberService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
fun memberUnBlock(request: MemberBlockRequest, memberId: Long) {
|
fun memberUnBlock(request: MemberBlockRequest, memberId: Long) {
|
||||||
val blockMember = blockMemberRepository.getBlockAccount(
|
val blockMember = blockMemberRepository.getBlockAccount(
|
||||||
blockedMemberId = request.blockMemberId,
|
blockedMemberId = request.blockMemberId,
|
||||||
|
|
Loading…
Reference in New Issue