diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/series/AudioContentMainTabSeriesService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/series/AudioContentMainTabSeriesService.kt index 681dd5f..baca442 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/series/AudioContentMainTabSeriesService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/series/AudioContentMainTabSeriesService.kt @@ -23,15 +23,17 @@ class AudioContentMainTabSeriesService( ) { fun fetchData(member: Member): GetContentMainTabSeriesResponse { val isAdult = member.auth != null + val memberId = member.id!! // 메인 배너 (시리즈) val contentBannerList = bannerService.getBannerList( tabId = 2, - memberId = member.id!!, + memberId = memberId, isAdult = isAdult ) val originalAudioDrama = seriesService.getOriginalAudioDramaList( + memberId = memberId, isAdult = isAdult, offset = 0, limit = 20 @@ -48,7 +50,7 @@ class AudioContentMainTabSeriesService( .plusDays(1) val rankSeriesList = rankingService.getSeriesRanking( - memberId = member.id!!, + memberId = memberId, isAdult = isAdult, startDate = dailyRankingStartDate, endDate = dailyRankingEndDate @@ -60,7 +62,7 @@ class AudioContentMainTabSeriesService( // 장르별 추천 시리즈 val recommendSeriesList = if (genreList.isNotEmpty()) { rankingService.getSeriesAllRankingByGenre( - memberId = member.id!!, + memberId = memberId, isAdult = isAdult, genreId = genreList[0].id ) @@ -82,7 +84,7 @@ class AudioContentMainTabSeriesService( .plusMonths(1) val rankCompleteSeriesList = rankingService.getCompleteSeriesRanking( - memberId = member.id!!, + memberId = memberId, isAdult = isAdult, startDate = monthlyRankingStartDate, endDate = monthlyRankingEndDate @@ -98,7 +100,7 @@ class AudioContentMainTabSeriesService( .plusDays(6) val seriesRankCreatorList = rankingService.fetchCreatorBySeriesRevenueRankTop20( - memberId = member.id!!, + memberId = memberId, startDate = startDate.minusDays(1), endDate = endDate ) @@ -122,7 +124,7 @@ class AudioContentMainTabSeriesService( title = it.title, items = seriesService.fetchSeriesByCurationId( curationId = it.id!!, - memberId = member.id!!, + memberId = memberId, isAdult = isAdult ) ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesRepository.kt index e87f059..e91df51 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesRepository.kt @@ -35,7 +35,7 @@ interface ContentSeriesQueryRepository { fun getKeywordList(seriesId: Long): List fun getSeriesContentMinMaxPrice(seriesId: Long): GetSeriesContentMinMaxPriceResponse fun getRecommendSeriesList(isAuth: Boolean, contentType: ContentType, limit: Long): List - fun getOriginalAudioDramaList(isAdult: Boolean, offset: Long = 0, limit: Long = 20): List + fun getOriginalAudioDramaList(memberId: Long, isAdult: Boolean, offset: Long = 0, limit: Long = 20): List fun getGenreList(isAdult: Boolean): List fun findByCurationId(curationId: Long, memberId: Long, isAdult: Boolean): List } @@ -143,9 +143,14 @@ class ContentSeriesQueryRepositoryImpl( .fetch() } - override fun getOriginalAudioDramaList(isAdult: Boolean, offset: Long, limit: Long): List { + override fun getOriginalAudioDramaList(memberId: Long, isAdult: Boolean, offset: Long, limit: Long): List { + val blockMemberCondition = blockMember.member.id.eq(member.id) + .and(blockMember.isActive.isTrue) + .and(blockMember.blockedMember.id.eq(memberId)) + var where = series.isOriginal.isTrue .and(series.isActive.isTrue) + .and(blockMember.id.isNull) if (!isAdult) { where = where.and(series.isAdult.isFalse) @@ -153,6 +158,8 @@ class ContentSeriesQueryRepositoryImpl( return queryFactory .selectFrom(series) + .innerJoin(series.member, member) + .leftJoin(blockMember).on(blockMemberCondition) .where(where) .orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc()) .offset(offset) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt index 5b526ac..e3a7db1 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt @@ -31,11 +31,12 @@ class ContentSeriesService( private val coverImageHost: String ) { fun getOriginalAudioDramaList( + memberId: Long, isAdult: Boolean, offset: Long = 0, limit: Long = 20 ): List { - val originalAudioDramaList = repository.getOriginalAudioDramaList(isAdult, offset, limit) + val originalAudioDramaList = repository.getOriginalAudioDramaList(memberId, isAdult, offset, limit) return seriesToSeriesListItem(originalAudioDramaList, isAdult) }