크리에이터 채널 공지사항 변경 시 푸시 발송

This commit is contained in:
2023-08-25 22:42:23 +09:00
parent 0679fdfb6d
commit 41a6e05034
4 changed files with 92 additions and 2 deletions

View File

@@ -40,6 +40,8 @@ interface MemberQueryRepository {
fun getIndividualRecipientPushTokens(recipients: List<Long>, isAuth: Boolean): Map<String, List<List<String>>>
fun getChangeNicknamePrice(memberId: Long): GetChangeNicknamePriceResponse
fun getMemberByEmail(email: String): Member?
fun getChangeNoticeRecipientPushTokens(creatorId: Long): Map<String, List<List<String>>>
}
@Repository
@@ -244,4 +246,41 @@ class MemberQueryRepositoryImpl(
.where(member.email.eq(email))
.fetchOne()
}
override fun getChangeNoticeRecipientPushTokens(creatorId: Long): Map<String, List<List<String>>> {
val member = QMember.member
val creator = QMember.member
val where = creatorFollowing.isActive.isTrue
.and(creatorFollowing.creator.id.eq(creatorId))
.and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
.and(
creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId)
)
)
.and(creatorFollowing.member.pushToken.isNotNull)
val aosPushTokens = queryFactory
.select(creatorFollowing.member.pushToken)
.from(creatorFollowing)
.innerJoin(creatorFollowing.creator, creator)
.innerJoin(creatorFollowing.member, member)
.where(where.and(member.container.eq("aos")))
.fetch()
.toSet()
.chunked(500)
val iosPushTokens = queryFactory
.select(creatorFollowing.member.pushToken)
.from(creatorFollowing)
.innerJoin(creatorFollowing.creator, creator)
.innerJoin(creatorFollowing.member, member)
.where(where.and(member.container.eq("ios")))
.fetch()
.toSet()
.chunked(500)
return mapOf("aos" to aosPushTokens, "ios" to iosPushTokens)
}
}