Merge pull request '라이브 방 - 크리에이터 입장 가능 설정 추가' (#179) from test into main
Reviewed-on: #179
This commit is contained in:
commit
ef917ecc25
|
@ -351,6 +351,10 @@ class ExplorerQueryRepository(
|
||||||
where = where.and(liveRoom.isAdult.isFalse)
|
where = where.and(liveRoom.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userMember.role == MemberRole.CREATOR) {
|
||||||
|
where = where.and(liveRoom.isAvailableJoinCreator.isTrue)
|
||||||
|
}
|
||||||
|
|
||||||
val result = mutableListOf<LiveRoom>()
|
val result = mutableListOf<LiveRoom>()
|
||||||
|
|
||||||
if (offset == 0L) {
|
if (offset == 0L) {
|
||||||
|
|
|
@ -26,7 +26,8 @@ class FcmEvent(
|
||||||
val messageId: Long? = null,
|
val messageId: Long? = null,
|
||||||
val creatorId: Long? = null,
|
val creatorId: Long? = null,
|
||||||
val commentParentId: Long? = null,
|
val commentParentId: Long? = null,
|
||||||
val myMemberId: Long? = null
|
val myMemberId: Long? = null,
|
||||||
|
val isAvailableJoinCreator: Boolean? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
@ -99,6 +100,7 @@ class FcmSendListener(
|
||||||
val pushTokens = memberRepository.getCreateLiveRoomNotificationRecipientPushTokens(
|
val pushTokens = memberRepository.getCreateLiveRoomNotificationRecipientPushTokens(
|
||||||
creatorId = fcmEvent.creatorId!!,
|
creatorId = fcmEvent.creatorId!!,
|
||||||
isAuth = fcmEvent.isAuth ?: false,
|
isAuth = fcmEvent.isAuth ?: false,
|
||||||
|
isAvailableJoinCreator = fcmEvent.isAvailableJoinCreator ?: false,
|
||||||
container = fcmEvent.container
|
container = fcmEvent.container
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -120,6 +122,7 @@ class FcmSendListener(
|
||||||
creatorId = fcmEvent.creatorId!!,
|
creatorId = fcmEvent.creatorId!!,
|
||||||
roomId = fcmEvent.roomId!!,
|
roomId = fcmEvent.roomId!!,
|
||||||
isAuth = fcmEvent.isAuth ?: false,
|
isAuth = fcmEvent.isAuth ?: false,
|
||||||
|
isAvailableJoinCreator = fcmEvent.isAvailableJoinCreator ?: false,
|
||||||
container = fcmEvent.container
|
container = fcmEvent.container
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ class LiveRecommendRepository(
|
||||||
fun getOnAirRecommendChannelList(
|
fun getOnAirRecommendChannelList(
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
isBlocked: (Long) -> Boolean,
|
isBlocked: (Long) -> Boolean,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<GetRecommendChannelResponse> {
|
): List<GetRecommendChannelResponse> {
|
||||||
var where = member.role.eq(MemberRole.CREATOR)
|
var where = member.role.eq(MemberRole.CREATOR)
|
||||||
|
@ -62,6 +63,10 @@ class LiveRecommendRepository(
|
||||||
where = where.and(liveRoom.isAdult.isFalse)
|
where = where.and(liveRoom.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isCreator) {
|
||||||
|
where = where.and(liveRoom.isAvailableJoinCreator.isTrue)
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
Projections.constructor(
|
Projections.constructor(
|
||||||
|
@ -113,14 +118,13 @@ class LiveRecommendRepository(
|
||||||
.orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
|
.orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.fetch()
|
.fetch()
|
||||||
.asSequence()
|
|
||||||
.filter { !isBlocked(it.creatorId) }
|
.filter { !isBlocked(it.creatorId) }
|
||||||
.toList()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getOnAirFollowingChannelList(
|
fun getOnAirFollowingChannelList(
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
isBlocked: (Long) -> Boolean,
|
isBlocked: (Long) -> Boolean,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<GetRecommendChannelResponse> {
|
): List<GetRecommendChannelResponse> {
|
||||||
var where = member.role.eq(MemberRole.CREATOR)
|
var where = member.role.eq(MemberRole.CREATOR)
|
||||||
|
@ -130,6 +134,10 @@ class LiveRecommendRepository(
|
||||||
where = where.and(liveRoom.isAdult.isFalse)
|
where = where.and(liveRoom.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isCreator) {
|
||||||
|
where = where.and(liveRoom.isAvailableJoinCreator.isTrue)
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
Projections.constructor(
|
Projections.constructor(
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package kr.co.vividnext.sodalive.live.recommend
|
package kr.co.vividnext.sodalive.live.recommend
|
||||||
|
|
||||||
import kr.co.vividnext.sodalive.member.Member
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
|
import kr.co.vividnext.sodalive.member.MemberRole
|
||||||
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
||||||
import org.springframework.data.domain.Pageable
|
import org.springframework.data.domain.Pageable
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
@ -23,6 +24,7 @@ class LiveRecommendService(
|
||||||
val onAirChannelList = repository.getOnAirRecommendChannelList(
|
val onAirChannelList = repository.getOnAirRecommendChannelList(
|
||||||
member.id!!,
|
member.id!!,
|
||||||
isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) },
|
isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) },
|
||||||
|
isCreator = member.role == MemberRole.CREATOR,
|
||||||
isAdult = member.auth != null
|
isAdult = member.auth != null
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -30,9 +32,7 @@ class LiveRecommendService(
|
||||||
return onAirChannelList
|
return onAirChannelList
|
||||||
}
|
}
|
||||||
|
|
||||||
val onAirCreatorIdList = onAirChannelList.asSequence()
|
val onAirCreatorIdList = onAirChannelList.map { it.creatorId }
|
||||||
.map { it.creatorId }
|
|
||||||
.toList()
|
|
||||||
|
|
||||||
val notOnAirCreatorList = repository.getRecommendChannelList(
|
val notOnAirCreatorList = repository.getRecommendChannelList(
|
||||||
member.id!!,
|
member.id!!,
|
||||||
|
@ -48,6 +48,7 @@ class LiveRecommendService(
|
||||||
val onAirFollowingChannelList = repository.getOnAirFollowingChannelList(
|
val onAirFollowingChannelList = repository.getOnAirFollowingChannelList(
|
||||||
memberId = member.id!!,
|
memberId = member.id!!,
|
||||||
isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) },
|
isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) },
|
||||||
|
isCreator = member.role == MemberRole.CREATOR,
|
||||||
isAdult = member.auth != null
|
isAdult = member.auth != null
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -55,9 +56,7 @@ class LiveRecommendService(
|
||||||
return onAirFollowingChannelList
|
return onAirFollowingChannelList
|
||||||
}
|
}
|
||||||
|
|
||||||
val onAirCreatorIdList = onAirFollowingChannelList.asSequence()
|
val onAirCreatorIdList = onAirFollowingChannelList.map { it.creatorId }
|
||||||
.map { it.creatorId }
|
|
||||||
.toList()
|
|
||||||
|
|
||||||
val notOnAirFollowingChannelList = repository.getFollowingChannelList(
|
val notOnAirFollowingChannelList = repository.getFollowingChannelList(
|
||||||
memberId = member.id!!,
|
memberId = member.id!!,
|
||||||
|
|
|
@ -14,5 +14,6 @@ data class CreateLiveRoomRequest(
|
||||||
val password: String? = null,
|
val password: String? = null,
|
||||||
val menuPanId: Long = 0,
|
val menuPanId: Long = 0,
|
||||||
val menuPan: String = "",
|
val menuPan: String = "",
|
||||||
val isActiveMenuPan: Boolean = false
|
val isActiveMenuPan: Boolean = false,
|
||||||
|
val isAvailableJoinCreator: Boolean = true
|
||||||
)
|
)
|
||||||
|
|
|
@ -28,6 +28,7 @@ data class LiveRoom(
|
||||||
var bgImage: String? = null,
|
var bgImage: String? = null,
|
||||||
var isAdult: Boolean,
|
var isAdult: Boolean,
|
||||||
val price: Int = 0,
|
val price: Int = 0,
|
||||||
|
val isAvailableJoinCreator: Boolean = true,
|
||||||
@Enumerated(value = EnumType.STRING)
|
@Enumerated(value = EnumType.STRING)
|
||||||
val type: LiveRoomType = LiveRoomType.OPEN,
|
val type: LiveRoomType = LiveRoomType.OPEN,
|
||||||
@Column(nullable = true)
|
@Column(nullable = true)
|
||||||
|
|
|
@ -20,16 +20,30 @@ import java.time.ZoneId
|
||||||
interface LiveRoomRepository : JpaRepository<LiveRoom, Long>, LiveRoomQueryRepository
|
interface LiveRoomRepository : JpaRepository<LiveRoom, Long>, LiveRoomQueryRepository
|
||||||
|
|
||||||
interface LiveRoomQueryRepository {
|
interface LiveRoomQueryRepository {
|
||||||
fun getLiveRoomListNow(offset: Long, limit: Long, timezone: String, isAdult: Boolean): List<LiveRoom>
|
fun getLiveRoomListNow(
|
||||||
|
offset: Long,
|
||||||
|
limit: Long,
|
||||||
|
timezone: String,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
|
isAdult: Boolean
|
||||||
|
): List<LiveRoom>
|
||||||
|
|
||||||
fun getLiveRoomListReservationWithDate(
|
fun getLiveRoomListReservationWithDate(
|
||||||
date: LocalDateTime,
|
date: LocalDateTime,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long,
|
limit: Long,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<LiveRoom>
|
): List<LiveRoom>
|
||||||
|
|
||||||
fun getLiveRoomListReservationWithoutDate(timezone: String, memberId: Long, isAdult: Boolean): List<LiveRoom>
|
fun getLiveRoomListReservationWithoutDate(
|
||||||
|
timezone: String,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
|
isAdult: Boolean
|
||||||
|
): List<LiveRoom>
|
||||||
|
|
||||||
fun getLiveRoom(id: Long): LiveRoom?
|
fun getLiveRoom(id: Long): LiveRoom?
|
||||||
fun getLiveRoomAndAccountId(roomId: Long, memberId: Long): LiveRoom?
|
fun getLiveRoomAndAccountId(roomId: Long, memberId: Long): LiveRoom?
|
||||||
|
@ -40,7 +54,14 @@ interface LiveRoomQueryRepository {
|
||||||
}
|
}
|
||||||
|
|
||||||
class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : LiveRoomQueryRepository {
|
class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : LiveRoomQueryRepository {
|
||||||
override fun getLiveRoomListNow(offset: Long, limit: Long, timezone: String, isAdult: Boolean): List<LiveRoom> {
|
override fun getLiveRoomListNow(
|
||||||
|
offset: Long,
|
||||||
|
limit: Long,
|
||||||
|
timezone: String,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
|
isAdult: Boolean
|
||||||
|
): List<LiveRoom> {
|
||||||
var where = liveRoom.channelName.isNotNull
|
var where = liveRoom.channelName.isNotNull
|
||||||
.and(liveRoom.channelName.isNotEmpty)
|
.and(liveRoom.channelName.isNotEmpty)
|
||||||
.and(liveRoom.isActive.isTrue)
|
.and(liveRoom.isActive.isTrue)
|
||||||
|
@ -50,6 +71,13 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L
|
||||||
where = where.and(liveRoom.isAdult.isFalse)
|
where = where.and(liveRoom.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isCreator) {
|
||||||
|
where = where.and(
|
||||||
|
liveRoom.isAvailableJoinCreator.isTrue
|
||||||
|
.or(liveRoom.member.id.eq(memberId))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.selectFrom(liveRoom)
|
.selectFrom(liveRoom)
|
||||||
.innerJoin(liveRoom.member, member)
|
.innerJoin(liveRoom.member, member)
|
||||||
|
@ -70,6 +98,8 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L
|
||||||
date: LocalDateTime,
|
date: LocalDateTime,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long,
|
limit: Long,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<LiveRoom> {
|
): List<LiveRoom> {
|
||||||
var where = liveRoom.beginDateTime.goe(date)
|
var where = liveRoom.beginDateTime.goe(date)
|
||||||
|
@ -85,6 +115,13 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L
|
||||||
where = where.and(liveRoom.isAdult.isFalse)
|
where = where.and(liveRoom.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isCreator) {
|
||||||
|
where = where.and(
|
||||||
|
liveRoom.isAvailableJoinCreator.isTrue
|
||||||
|
.or(liveRoom.member.id.eq(memberId))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.selectFrom(liveRoom)
|
.selectFrom(liveRoom)
|
||||||
.innerJoin(liveRoom.member, member)
|
.innerJoin(liveRoom.member, member)
|
||||||
|
@ -98,6 +135,7 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L
|
||||||
override fun getLiveRoomListReservationWithoutDate(
|
override fun getLiveRoomListReservationWithoutDate(
|
||||||
timezone: String,
|
timezone: String,
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<LiveRoom> {
|
): List<LiveRoom> {
|
||||||
var where = liveRoom.beginDateTime.gt(
|
var where = liveRoom.beginDateTime.gt(
|
||||||
|
@ -117,6 +155,13 @@ class LiveRoomQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : L
|
||||||
where = where.and(liveRoom.isAdult.isFalse)
|
where = where.and(liveRoom.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isCreator) {
|
||||||
|
where = where.and(
|
||||||
|
liveRoom.isAvailableJoinCreator.isTrue
|
||||||
|
.or(liveRoom.member.id.eq(memberId))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.selectFrom(liveRoom)
|
.selectFrom(liveRoom)
|
||||||
.innerJoin(liveRoom.member, member)
|
.innerJoin(liveRoom.member, member)
|
||||||
|
|
|
@ -118,17 +118,26 @@ class LiveRoomService(
|
||||||
timezone: String
|
timezone: String
|
||||||
): List<GetRoomListResponse> {
|
): List<GetRoomListResponse> {
|
||||||
val roomList = if (status == LiveRoomStatus.NOW) {
|
val roomList = if (status == LiveRoomStatus.NOW) {
|
||||||
getLiveRoomListNow(pageable, timezone, isAdult = member.auth != null)
|
getLiveRoomListNow(
|
||||||
|
pageable,
|
||||||
|
timezone,
|
||||||
|
memberId = member.id!!,
|
||||||
|
isCreator = member.role == MemberRole.CREATOR,
|
||||||
|
isAdult = member.auth != null
|
||||||
|
)
|
||||||
} else if (dateString != null) {
|
} else if (dateString != null) {
|
||||||
getLiveRoomListReservationWithDate(
|
getLiveRoomListReservationWithDate(
|
||||||
dateString,
|
dateString,
|
||||||
pageable,
|
pageable,
|
||||||
timezone,
|
timezone,
|
||||||
|
memberId = member.id!!,
|
||||||
|
isCreator = member.role == MemberRole.CREATOR,
|
||||||
isAdult = member.auth != null
|
isAdult = member.auth != null
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
getLiveRoomListReservationWithoutDate(
|
getLiveRoomListReservationWithoutDate(
|
||||||
timezone,
|
timezone,
|
||||||
|
isCreator = member.role == MemberRole.CREATOR,
|
||||||
memberId = member.id!!,
|
memberId = member.id!!,
|
||||||
isAdult = member.auth != null
|
isAdult = member.auth != null
|
||||||
)
|
)
|
||||||
|
@ -186,11 +195,19 @@ class LiveRoomService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getLiveRoomListNow(pageable: Pageable, timezone: String, isAdult: Boolean): List<LiveRoom> {
|
private fun getLiveRoomListNow(
|
||||||
|
pageable: Pageable,
|
||||||
|
timezone: String,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
|
isAdult: Boolean
|
||||||
|
): List<LiveRoom> {
|
||||||
return repository.getLiveRoomListNow(
|
return repository.getLiveRoomListNow(
|
||||||
offset = pageable.offset,
|
offset = pageable.offset,
|
||||||
limit = pageable.pageSize.toLong(),
|
limit = pageable.pageSize.toLong(),
|
||||||
timezone = timezone,
|
timezone = timezone,
|
||||||
|
memberId = memberId,
|
||||||
|
isCreator = isCreator,
|
||||||
isAdult = isAdult
|
isAdult = isAdult
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -199,6 +216,8 @@ class LiveRoomService(
|
||||||
dateString: String,
|
dateString: String,
|
||||||
pageable: Pageable,
|
pageable: Pageable,
|
||||||
timezone: String,
|
timezone: String,
|
||||||
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<LiveRoom> {
|
): List<LiveRoom> {
|
||||||
val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
|
val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
|
||||||
|
@ -211,6 +230,8 @@ class LiveRoomService(
|
||||||
date = date,
|
date = date,
|
||||||
offset = pageable.offset,
|
offset = pageable.offset,
|
||||||
limit = pageable.pageSize.toLong(),
|
limit = pageable.pageSize.toLong(),
|
||||||
|
memberId = memberId,
|
||||||
|
isCreator = isCreator,
|
||||||
isAdult = isAdult
|
isAdult = isAdult
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -218,9 +239,10 @@ class LiveRoomService(
|
||||||
private fun getLiveRoomListReservationWithoutDate(
|
private fun getLiveRoomListReservationWithoutDate(
|
||||||
timezone: String,
|
timezone: String,
|
||||||
memberId: Long,
|
memberId: Long,
|
||||||
|
isCreator: Boolean,
|
||||||
isAdult: Boolean
|
isAdult: Boolean
|
||||||
): List<LiveRoom> {
|
): List<LiveRoom> {
|
||||||
return repository.getLiveRoomListReservationWithoutDate(timezone, memberId, isAdult)
|
return repository.getLiveRoomListReservationWithoutDate(timezone, memberId, isCreator, isAdult)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
@ -277,7 +299,8 @@ class LiveRoomService(
|
||||||
request.price
|
request.price
|
||||||
},
|
},
|
||||||
type = request.type,
|
type = request.type,
|
||||||
password = request.password
|
password = request.password,
|
||||||
|
isAvailableJoinCreator = request.isAvailableJoinCreator
|
||||||
)
|
)
|
||||||
room.member = member
|
room.member = member
|
||||||
|
|
||||||
|
@ -353,6 +376,7 @@ class LiveRoomService(
|
||||||
"라이브를 예약했습니다. - ${createdRoom.title}"
|
"라이브를 예약했습니다. - ${createdRoom.title}"
|
||||||
},
|
},
|
||||||
isAuth = createdRoom.isAdult,
|
isAuth = createdRoom.isAdult,
|
||||||
|
isAvailableJoinCreator = createdRoom.isAvailableJoinCreator,
|
||||||
roomId = createdRoom.id,
|
roomId = createdRoom.id,
|
||||||
creatorId = createdRoom.member!!.id,
|
creatorId = createdRoom.member!!.id,
|
||||||
container = "ios"
|
container = "ios"
|
||||||
|
@ -369,6 +393,7 @@ class LiveRoomService(
|
||||||
"라이브를 예약했습니다. - ${createdRoom.title}"
|
"라이브를 예약했습니다. - ${createdRoom.title}"
|
||||||
},
|
},
|
||||||
isAuth = createdRoom.isAdult,
|
isAuth = createdRoom.isAdult,
|
||||||
|
isAvailableJoinCreator = createdRoom.isAvailableJoinCreator,
|
||||||
roomId = createdRoom.id,
|
roomId = createdRoom.id,
|
||||||
creatorId = createdRoom.member!!.id,
|
creatorId = createdRoom.member!!.id,
|
||||||
container = "aos"
|
container = "aos"
|
||||||
|
@ -511,6 +536,7 @@ class LiveRoomService(
|
||||||
title = room.member!!.nickname,
|
title = room.member!!.nickname,
|
||||||
message = "라이브를 시작했습니다 - ${room.title}",
|
message = "라이브를 시작했습니다 - ${room.title}",
|
||||||
isAuth = room.isAdult,
|
isAuth = room.isAdult,
|
||||||
|
isAvailableJoinCreator = room.isAvailableJoinCreator,
|
||||||
roomId = room.id,
|
roomId = room.id,
|
||||||
creatorId = room.member!!.id,
|
creatorId = room.member!!.id,
|
||||||
container = "ios"
|
container = "ios"
|
||||||
|
@ -523,6 +549,7 @@ class LiveRoomService(
|
||||||
title = room.member!!.nickname,
|
title = room.member!!.nickname,
|
||||||
message = "라이브를 시작했습니다 - ${room.title}",
|
message = "라이브를 시작했습니다 - ${room.title}",
|
||||||
isAuth = room.isAdult,
|
isAuth = room.isAdult,
|
||||||
|
isAvailableJoinCreator = room.isAvailableJoinCreator,
|
||||||
roomId = room.id,
|
roomId = room.id,
|
||||||
creatorId = room.member!!.id,
|
creatorId = room.member!!.id,
|
||||||
container = "aos"
|
container = "aos"
|
||||||
|
|
|
@ -29,6 +29,7 @@ interface MemberQueryRepository {
|
||||||
fun getCreateLiveRoomNotificationRecipientPushTokens(
|
fun getCreateLiveRoomNotificationRecipientPushTokens(
|
||||||
creatorId: Long,
|
creatorId: Long,
|
||||||
isAuth: Boolean,
|
isAuth: Boolean,
|
||||||
|
isAvailableJoinCreator: Boolean,
|
||||||
container: String
|
container: String
|
||||||
): List<List<String>>
|
): List<List<String>>
|
||||||
|
|
||||||
|
@ -36,6 +37,7 @@ interface MemberQueryRepository {
|
||||||
creatorId: Long,
|
creatorId: Long,
|
||||||
roomId: Long,
|
roomId: Long,
|
||||||
isAuth: Boolean,
|
isAuth: Boolean,
|
||||||
|
isAvailableJoinCreator: Boolean,
|
||||||
container: String
|
container: String
|
||||||
): List<List<String>>
|
): List<List<String>>
|
||||||
|
|
||||||
|
@ -120,6 +122,7 @@ class MemberQueryRepositoryImpl(
|
||||||
override fun getCreateLiveRoomNotificationRecipientPushTokens(
|
override fun getCreateLiveRoomNotificationRecipientPushTokens(
|
||||||
creatorId: Long,
|
creatorId: Long,
|
||||||
isAuth: Boolean,
|
isAuth: Boolean,
|
||||||
|
isAvailableJoinCreator: Boolean,
|
||||||
container: String
|
container: String
|
||||||
): List<List<String>> {
|
): List<List<String>> {
|
||||||
val member = QMember.member
|
val member = QMember.member
|
||||||
|
@ -142,6 +145,10 @@ class MemberQueryRepositoryImpl(
|
||||||
where = where.and(auth.isNotNull)
|
where = where.and(auth.isNotNull)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isAvailableJoinCreator) {
|
||||||
|
where = where.and(creatorFollowing.member.role.ne(MemberRole.CREATOR))
|
||||||
|
}
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(creatorFollowing.member.pushToken)
|
.select(creatorFollowing.member.pushToken)
|
||||||
.from(creatorFollowing)
|
.from(creatorFollowing)
|
||||||
|
@ -159,6 +166,7 @@ class MemberQueryRepositoryImpl(
|
||||||
creatorId: Long,
|
creatorId: Long,
|
||||||
roomId: Long,
|
roomId: Long,
|
||||||
isAuth: Boolean,
|
isAuth: Boolean,
|
||||||
|
isAvailableJoinCreator: Boolean,
|
||||||
container: String
|
container: String
|
||||||
): List<List<String>> {
|
): List<List<String>> {
|
||||||
val member = QMember.member
|
val member = QMember.member
|
||||||
|
@ -181,6 +189,10 @@ class MemberQueryRepositoryImpl(
|
||||||
where = where.and(auth.isNotNull)
|
where = where.and(auth.isNotNull)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isAvailableJoinCreator) {
|
||||||
|
where = where.and(creatorFollowing.member.role.ne(MemberRole.CREATOR))
|
||||||
|
}
|
||||||
|
|
||||||
val followingMemberPushToken = queryFactory
|
val followingMemberPushToken = queryFactory
|
||||||
.select(creatorFollowing.member.pushToken)
|
.select(creatorFollowing.member.pushToken)
|
||||||
.from(creatorFollowing)
|
.from(creatorFollowing)
|
||||||
|
|
Loading…
Reference in New Issue