From c7eae53b22fbc25a004ef3df0d12946ca00496d6 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 18 Mar 2025 17:10:19 +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=ED=99=88,=20=EB=AA=A8=EB=8B=9D=EC=BD=9C,=20asmr,?= =?UTF-8?q?=20=EB=8B=A8=ED=8E=B8,=20=EB=AC=B4=EB=A3=8C,=20=EB=8B=A4?= =?UTF-8?q?=EC=8B=9C=EB=93=A3=EA=B8=B0,=20=EC=8B=9C=EB=A6=AC=EC=A6=88=20-?= =?UTF-8?q?=20=EB=82=A8=EC=84=B1=ED=96=A5,=20=EC=97=AC=EC=84=B1=ED=96=A5?= =?UTF-8?q?=20=EC=84=A0=ED=83=9D=ED=95=9C=20=EC=9C=A0=EC=A0=80=EC=9D=98=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=ED=95=B4=EB=8B=B9=20=EC=84=B1=ED=96=A5?= =?UTF-8?q?=EC=9D=98=20=EC=BD=98=ED=85=90=EC=B8=A0=20+=20=EB=AF=B8?= =?UTF-8?q?=EC=9D=B8=EC=A6=9D=20=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=EC=9D=98=20=EC=BD=98=ED=85=90=EC=B8=A0=EB=A5=BC=20?= =?UTF-8?q?=EB=B3=B4=EC=97=AC=EC=A3=BC=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content/AudioContentRepository.kt | 88 +++++++++--- .../AudioContentCurationQueryRepository.kt | 21 ++- .../main/tab/AudioContentMainTabRepository.kt | 28 ++-- .../main/tab/RecommendSeriesRepository.kt | 24 +++- .../ContentMainTabTagCurationRepository.kt | 28 ++-- .../content/series/ContentSeriesRepository.kt | 62 ++++++--- .../theme/AudioContentThemeQueryRepository.kt | 12 +- .../sodalive/rank/RankingRepository.kt | 130 +++++++++++++----- 8 files changed, 285 insertions(+), 108 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt index 048a1b8..1e785f2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt @@ -404,7 +404,15 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -471,12 +479,14 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -534,12 +544,14 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -579,7 +591,15 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -619,7 +639,15 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -666,7 +694,15 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -784,7 +820,15 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -838,7 +882,15 @@ class AudioContentQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCurationQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCurationQueryRepository.kt index 17b31df..f7e76a2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCurationQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCurationQueryRepository.kt @@ -23,7 +23,15 @@ class AudioContentCurationQueryRepository(private val queryFactory: JPAQueryFact } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -31,6 +39,7 @@ class AudioContentCurationQueryRepository(private val queryFactory: JPAQueryFact return queryFactory .select(audioContent.id) .from(audioContent) + .innerJoin(audioContent.member, member) .where(where) .fetch() .size @@ -62,7 +71,15 @@ class AudioContentCurationQueryRepository(private val queryFactory: JPAQueryFact } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/AudioContentMainTabRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/AudioContentMainTabRepository.kt index 380158e..73d8589 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/AudioContentMainTabRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/AudioContentMainTabRepository.kt @@ -46,12 +46,14 @@ class AudioContentMainTabRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -103,12 +105,14 @@ class AudioContentMainTabRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/RecommendSeriesRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/RecommendSeriesRepository.kt index 9ea6864..0c3275f 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/RecommendSeriesRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/RecommendSeriesRepository.kt @@ -25,7 +25,15 @@ class RecommendSeriesRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -59,12 +67,14 @@ class RecommendSeriesRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/ContentMainTabTagCurationRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/ContentMainTabTagCurationRepository.kt index 46b1501..13ca6a4 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/ContentMainTabTagCurationRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/content/ContentMainTabTagCurationRepository.kt @@ -31,12 +31,14 @@ class ContentMainTabTagCurationRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -73,12 +75,14 @@ class ContentMainTabTagCurationRepository( if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } 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 0d09e67..fbb16c9 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 @@ -137,7 +137,15 @@ class ContentSeriesQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -171,12 +179,14 @@ class ContentSeriesQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -207,12 +217,14 @@ class ContentSeriesQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -253,12 +265,14 @@ class ContentSeriesQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -300,7 +314,15 @@ class ContentSeriesQueryRepositoryImpl( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeQueryRepository.kt index a3e1d1f..d637431 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeQueryRepository.kt @@ -4,6 +4,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory import kr.co.vividnext.sodalive.content.ContentType import kr.co.vividnext.sodalive.content.QAudioContent.audioContent import kr.co.vividnext.sodalive.content.theme.QAudioContentTheme.audioContentTheme +import kr.co.vividnext.sodalive.member.QMember.member import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Repository @@ -41,7 +42,15 @@ class AudioContentThemeQueryRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -55,6 +64,7 @@ class AudioContentThemeQueryRepository( return queryFactory .select(audioContentTheme.theme) .from(audioContent) + .innerJoin(audioContent.member, member) .innerJoin(audioContent.theme, audioContentTheme) .where(where) .groupBy(audioContentTheme.id) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt index 89fb7a9..22153f2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/rank/RankingRepository.kt @@ -71,12 +71,14 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -206,12 +208,14 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -256,12 +260,14 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -313,7 +319,15 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -360,7 +374,15 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -406,12 +428,14 @@ class RankingRepository( if (contentType != ContentType.ALL) { memberCondition = memberCondition.and( - member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + member.auth.isNull.or( + member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -463,7 +487,15 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -523,7 +555,15 @@ class RankingRepository( if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } @@ -568,7 +608,15 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - series.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + series.member.isNull.or( + series.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } } @@ -609,12 +657,14 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq( - if (contentType == ContentType.MALE) { - 0 - } else { - 1 - } + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) ) ) } @@ -663,7 +713,15 @@ class RankingRepository( } else { if (contentType != ContentType.ALL) { where = where.and( - audioContent.member.auth.gender.eq(if (contentType == ContentType.MALE) 0 else 1) + audioContent.member.isNull.or( + audioContent.member.auth.gender.eq( + if (contentType == ContentType.MALE) { + 0 + } else { + 1 + } + ) + ) ) } }