From 433a9a29c5aff8ccb9b99fadb358aa9401f3d681 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 19 Feb 2025 21:46:02 +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=9E=A5=EB=A5=B4=EB=B3=84=20=EC=8B=9C=EB=A6=AC=EC=A6=88=20-?= =?UTF-8?q?=20=EC=BD=98=ED=85=90=EC=B8=A0=EA=B0=80=20=EC=9E=88=EB=8A=94=20?= =?UTF-8?q?=EC=9E=A5=EB=A5=B4=EB=A7=8C=20=ED=91=9C=EC=8B=9C=ED=95=98?= =?UTF-8?q?=EB=8F=84=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 --- .../AudioContentMainTabSeriesService.kt | 2 +- .../content/series/ContentSeriesRepository.kt | 25 ++++++++++++++++--- .../content/series/ContentSeriesService.kt | 4 +-- 3 files changed, 25 insertions(+), 6 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 cda1dc0..479c015 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 @@ -58,7 +58,7 @@ class AudioContentMainTabSeriesService( ) // 시리즈 장르 - val genreList = seriesService.getGenreList(isAdult = isAdult) + val genreList = seriesService.getGenreList(memberId = memberId, isAdult = isAdult) // 장르별 추천 시리즈 val recommendSeriesList = if (genreList.isNotEmpty()) { 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 147d503..97631d0 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 @@ -37,7 +37,7 @@ interface ContentSeriesQueryRepository { fun getRecommendSeriesList(isAuth: Boolean, contentType: ContentType, limit: Long): List fun getOriginalAudioDramaList(memberId: Long, isAdult: Boolean, offset: Long = 0, limit: Long = 20): List fun getOriginalAudioDramaTotalCount(memberId: Long, isAdult: Boolean): Int - fun getGenreList(isAdult: Boolean): List + fun getGenreList(isAdult: Boolean, memberId: Long): List fun findByCurationId(curationId: Long, memberId: Long, isAdult: Boolean): List } @@ -191,17 +191,36 @@ class ContentSeriesQueryRepositoryImpl( .size } - override fun getGenreList(isAdult: Boolean): List { + override fun getGenreList(isAdult: Boolean, memberId: Long): List { + val blockMemberCondition = blockMember.member.id.eq(member.id) + .and(blockMember.isActive.isTrue) + .and(blockMember.blockedMember.id.eq(memberId)) + var where = seriesGenre.isActive.isTrue + .and(series.isActive.isTrue) + .and(audioContent.isActive.isTrue) + .and(member.isActive.isTrue) + .and(member.isNotNull) + .and(member.role.eq(MemberRole.CREATOR)) + .and(audioContent.duration.isNotNull) + .and(audioContent.limited.isNull) + .and(blockMember.id.isNull) if (!isAdult) { where = where.and(seriesGenre.isAdult.isFalse) + .and(series.isAdult.isFalse) } return queryFactory .select(QGetSeriesGenreListResponse(seriesGenre.id, seriesGenre.genre)) - .from(seriesGenre) + .from(seriesContent) + .innerJoin(seriesContent.series, series) + .innerJoin(series.genre, seriesGenre) + .innerJoin(seriesContent.content, audioContent) + .innerJoin(series.member, member) + .leftJoin(blockMember).on(blockMemberCondition) .where(where) + .groupBy(seriesGenre.id) .orderBy(seriesGenre.orders.asc()) .fetch() } 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 cac46b9..c0409d8 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 @@ -44,8 +44,8 @@ class ContentSeriesService( return seriesToSeriesListItem(originalAudioDramaList, isAdult) } - fun getGenreList(isAdult: Boolean): List { - return repository.getGenreList(isAdult = isAdult) + fun getGenreList(memberId: Long, isAdult: Boolean): List { + return repository.getGenreList(memberId = memberId, isAdult = isAdult) } fun getSeriesList(