From b6eb13df065691e21611bab548d4178ca8501035 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 20 Nov 2025 00:05:33 +0900 Subject: [PATCH] =?UTF-8?q?feat(content-sort-type):=20=EC=BD=98=ED=85=90?= =?UTF-8?q?=EC=B8=A0=20=EC=A0=95=EB=A0=AC=20=ED=83=80=EC=9E=85=20=EC=9D=B8?= =?UTF-8?q?=EA=B8=B0=EC=88=9C(POPULARITY)=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/co/vividnext/sodalive/content/AudioContent.kt | 2 +- .../vividnext/sodalive/content/AudioContentRepository.kt | 7 +++++++ .../main/curation/AudioContentCurationQueryRepository.kt | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt index f65ece2..e08a830 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt @@ -23,7 +23,7 @@ enum class PurchaseOption { } enum class SortType { - NEWEST, PRICE_HIGH, PRICE_LOW + NEWEST, PRICE_HIGH, PRICE_LOW, POPULARITY } @Entity 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 8dbeaf4..a2b4dc1 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt @@ -241,6 +241,7 @@ class AudioContentQueryRepositoryImpl( SortType.NEWEST -> audioContent.releaseDate.desc() SortType.PRICE_HIGH -> audioContent.price.desc() SortType.PRICE_LOW -> audioContent.price.asc() + SortType.POPULARITY -> audioContent.playCount.desc() } var where = audioContent.member.id.eq(creatorId) @@ -462,6 +463,12 @@ class AudioContentQueryRepositoryImpl( audioContent.releaseDate.asc(), audioContent.id.asc() ) + + SortType.POPULARITY -> listOf( + audioContent.playCount.desc(), + audioContent.releaseDate.asc(), + audioContent.id.asc() + ) } var where = audioContent.isActive.isTrue 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 71ce651..1839851 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 @@ -58,6 +58,7 @@ class AudioContentCurationQueryRepository(private val queryFactory: JPAQueryFact SortType.NEWEST -> audioContent.createdAt.desc() SortType.PRICE_HIGH -> audioContent.price.desc() SortType.PRICE_LOW -> audioContent.price.asc() + SortType.POPULARITY -> audioContent.playCount.desc() } var where = audioContent.isActive.isTrue