test #211
| @@ -50,6 +50,7 @@ class ContentSeriesController(private val service: ContentSeriesService) { | ||||
|     @GetMapping("/{id}/content") | ||||
|     fun getSeriesContentList( | ||||
|         @PathVariable id: Long, | ||||
|         @RequestParam("sortType", defaultValue = "NEWEST") sortType: SeriesSortType, | ||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, | ||||
|         pageable: Pageable | ||||
|     ) = run { | ||||
| @@ -59,6 +60,7 @@ class ContentSeriesController(private val service: ContentSeriesService) { | ||||
|             service.getSeriesContentList( | ||||
|                 seriesId = id, | ||||
|                 member = member, | ||||
|                 sortType = sortType, | ||||
|                 offset = pageable.offset, | ||||
|                 limit = pageable.pageSize.toLong() | ||||
|             ) | ||||
|   | ||||
| @@ -75,7 +75,13 @@ class ContentSeriesService( | ||||
|         val rentalMinPrice = (minMaxPrice.minPrice * 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") | ||||
|         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 totalCount = seriesContentRepository.getContentCount(seriesId, isAdult = isAdult) | ||||
| @@ -118,6 +130,7 @@ class ContentSeriesService( | ||||
|             seriesId = seriesId, | ||||
|             isAdult = isAdult, | ||||
|             imageHost = coverImageHost, | ||||
|             sortType = sortType, | ||||
|             offset = offset, | ||||
|             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.QSeriesContent.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 java.time.LocalDateTime | ||||
|  | ||||
| @@ -17,6 +18,7 @@ interface ContentSeriesContentQueryRepository { | ||||
|         seriesId: Long, | ||||
|         isAdult: Boolean, | ||||
|         imageHost: String, | ||||
|         sortType: SeriesSortType, | ||||
|         offset: Long, | ||||
|         limit: Long | ||||
|     ): List<GetSeriesContentListItem> | ||||
| @@ -49,6 +51,7 @@ class ContentSeriesContentQueryRepositoryImpl( | ||||
|         seriesId: Long, | ||||
|         isAdult: Boolean, | ||||
|         imageHost: String, | ||||
|         sortType: SeriesSortType, | ||||
|         offset: Long, | ||||
|         limit: Long | ||||
|     ): List<GetSeriesContentListItem> { | ||||
| @@ -56,6 +59,12 @@ class ContentSeriesContentQueryRepositoryImpl( | ||||
|             .and(audioContent.isActive.isTrue) | ||||
|             .and(audioContent.duration.isNotNull) | ||||
|  | ||||
|         var orderBy = seriesContent.createdAt.desc() | ||||
|  | ||||
|         if (sortType == SeriesSortType.OLDEST) { | ||||
|             orderBy = seriesContent.createdAt.asc() | ||||
|         } | ||||
|  | ||||
|         if (!isAdult) { | ||||
|             where = where.and(audioContent.isAdult.isFalse) | ||||
|         } | ||||
| @@ -89,7 +98,7 @@ class ContentSeriesContentQueryRepositoryImpl( | ||||
|             .innerJoin(seriesContent.series, series) | ||||
|             .innerJoin(seriesContent.content, audioContent) | ||||
|             .where(where) | ||||
|             .orderBy(series.orders.asc(), series.createdAt.asc()) | ||||
|             .orderBy(orderBy) | ||||
|             .offset(offset) | ||||
|             .limit(limit) | ||||
|             .fetch() | ||||
|   | ||||
| @@ -26,7 +26,7 @@ enum class SeriesState { | ||||
| } | ||||
|  | ||||
| enum class SeriesSortType { | ||||
|     NEWEST, POPULAR | ||||
|     NEWEST, OLDEST | ||||
| } | ||||
|  | ||||
| @Entity | ||||
|   | ||||
| @@ -8,5 +8,6 @@ data class EditLiveRoomInfoRequest( | ||||
|     val timezone: String?, | ||||
|     val menuPanId: Long = 0, | ||||
|     val menuPan: String = "", | ||||
|     val isActiveMenuPan: Boolean? = null | ||||
|     val isActiveMenuPan: Boolean? = null, | ||||
|     val isAdult: Boolean? = null | ||||
| ) | ||||
|   | ||||
| @@ -749,6 +749,10 @@ class LiveRoomService( | ||||
|                     .toLocalDateTime() | ||||
|             } | ||||
|  | ||||
|             if (request.isAdult != null) { | ||||
|                 room.isAdult = request.isAdult | ||||
|             } | ||||
|  | ||||
|             if (request.isActiveMenuPan != null) { | ||||
|                 if (request.isActiveMenuPan) { | ||||
|                     if (request.menuPanId > 0) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user