From fbfb951825522b7a944f1679c9665e44d66d897d Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 17 Feb 2025 22:50:22 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=A9=94=EC=9D=B8=20=ED=81=90=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=95=84=EC=9D=B4=ED=85=9C=20-=20?= =?UTF-8?q?=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curation/AdminContentCurationController.kt | 5 +++++ .../AdminContentCurationItemRepository.kt | 2 ++ .../curation/AdminContentCurationService.kt | 15 +++++++++++++++ .../curation/UpdateCurationItemOrdersRequest.kt | 6 ++++++ 4 files changed, 28 insertions(+) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/UpdateCurationItemOrdersRequest.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationController.kt index 3bbe3ed..10c897d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationController.kt @@ -60,4 +60,9 @@ class AdminContentCurationController(private val service: AdminContentCurationSe fun removeItemInCuration( @RequestBody request: RemoveItemInCurationRequest ) = ApiResponse.ok(service.removeItemInCuration(request), "큐레이션 아이템을 제거했습니다.") + + @PutMapping("/orders/item") + fun updateItemInCurationOrders( + @RequestBody request: UpdateCurationItemOrdersRequest + ) = ApiResponse.ok(service.updateItemInCurationOrders(request), "수정되었습니다.") } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationItemRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationItemRepository.kt index 28bcc4d..bc1a5ee 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationItemRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationItemRepository.kt @@ -77,6 +77,7 @@ class AdminContentCurationItemQueryRepositoryImpl( audioContentCuration.id.eq(curationId), audioContentCurationItem.isActive.isTrue ) + .orderBy(audioContentCurationItem.orders.asc()) .fetch() } @@ -99,6 +100,7 @@ class AdminContentCurationItemQueryRepositoryImpl( audioContentCuration.id.eq(curationId), audioContentCurationItem.isActive.isTrue ) + .orderBy(audioContentCurationItem.orders.asc()) .fetch() } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt index 2d3427a..a9745f5 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt @@ -150,4 +150,19 @@ class AdminContentCurationService( audioContentCurationItem?.isActive = false } + + @Transactional + fun updateItemInCurationOrders(request: UpdateCurationItemOrdersRequest) { + val ids = request.itemIds + for (index in ids.indices) { + val item = contentCurationItemRepository.findByCurationIdAndItemId( + curationId = request.curationId, + itemId = ids[index] + ) + + if (item != null) { + item.orders = index + 1 + } + } + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/UpdateCurationItemOrdersRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/UpdateCurationItemOrdersRequest.kt new file mode 100644 index 0000000..b1975ed --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/UpdateCurationItemOrdersRequest.kt @@ -0,0 +1,6 @@ +package kr.co.vividnext.sodalive.admin.content.curation + +data class UpdateCurationItemOrdersRequest( + val curationId: Long, + val itemIds: List +)