From 63f952d390f9656ff660f59e56b42d614c008e77 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 12 Feb 2025 19:54:11 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EC=8B=9C=EB=A6=AC=EC=A6=88=20=ED=83=AD=20-=20?= =?UTF-8?q?=EC=B0=A8=EB=8B=A8=20=EB=8B=B9=ED=95=9C=20=EC=9C=A0=EC=A0=80?= =?UTF-8?q?=EB=8A=94=20=EC=98=A4=EB=A6=AC=EC=A7=80=EB=84=90=20=EC=98=A4?= =?UTF-8?q?=EB=94=94=EC=98=A4=20=EB=93=9C=EB=9D=BC=EB=A7=88=EA=B0=80=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tab/series/AudioContentMainTabSeriesService.kt | 14 ++++++++------ .../content/series/ContentSeriesRepository.kt | 11 +++++++++-- .../content/series/ContentSeriesService.kt | 3 ++- 3 files changed, 19 insertions(+), 9 deletions(-) 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) }