From d804ad268aff4229ab85ffd446835c4b38e407cb Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 9 Sep 2024 23:41:29 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20-=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC(=EC=B5=9C=EC=8B=A0=EC=88=9C,=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=EC=88=9C)=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content/series/ContentSeriesController.kt | 2 ++ .../content/series/ContentSeriesService.kt | 17 +++++++++++++++-- .../content/ContentSeriesContentRepository.kt | 11 ++++++++++- .../creator/admin/content/series/Series.kt | 2 +- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt index 5811af9..67ea69b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt @@ -50,6 +50,7 @@ class ContentSeriesController(private val service: ContentSeriesService) { @GetMapping("/{id}/content") fun getSeriesContentList( @PathVariable id: Long, + @RequestParam("sortType", required = false) sortType: SeriesSortType = SeriesSortType.OLDEST, @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() ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt index 1cefd7c..665eb2e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt @@ -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 ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt index aa83137..93d04e1 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt @@ -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 @@ -49,6 +51,7 @@ class ContentSeriesContentQueryRepositoryImpl( seriesId: Long, isAdult: Boolean, imageHost: String, + sortType: SeriesSortType, offset: Long, limit: Long ): List { @@ -56,6 +59,12 @@ class ContentSeriesContentQueryRepositoryImpl( .and(audioContent.isActive.isTrue) .and(audioContent.duration.isNotNull) + var orderBy = series.createdAt.asc() + + if (sortType == SeriesSortType.NEWEST) { + orderBy = series.createdAt.desc() + } + 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() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/Series.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/Series.kt index 79f4f1b..9e2d1d6 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/Series.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/Series.kt @@ -26,7 +26,7 @@ enum class SeriesState { } enum class SeriesSortType { - NEWEST, POPULAR + NEWEST, OLDEST } @Entity From 47748875c0fd54d4a5b8ebb1fda30a2589d6674f Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 10 Sep 2024 16:11:13 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20-=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC(=EC=B5=9C=EC=8B=A0=EC=88=9C,=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=EC=88=9C)=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content/series/content/ContentSeriesContentRepository.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt index 93d04e1..4751856 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt @@ -59,10 +59,10 @@ class ContentSeriesContentQueryRepositoryImpl( .and(audioContent.isActive.isTrue) .and(audioContent.duration.isNotNull) - var orderBy = series.createdAt.asc() + var orderBy = seriesContent.createdAt.asc() if (sortType == SeriesSortType.NEWEST) { - orderBy = series.createdAt.desc() + orderBy = seriesContent.createdAt.desc() } if (!isAdult) { From 5e01ece02b23c18811a9f401ec3d57e29193206a Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 10 Sep 2024 16:26:17 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=A0=95?= =?UTF-8?q?=EB=A0=AC=20-=20=EA=B8=B0=EB=B3=B8=EA=B0=92=EC=9D=84=20NEWEST?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/content/series/ContentSeriesController.kt | 2 +- .../series/content/ContentSeriesContentRepository.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt index 67ea69b..a82b4c0 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt @@ -50,7 +50,7 @@ class ContentSeriesController(private val service: ContentSeriesService) { @GetMapping("/{id}/content") fun getSeriesContentList( @PathVariable id: Long, - @RequestParam("sortType", required = false) sortType: SeriesSortType = SeriesSortType.OLDEST, + @RequestParam("sortType", required = false) sortType: SeriesSortType = SeriesSortType.NEWEST, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, pageable: Pageable ) = run { diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt index 4751856..36a6eae 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/content/ContentSeriesContentRepository.kt @@ -59,10 +59,10 @@ class ContentSeriesContentQueryRepositoryImpl( .and(audioContent.isActive.isTrue) .and(audioContent.duration.isNotNull) - var orderBy = seriesContent.createdAt.asc() + var orderBy = seriesContent.createdAt.desc() - if (sortType == SeriesSortType.NEWEST) { - orderBy = seriesContent.createdAt.desc() + if (sortType == SeriesSortType.OLDEST) { + orderBy = seriesContent.createdAt.asc() } if (!isAdult) { From d0a0b5ecbe67750a47835ee941ce21fd68ad54c3 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 10 Sep 2024 17:46:17 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=A0=95?= =?UTF-8?q?=EB=A0=AC=20-=20required=20=3D=20false=20=EB=8C=80=EC=8B=A0=20d?= =?UTF-8?q?efaultValue=EB=A5=BC=20=EC=9D=B4=EC=9A=A9=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=EA=B0=92=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/content/series/ContentSeriesController.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt index a82b4c0..bdf74a5 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesController.kt @@ -50,7 +50,7 @@ class ContentSeriesController(private val service: ContentSeriesService) { @GetMapping("/{id}/content") fun getSeriesContentList( @PathVariable id: Long, - @RequestParam("sortType", required = false) sortType: SeriesSortType = SeriesSortType.NEWEST, + @RequestParam("sortType", defaultValue = "NEWEST") sortType: SeriesSortType, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, pageable: Pageable ) = run { From 472cfdb45bb0ccb5d187fcf4f65e7dca1242e1ab Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 10 Sep 2024 23:43:49 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=B0=A9=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95=20-=20=EC=97=B0?= =?UTF-8?q?=EB=A0=B9=EC=A0=9C=ED=95=9C=20=EC=88=98=EC=A0=95=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vividnext/sodalive/live/room/EditLiveRoomInfoRequest.kt | 3 ++- .../kr/co/vividnext/sodalive/live/room/LiveRoomService.kt | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/EditLiveRoomInfoRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/EditLiveRoomInfoRequest.kt index bfa5f37..b6de7ad 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/EditLiveRoomInfoRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/EditLiveRoomInfoRequest.kt @@ -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 ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 32b0c0e..aa11031 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -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) {