From 0bf2b1b4ae7595d660eab2ab8c7d91296556bd6d Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 18 Apr 2024 12:49:15 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20API=20-=20?= =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=9E=A5=EB=A5=B4=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=ED=9A=8C=20API=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdminContentSeriesGenreController.kt | 4 ++++ .../AdminContentSeriesGenreRepository.kt | 19 +++++++++++++++++-- .../genre/AdminContentSeriesGenreService.kt | 4 ++++ .../genre/GetSeriesGenreListResponse.kt | 9 +++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/GetSeriesGenreListResponse.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreController.kt index b0dd061..6963e74 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreController.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.admin.content.series.genre import kr.co.vividnext.sodalive.common.ApiResponse import org.springframework.security.access.prepost.PreAuthorize +import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.PutMapping import org.springframework.web.bind.annotation.RequestBody @@ -27,4 +28,7 @@ class AdminContentSeriesGenreController(private val service: AdminContentSeriesG service.modifySeriesGenreOrders(ids = request.ids), "수정되었습니다." ) + + @GetMapping + fun getSeriesGenreList() = ApiResponse.ok(service.getSeriesGenreList()) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreRepository.kt index b91ffa5..3587baa 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreRepository.kt @@ -1,9 +1,24 @@ package kr.co.vividnext.sodalive.admin.content.series.genre +import com.querydsl.jpa.impl.JPAQueryFactory +import kr.co.vividnext.sodalive.admin.content.series.genre.QSeriesGenre.seriesGenre import org.springframework.data.jpa.repository.JpaRepository interface AdminContentSeriesGenreRepository : JpaRepository, AdminContentSeriesGenreQueryRepository -interface AdminContentSeriesGenreQueryRepository +interface AdminContentSeriesGenreQueryRepository { + fun getSeriesGenreList(): List +} -class AdminContentSeriesGenreQueryRepositoryImpl : AdminContentSeriesGenreQueryRepository +class AdminContentSeriesGenreQueryRepositoryImpl( + private val queryFactory: JPAQueryFactory +) : AdminContentSeriesGenreQueryRepository { + override fun getSeriesGenreList(): List { + return queryFactory + .select(QGetSeriesGenreListResponse(seriesGenre.id, seriesGenre.genre, seriesGenre.isAdult)) + .from(seriesGenre) + .where(seriesGenre.isActive.isTrue) + .orderBy(seriesGenre.orders.asc()) + .fetch() + } +} diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreService.kt index 058b782..30cb1b2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/AdminContentSeriesGenreService.kt @@ -46,4 +46,8 @@ class AdminContentSeriesGenreService(private val repository: AdminContentSeriesG } } } + + fun getSeriesGenreList(): List { + return repository.getSeriesGenreList() + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/GetSeriesGenreListResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/GetSeriesGenreListResponse.kt new file mode 100644 index 0000000..d642c47 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/series/genre/GetSeriesGenreListResponse.kt @@ -0,0 +1,9 @@ +package kr.co.vividnext.sodalive.admin.content.series.genre + +import com.querydsl.core.annotations.QueryProjection + +data class GetSeriesGenreListResponse @QueryProjection constructor( + val id: Long, + val genre: String, + val isAdult: Boolean +)