Compare commits

...

2 Commits

Author SHA1 Message Date
Klaus fc6916fc2d 크리에이터 채널 라이브 리스트
- 입장 가능한 라이브만 조회되도록 수정
2024-05-14 17:46:51 +09:00
Klaus c63949992f 라이브 추천/팔로잉 채널
- 입장 가능한 라이브가 있을 떄만 OnAir를 표시하도록 수정
2024-05-14 17:44:32 +09:00
3 changed files with 19 additions and 8 deletions

View File

@ -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) {

View File

@ -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(

View File

@ -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!!,