diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesController.kt index 0785176..ae7f864 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesController.kt @@ -134,4 +134,9 @@ class CreatorAdminContentSeriesController(private val service: CreatorAdminConte ) ) } + + @PutMapping("/orders") + fun updateSeriesOrders( + @RequestBody request: UpdateOrdersRequest + ) = ApiResponse.ok(service.updateSeriesOrders(ids = request.ids), "수정되었습니다.") } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesRepository.kt index f391285..7ee5536 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesRepository.kt @@ -72,7 +72,7 @@ class CreatorAdminContentSeriesQueryRepositoryImpl( series.member.id.eq(creatorId) .and(series.isActive.isTrue) ) - .orderBy(series.id.desc()) + .orderBy(series.orders.asc()) .offset(offset) .limit(limit) .fetch() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesService.kt index b0317bc..eba9469 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/CreatorAdminContentSeriesService.kt @@ -15,6 +15,7 @@ import kr.co.vividnext.sodalive.creator.admin.content.series.keyword.SeriesKeywo import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.utils.generateFileName import org.springframework.beans.factory.annotation.Value +import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import org.springframework.web.multipart.MultipartFile @@ -270,4 +271,15 @@ class CreatorAdminContentSeriesService( imageHost = coverImageHost ) } + + @Transactional + fun updateSeriesOrders(ids: List) { + for (index in ids.indices) { + val series = repository.findByIdOrNull(ids[index]) + + if (series != null) { + series.orders = index + 1 + } + } + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/UpdateOrdersRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/UpdateOrdersRequest.kt new file mode 100644 index 0000000..109fc0f --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/content/series/UpdateOrdersRequest.kt @@ -0,0 +1,3 @@ +package kr.co.vividnext.sodalive.creator.admin.content.series + +data class UpdateOrdersRequest(val ids: List)