관리자 시리즈 검색 API 추가
This commit is contained in:
parent
e0c9a2cea7
commit
40c0b72450
|
@ -5,6 +5,7 @@ import org.springframework.data.domain.Pageable
|
||||||
import org.springframework.security.access.prepost.PreAuthorize
|
import org.springframework.security.access.prepost.PreAuthorize
|
||||||
import org.springframework.web.bind.annotation.GetMapping
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
import org.springframework.web.bind.annotation.RequestMapping
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -13,4 +14,9 @@ import org.springframework.web.bind.annotation.RestController
|
||||||
class AdminContentSeriesController(private val service: AdminContentSeriesService) {
|
class AdminContentSeriesController(private val service: AdminContentSeriesService) {
|
||||||
@GetMapping
|
@GetMapping
|
||||||
fun getSeriesList(pageable: Pageable) = ApiResponse.ok(service.getSeriesList(pageable))
|
fun getSeriesList(pageable: Pageable) = ApiResponse.ok(service.getSeriesList(pageable))
|
||||||
|
|
||||||
|
@GetMapping("/search")
|
||||||
|
fun searchSeriesList(
|
||||||
|
@RequestParam(value = "search_word") searchWord: String
|
||||||
|
) = ApiResponse.ok(service.searchSeriesList(searchWord))
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,8 @@ interface AdminContentSeriesQueryRepository {
|
||||||
offset: Long,
|
offset: Long,
|
||||||
limit: Long
|
limit: Long
|
||||||
): List<GetAdminSeriesListItem>
|
): List<GetAdminSeriesListItem>
|
||||||
|
|
||||||
|
fun searchSeriesList(searchWord: String): List<GetAdminSearchSeriesListItem>
|
||||||
}
|
}
|
||||||
|
|
||||||
class AdminContentSeriesQueryRepositoryImpl(
|
class AdminContentSeriesQueryRepositoryImpl(
|
||||||
|
@ -31,6 +33,7 @@ class AdminContentSeriesQueryRepositoryImpl(
|
||||||
override fun getSeriesTotalCount(): Int {
|
override fun getSeriesTotalCount(): Int {
|
||||||
val where = series.isActive.isTrue
|
val where = series.isActive.isTrue
|
||||||
.and(series.member.isNotNull)
|
.and(series.member.isNotNull)
|
||||||
|
.and(series.member.isActive.isTrue)
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(series.id)
|
.select(series.id)
|
||||||
|
@ -43,6 +46,7 @@ class AdminContentSeriesQueryRepositoryImpl(
|
||||||
override fun getSeriesList(offset: Long, limit: Long): List<GetAdminSeriesListItem> {
|
override fun getSeriesList(offset: Long, limit: Long): List<GetAdminSeriesListItem> {
|
||||||
val where = series.isActive.isTrue
|
val where = series.isActive.isTrue
|
||||||
.and(series.member.isNotNull)
|
.and(series.member.isNotNull)
|
||||||
|
.and(series.member.isActive.isTrue)
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
|
@ -73,4 +77,23 @@ class AdminContentSeriesQueryRepositoryImpl(
|
||||||
.orderBy(series.member.id.asc(), series.orders.asc())
|
.orderBy(series.member.id.asc(), series.orders.asc())
|
||||||
.fetch()
|
.fetch()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun searchSeriesList(searchWord: String): List<GetAdminSearchSeriesListItem> {
|
||||||
|
val where = series.isActive.isTrue
|
||||||
|
.and(series.member.isNotNull)
|
||||||
|
.and(series.member.isActive.isTrue)
|
||||||
|
|
||||||
|
return queryFactory
|
||||||
|
.select(
|
||||||
|
QGetAdminSearchSeriesListItem(
|
||||||
|
series.id,
|
||||||
|
series.title
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.from(series)
|
||||||
|
.innerJoin(series.member, member)
|
||||||
|
.where(where)
|
||||||
|
.orderBy(series.id.desc())
|
||||||
|
.fetch()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,4 +14,8 @@ class AdminContentSeriesService(private val repository: AdminContentSeriesReposi
|
||||||
|
|
||||||
return GetAdminSeriesListResponse(totalCount, items)
|
return GetAdminSeriesListResponse(totalCount, items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun searchSeriesList(searchWord: String): List<GetAdminSearchSeriesListItem> {
|
||||||
|
return repository.searchSeriesList(searchWord)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,3 +18,8 @@ data class GetAdminSeriesListItem @QueryProjection constructor(
|
||||||
val state: String,
|
val state: String,
|
||||||
val isAdult: Boolean
|
val isAdult: Boolean
|
||||||
)
|
)
|
||||||
|
|
||||||
|
data class GetAdminSearchSeriesListItem @QueryProjection constructor(
|
||||||
|
val id: Long,
|
||||||
|
val title: String
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue