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