차단유저 필터링 로직 추가

This commit is contained in:
2023-08-09 06:54:25 +09:00
parent 705bf0b6b2
commit e9723d37ba
3 changed files with 29 additions and 7 deletions

View File

@@ -44,6 +44,7 @@ class LiveRecommendRepository(
fun getOnAirRecommendChannelList(
memberId: Long,
isBlocked: (Long) -> Boolean,
isAdult: Boolean
): List<GetRecommendChannelResponse> {
var where = member.role.eq(MemberRole.CREATOR)
@@ -75,12 +76,16 @@ class LiveRecommendRepository(
.orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
.limit(20)
.fetch()
.asSequence()
.filter { !isBlocked(it.creatorId) }
.toList()
}
fun getRecommendChannelList(
memberId: Long,
withOutCreatorList: List<Long>,
limit: Long
limit: Long,
isBlocked: (Long) -> Boolean
): List<GetRecommendChannelResponse> {
val where = member.role.eq(MemberRole.CREATOR)
.and(member.isActive.isTrue)

View File

@@ -1,10 +1,14 @@
package kr.co.vividnext.sodalive.live.recommend
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
import org.springframework.stereotype.Service
@Service
class LiveRecommendService(private val repository: LiveRecommendRepository) {
class LiveRecommendService(
private val repository: LiveRecommendRepository,
private val blockMemberRepository: BlockMemberRepository
) {
fun getRecommendLive(member: Member): List<GetRecommendLiveResponse> {
return repository.getRecommendLive(
@@ -14,7 +18,11 @@ class LiveRecommendService(private val repository: LiveRecommendRepository) {
}
fun getRecommendChannelList(member: Member): List<GetRecommendChannelResponse> {
val onAirChannelList = repository.getOnAirRecommendChannelList(member.id!!, isAdult = member.auth != null)
val onAirChannelList = repository.getOnAirRecommendChannelList(
member.id!!,
isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) },
isAdult = member.auth != null
)
if (onAirChannelList.size >= 20) {
return onAirChannelList
@@ -27,7 +35,8 @@ class LiveRecommendService(private val repository: LiveRecommendRepository) {
val notOnAirCreatorList = repository.getRecommendChannelList(
member.id!!,
withOutCreatorList = onAirCreatorIdList,
limit = (20 - onAirChannelList.size).toLong()
limit = (20 - onAirChannelList.size).toLong(),
isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) }
)
return onAirChannelList + notOnAirCreatorList