From 39c51825da010ab085987c956ba1e83f31b26f07 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 21 Nov 2025 00:37:29 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(content-theme):=20=EB=AC=B4=EB=A3=8C?= =?UTF-8?q?=20=EC=BD=98=ED=85=90=EC=B8=A0=EC=9D=98=20=ED=85=8C=EB=A7=88?= =?UTF-8?q?=EB=A5=BC=20=EC=A1=B0=ED=9A=8C=ED=95=A0=20=EB=95=8C=20'?= =?UTF-8?q?=EC=9E=90=EA=B8=B0=EC=86=8C=EA=B0=9C'=EA=B0=80=20=EA=B0=80?= =?UTF-8?q?=EC=9E=A5=20=EB=A8=BC=EC=A0=80=20=ED=91=9C=EC=8B=9C=EB=90=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 --- .../theme/AudioContentThemeQueryRepository.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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 1ad1d65..fe3d8e8 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 @@ -64,15 +64,24 @@ class AudioContentThemeQueryRepository( where = where.and(audioContent.isPointAvailable.isTrue) } - return queryFactory + val query = queryFactory .select(audioContentTheme.theme) .from(audioContent) .innerJoin(audioContent.member, member) .innerJoin(audioContent.theme, audioContentTheme) .where(where) .groupBy(audioContentTheme.id) - .orderBy(audioContentTheme.orders.asc()) - .fetch() + + if (isFree) { + query.orderBy( + audioContentTheme.theme.eq("자기소개").desc(), + audioContentTheme.orders.asc() + ) + } else { + query.orderBy(audioContentTheme.orders.asc()) + } + + return query.fetch() } fun findThemeByIdAndActive(id: Long): AudioContentTheme? { -- 2.49.1 From 76806e2e908176750f7ea35e118f01f2ef0d2628 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 21 Nov 2025 00:49:17 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat(content-theme):=20=EB=AC=B4=EB=A3=8C?= =?UTF-8?q?=20=EC=BD=98=ED=85=90=EC=B8=A0=EC=9D=98=20=ED=85=8C=EB=A7=88?= =?UTF-8?q?=EB=A5=BC=20=EC=A1=B0=ED=9A=8C=ED=95=A0=20=EB=95=8C=20'?= =?UTF-8?q?=EC=9E=90=EA=B8=B0=EC=86=8C=EA=B0=9C'=EA=B0=80=20=EA=B0=80?= =?UTF-8?q?=EC=9E=A5=20=EB=A8=BC=EC=A0=80=20=ED=91=9C=EC=8B=9C=EB=90=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 --- .../content/theme/AudioContentThemeQueryRepository.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 fe3d8e8..f4c2bbd 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 @@ -1,5 +1,6 @@ package kr.co.vividnext.sodalive.content.theme +import com.querydsl.core.types.dsl.CaseBuilder import com.querydsl.jpa.impl.JPAQueryFactory import kr.co.vividnext.sodalive.content.ContentType import kr.co.vividnext.sodalive.content.QAudioContent.audioContent @@ -74,7 +75,10 @@ class AudioContentThemeQueryRepository( if (isFree) { query.orderBy( - audioContentTheme.theme.eq("자기소개").desc(), + CaseBuilder() + .`when`(audioContentTheme.theme.eq("자기소개")).then(0) + .otherwise(1) + .asc(), audioContentTheme.orders.asc() ) } else { -- 2.49.1