diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt index 5d66fe5..096ac98 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt @@ -165,7 +165,8 @@ class HomeService( ), contentType = contentType, isFree = true, - isAdult = isAdult + isAdult = isAdult, + orderByRandom = true ).filter { if (memberId != null) { !memberService.isBlocked(blockedMemberId = memberId, memberId = it.creatorId) 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 66abb79..64d294e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt @@ -183,7 +183,8 @@ interface AudioContentQueryRepository { offset: Long, limit: Long, isFree: Boolean, - isAdult: Boolean + isAdult: Boolean, + orderByRandom: Boolean = false ): List fun findContentByCurationId( @@ -1308,7 +1309,8 @@ class AudioContentQueryRepositoryImpl( offset: Long, limit: Long, isFree: Boolean, - isAdult: Boolean + isAdult: Boolean, + orderByRandom: Boolean ): List { var where = audioContent.isActive.isTrue .and(audioContent.duration.isNotNull) @@ -1343,6 +1345,12 @@ class AudioContentQueryRepositoryImpl( where = where.and(audioContent.price.loe(0)) } + val orderBy = if (orderByRandom) { + Expressions.numberTemplate(Double::class.java, "function('rand')").asc() + } else { + audioContent.releaseDate.desc() + } + return queryFactory .select( QAudioContentMainItem( @@ -1360,7 +1368,7 @@ class AudioContentQueryRepositoryImpl( .where(where) .offset(offset) .limit(limit) - .orderBy(audioContent.releaseDate.desc()) + .orderBy(orderBy) .fetch() } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt index 3a9e3a3..a5c4c79 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt @@ -989,7 +989,8 @@ class AudioContentService( offset: Long = 0, limit: Long = 20, isFree: Boolean = false, - isAdult: Boolean = false + isAdult: Boolean = false, + orderByRandom: Boolean = false ): List { return repository.getLatestContentByTheme( theme = theme, @@ -997,7 +998,8 @@ class AudioContentService( offset = offset, limit = limit, isFree = isFree, - isAdult = isAdult + isAdult = isAdult, + orderByRandom = orderByRandom ) } }