관리자 시그니처 캔 리스트
- 정렬 추가
This commit is contained in:
		| @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.admin.live.signature | ||||
|  | ||||
| import kr.co.vividnext.sodalive.common.ApiResponse | ||||
| import kr.co.vividnext.sodalive.common.SodaException | ||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCanSortType | ||||
| import org.springframework.data.domain.Pageable | ||||
| import org.springframework.security.access.prepost.PreAuthorize | ||||
| import org.springframework.web.bind.annotation.GetMapping | ||||
| @@ -17,7 +18,10 @@ import org.springframework.web.multipart.MultipartFile | ||||
| @RequestMapping("/admin/live/signature-can") | ||||
| class AdminSignatureCanController(private val service: AdminSignatureCanService) { | ||||
|     @GetMapping | ||||
|     fun getSignatureCanList(pageable: Pageable) = ApiResponse.ok(data = service.getSignatureCanList(pageable)) | ||||
|     fun getSignatureCanList( | ||||
|         pageable: Pageable, | ||||
|         @RequestParam("sort-type", required = false) sortType: SignatureCanSortType? | ||||
|     ) = ApiResponse.ok(data = service.getSignatureCanList(pageable, sortType ?: SignatureCanSortType.NEWEST)) | ||||
|  | ||||
|     @PostMapping | ||||
|     fun createSignatureCan( | ||||
|   | ||||
| @@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.admin.live.signature | ||||
| import com.querydsl.jpa.impl.JPAQueryFactory | ||||
| import kr.co.vividnext.sodalive.live.signature.QSignatureCan.signatureCan | ||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCan | ||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCanSortType | ||||
| import kr.co.vividnext.sodalive.member.QMember.member | ||||
| import org.springframework.data.jpa.repository.JpaRepository | ||||
|  | ||||
| @@ -11,7 +12,12 @@ interface AdminSignatureCanRepository : JpaRepository<SignatureCan, Long>, Admin | ||||
| interface AdminSignatureCanQueryRepository { | ||||
|     fun getSignatureCanListTotalCount(): Int | ||||
|  | ||||
|     fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List<GetSignatureCanListItem> | ||||
|     fun getSignatureCanList( | ||||
|         sortType: SignatureCanSortType, | ||||
|         imageHost: String, | ||||
|         offset: Long, | ||||
|         limit: Long | ||||
|     ): List<GetSignatureCanListItem> | ||||
| } | ||||
|  | ||||
| class AdminSignatureCanQueryRepositoryImpl( | ||||
| @@ -25,7 +31,26 @@ class AdminSignatureCanQueryRepositoryImpl( | ||||
|             .size | ||||
|     } | ||||
|  | ||||
|     override fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List<GetSignatureCanListItem> { | ||||
|     override fun getSignatureCanList( | ||||
|         sortType: SignatureCanSortType, | ||||
|         imageHost: String, | ||||
|         offset: Long, | ||||
|         limit: Long | ||||
|     ): List<GetSignatureCanListItem> { | ||||
|         val orderBy = when (sortType) { | ||||
|             SignatureCanSortType.CAN_HIGH -> { | ||||
|                 signatureCan.can.desc() | ||||
|             } | ||||
|  | ||||
|             SignatureCanSortType.CAN_LOW -> { | ||||
|                 signatureCan.can.asc() | ||||
|             } | ||||
|  | ||||
|             else -> { | ||||
|                 signatureCan.id.desc() | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return queryFactory.select( | ||||
|             QGetSignatureCanListItem( | ||||
|                 signatureCan.id, | ||||
| @@ -41,7 +66,7 @@ class AdminSignatureCanQueryRepositoryImpl( | ||||
|             .where(signatureCan.isActive.isTrue) | ||||
|             .offset(offset) | ||||
|             .limit(limit) | ||||
|             .orderBy(signatureCan.id.desc()) | ||||
|             .orderBy(member.id.desc(), orderBy) | ||||
|             .fetch() | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import com.amazonaws.services.s3.model.ObjectMetadata | ||||
| import kr.co.vividnext.sodalive.aws.s3.S3Uploader | ||||
| import kr.co.vividnext.sodalive.common.SodaException | ||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCan | ||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCanSortType | ||||
| import kr.co.vividnext.sodalive.member.MemberRepository | ||||
| import kr.co.vividnext.sodalive.utils.generateFileName | ||||
| import org.springframework.beans.factory.annotation.Value | ||||
| @@ -25,9 +26,13 @@ class AdminSignatureCanService( | ||||
|     @Value("\${cloud.aws.cloud-front.host}") | ||||
|     private val imageHost: String | ||||
| ) { | ||||
|     fun getSignatureCanList(pageable: Pageable): GetSignatureCanListResponse { | ||||
|     fun getSignatureCanList( | ||||
|         pageable: Pageable, | ||||
|         sortType: SignatureCanSortType | ||||
|     ): GetSignatureCanListResponse { | ||||
|         val totalCount = repository.getSignatureCanListTotalCount() | ||||
|         val items = repository.getSignatureCanList( | ||||
|             sortType = sortType, | ||||
|             imageHost = imageHost, | ||||
|             offset = pageable.offset, | ||||
|             limit = pageable.pageSize.toLong() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user