commit
a58a67e0a2
|
@ -50,6 +50,7 @@ class ContentSeriesController(private val service: ContentSeriesService) {
|
||||||
@GetMapping("/{id}/content")
|
@GetMapping("/{id}/content")
|
||||||
fun getSeriesContentList(
|
fun getSeriesContentList(
|
||||||
@PathVariable id: Long,
|
@PathVariable id: Long,
|
||||||
|
@RequestParam("sortType", defaultValue = "NEWEST") sortType: SeriesSortType,
|
||||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||||
pageable: Pageable
|
pageable: Pageable
|
||||||
) = run {
|
) = run {
|
||||||
|
@ -59,6 +60,7 @@ class ContentSeriesController(private val service: ContentSeriesService) {
|
||||||
service.getSeriesContentList(
|
service.getSeriesContentList(
|
||||||
seriesId = id,
|
seriesId = id,
|
||||||
member = member,
|
member = member,
|
||||||
|
sortType = sortType,
|
||||||
offset = pageable.offset,
|
offset = pageable.offset,
|
||||||
limit = pageable.pageSize.toLong()
|
limit = pageable.pageSize.toLong()
|
||||||
)
|
)
|
||||||
|
|
|
@ -75,7 +75,13 @@ class ContentSeriesService(
|
||||||
val rentalMinPrice = (minMaxPrice.minPrice * 0.6).toInt()
|
val rentalMinPrice = (minMaxPrice.minPrice * 0.6).toInt()
|
||||||
val rentalMaxPrice = (minMaxPrice.maxPrice * 0.6).toInt()
|
val rentalMaxPrice = (minMaxPrice.maxPrice * 0.6).toInt()
|
||||||
|
|
||||||
val seriesContentList = getSeriesContentList(seriesId = seriesId, member = member, offset = 0, limit = 5)
|
val seriesContentList = getSeriesContentList(
|
||||||
|
seriesId = seriesId,
|
||||||
|
member = member,
|
||||||
|
sortType = SeriesSortType.NEWEST,
|
||||||
|
offset = 0,
|
||||||
|
limit = 5
|
||||||
|
)
|
||||||
|
|
||||||
val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd")
|
val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd")
|
||||||
return GetSeriesDetailResponse(
|
return GetSeriesDetailResponse(
|
||||||
|
@ -110,7 +116,13 @@ class ContentSeriesService(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getSeriesContentList(seriesId: Long, member: Member, offset: Long, limit: Long): GetSeriesContentListResponse {
|
fun getSeriesContentList(
|
||||||
|
seriesId: Long,
|
||||||
|
member: Member,
|
||||||
|
sortType: SeriesSortType,
|
||||||
|
offset: Long,
|
||||||
|
limit: Long
|
||||||
|
): GetSeriesContentListResponse {
|
||||||
val isAdult = member.auth != null
|
val isAdult = member.auth != null
|
||||||
|
|
||||||
val totalCount = seriesContentRepository.getContentCount(seriesId, isAdult = isAdult)
|
val totalCount = seriesContentRepository.getContentCount(seriesId, isAdult = isAdult)
|
||||||
|
@ -118,6 +130,7 @@ class ContentSeriesService(
|
||||||
seriesId = seriesId,
|
seriesId = seriesId,
|
||||||
isAdult = isAdult,
|
isAdult = isAdult,
|
||||||
imageHost = coverImageHost,
|
imageHost = coverImageHost,
|
||||||
|
sortType = sortType,
|
||||||
offset = offset,
|
offset = offset,
|
||||||
limit = limit
|
limit = limit
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import kr.co.vividnext.sodalive.content.QAudioContent.audioContent
|
||||||
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
|
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
|
||||||
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeriesContent.seriesContent
|
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeriesContent.seriesContent
|
||||||
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesContent
|
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesContent
|
||||||
|
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesSortType
|
||||||
import org.springframework.data.jpa.repository.JpaRepository
|
import org.springframework.data.jpa.repository.JpaRepository
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
|
||||||
|
@ -17,6 +18,7 @@ interface ContentSeriesContentQueryRepository {
|
||||||
seriesId: Long,
|
seriesId: Long,
|
||||||
isAdult: Boolean,
|
isAdult: Boolean,
|
||||||
imageHost: String,
|
imageHost: String,
|
||||||
|
sortType: SeriesSortType,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long
|
limit: Long
|
||||||
): List<GetSeriesContentListItem>
|
): List<GetSeriesContentListItem>
|
||||||
|
@ -49,6 +51,7 @@ class ContentSeriesContentQueryRepositoryImpl(
|
||||||
seriesId: Long,
|
seriesId: Long,
|
||||||
isAdult: Boolean,
|
isAdult: Boolean,
|
||||||
imageHost: String,
|
imageHost: String,
|
||||||
|
sortType: SeriesSortType,
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long
|
limit: Long
|
||||||
): List<GetSeriesContentListItem> {
|
): List<GetSeriesContentListItem> {
|
||||||
|
@ -56,6 +59,12 @@ class ContentSeriesContentQueryRepositoryImpl(
|
||||||
.and(audioContent.isActive.isTrue)
|
.and(audioContent.isActive.isTrue)
|
||||||
.and(audioContent.duration.isNotNull)
|
.and(audioContent.duration.isNotNull)
|
||||||
|
|
||||||
|
var orderBy = seriesContent.createdAt.desc()
|
||||||
|
|
||||||
|
if (sortType == SeriesSortType.OLDEST) {
|
||||||
|
orderBy = seriesContent.createdAt.asc()
|
||||||
|
}
|
||||||
|
|
||||||
if (!isAdult) {
|
if (!isAdult) {
|
||||||
where = where.and(audioContent.isAdult.isFalse)
|
where = where.and(audioContent.isAdult.isFalse)
|
||||||
}
|
}
|
||||||
|
@ -89,7 +98,7 @@ class ContentSeriesContentQueryRepositoryImpl(
|
||||||
.innerJoin(seriesContent.series, series)
|
.innerJoin(seriesContent.series, series)
|
||||||
.innerJoin(seriesContent.content, audioContent)
|
.innerJoin(seriesContent.content, audioContent)
|
||||||
.where(where)
|
.where(where)
|
||||||
.orderBy(series.orders.asc(), series.createdAt.asc())
|
.orderBy(orderBy)
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.fetch()
|
.fetch()
|
||||||
|
|
|
@ -26,7 +26,7 @@ enum class SeriesState {
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class SeriesSortType {
|
enum class SeriesSortType {
|
||||||
NEWEST, POPULAR
|
NEWEST, OLDEST
|
||||||
}
|
}
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
|
|
@ -8,5 +8,6 @@ data class EditLiveRoomInfoRequest(
|
||||||
val timezone: String?,
|
val timezone: String?,
|
||||||
val menuPanId: Long = 0,
|
val menuPanId: Long = 0,
|
||||||
val menuPan: String = "",
|
val menuPan: String = "",
|
||||||
val isActiveMenuPan: Boolean? = null
|
val isActiveMenuPan: Boolean? = null,
|
||||||
|
val isAdult: Boolean? = null
|
||||||
)
|
)
|
||||||
|
|
|
@ -749,6 +749,10 @@ class LiveRoomService(
|
||||||
.toLocalDateTime()
|
.toLocalDateTime()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (request.isAdult != null) {
|
||||||
|
room.isAdult = request.isAdult
|
||||||
|
}
|
||||||
|
|
||||||
if (request.isActiveMenuPan != null) {
|
if (request.isActiveMenuPan != null) {
|
||||||
if (request.isActiveMenuPan) {
|
if (request.isActiveMenuPan) {
|
||||||
if (request.menuPanId > 0) {
|
if (request.menuPanId > 0) {
|
||||||
|
|
Loading…
Reference in New Issue