fix(series): 시리즈 리스트 랜덤 정렬로 조회할 수 있도록 기능 추가
This commit is contained in:
@@ -124,7 +124,8 @@ class HomeService(
|
|||||||
|
|
||||||
val originalAudioDramaList = seriesService.getOriginalAudioDramaList(
|
val originalAudioDramaList = seriesService.getOriginalAudioDramaList(
|
||||||
isAdult = isAdult,
|
isAdult = isAdult,
|
||||||
contentType = contentType
|
contentType = contentType,
|
||||||
|
orderByRandom = true
|
||||||
)
|
)
|
||||||
|
|
||||||
val auditionList = auditionService.getInProgressAuditionList(isAdult = isAdult)
|
val auditionList = auditionService.getInProgressAuditionList(isAdult = isAdult)
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ interface ContentSeriesQueryRepository {
|
|||||||
contentType: ContentType,
|
contentType: ContentType,
|
||||||
isOriginal: Boolean,
|
isOriginal: Boolean,
|
||||||
isCompleted: Boolean,
|
isCompleted: Boolean,
|
||||||
|
orderByRandom: Boolean,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long
|
limit: Long
|
||||||
): List<Series>
|
): List<Series>
|
||||||
@@ -65,6 +66,7 @@ interface ContentSeriesQueryRepository {
|
|||||||
fun getOriginalAudioDramaList(
|
fun getOriginalAudioDramaList(
|
||||||
isAdult: Boolean,
|
isAdult: Boolean,
|
||||||
contentType: ContentType,
|
contentType: ContentType,
|
||||||
|
orderByRandom: Boolean = false,
|
||||||
offset: Long = 0,
|
offset: Long = 0,
|
||||||
limit: Long = 20
|
limit: Long = 20
|
||||||
): List<Series>
|
): List<Series>
|
||||||
@@ -139,6 +141,7 @@ class ContentSeriesQueryRepositoryImpl(
|
|||||||
contentType: ContentType,
|
contentType: ContentType,
|
||||||
isOriginal: Boolean,
|
isOriginal: Boolean,
|
||||||
isCompleted: Boolean,
|
isCompleted: Boolean,
|
||||||
|
orderByRandom: Boolean,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long
|
limit: Long
|
||||||
): List<Series> {
|
): List<Series> {
|
||||||
@@ -173,7 +176,9 @@ class ContentSeriesQueryRepositoryImpl(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val orderBy = if (creatorId != null) {
|
val orderBy = if (orderByRandom) {
|
||||||
|
listOf(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
|
||||||
|
} else if (creatorId != null) {
|
||||||
listOf(series.orders.asc(), series.createdAt.asc())
|
listOf(series.orders.asc(), series.createdAt.asc())
|
||||||
} else {
|
} else {
|
||||||
listOf(audioContent.releaseDate.max().desc(), series.createdAt.asc())
|
listOf(audioContent.releaseDate.max().desc(), series.createdAt.asc())
|
||||||
@@ -362,6 +367,7 @@ class ContentSeriesQueryRepositoryImpl(
|
|||||||
override fun getOriginalAudioDramaList(
|
override fun getOriginalAudioDramaList(
|
||||||
isAdult: Boolean,
|
isAdult: Boolean,
|
||||||
contentType: ContentType,
|
contentType: ContentType,
|
||||||
|
orderByRandom: Boolean,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long
|
limit: Long
|
||||||
): List<Series> {
|
): List<Series> {
|
||||||
@@ -390,7 +396,13 @@ class ContentSeriesQueryRepositoryImpl(
|
|||||||
.selectFrom(series)
|
.selectFrom(series)
|
||||||
.innerJoin(series.member, member)
|
.innerJoin(series.member, member)
|
||||||
.where(where)
|
.where(where)
|
||||||
.orderBy(series.id.desc())
|
.orderBy(
|
||||||
|
if (orderByRandom) {
|
||||||
|
Expressions.numberTemplate(Double::class.java, "function('rand')").asc()
|
||||||
|
} else {
|
||||||
|
series.id.desc()
|
||||||
|
}
|
||||||
|
)
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.fetch()
|
.fetch()
|
||||||
|
|||||||
@@ -37,10 +37,11 @@ class ContentSeriesService(
|
|||||||
fun getOriginalAudioDramaList(
|
fun getOriginalAudioDramaList(
|
||||||
isAdult: Boolean,
|
isAdult: Boolean,
|
||||||
contentType: ContentType,
|
contentType: ContentType,
|
||||||
|
orderByRandom: Boolean = false,
|
||||||
offset: Long = 0,
|
offset: Long = 0,
|
||||||
limit: Long = 20
|
limit: Long = 20
|
||||||
): List<GetSeriesListResponse.SeriesListItem> {
|
): List<GetSeriesListResponse.SeriesListItem> {
|
||||||
val originalAudioDramaList = repository.getOriginalAudioDramaList(isAdult, contentType, offset, limit)
|
val originalAudioDramaList = repository.getOriginalAudioDramaList(isAdult, contentType, orderByRandom, offset, limit)
|
||||||
return seriesToSeriesListItem(originalAudioDramaList, isAdult, contentType)
|
return seriesToSeriesListItem(originalAudioDramaList, isAdult, contentType)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,6 +53,7 @@ class ContentSeriesService(
|
|||||||
creatorId: Long?,
|
creatorId: Long?,
|
||||||
isOriginal: Boolean = false,
|
isOriginal: Boolean = false,
|
||||||
isCompleted: Boolean = false,
|
isCompleted: Boolean = false,
|
||||||
|
orderByRandom: Boolean = false,
|
||||||
isAdultContentVisible: Boolean,
|
isAdultContentVisible: Boolean,
|
||||||
contentType: ContentType,
|
contentType: ContentType,
|
||||||
member: Member,
|
member: Member,
|
||||||
@@ -75,6 +77,7 @@ class ContentSeriesService(
|
|||||||
contentType = contentType,
|
contentType = contentType,
|
||||||
isOriginal = isOriginal,
|
isOriginal = isOriginal,
|
||||||
isCompleted = isCompleted,
|
isCompleted = isCompleted,
|
||||||
|
orderByRandom = orderByRandom,
|
||||||
offset = offset,
|
offset = offset,
|
||||||
limit = limit
|
limit = limit
|
||||||
).filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!) }
|
).filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!) }
|
||||||
|
|||||||
Reference in New Issue
Block a user