크리에이터 관리자 - 시그니처 관리 페이지
- 등록순, 캔 낮은 순, 캔 높은 순 정렬 추가
This commit is contained in:
		| @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.creator.admin.signature | |||||||
|  |  | ||||||
| import kr.co.vividnext.sodalive.common.ApiResponse | import kr.co.vividnext.sodalive.common.ApiResponse | ||||||
| import kr.co.vividnext.sodalive.common.SodaException | import kr.co.vividnext.sodalive.common.SodaException | ||||||
|  | import kr.co.vividnext.sodalive.live.signature.SignatureCanSortType | ||||||
| import kr.co.vividnext.sodalive.member.Member | import kr.co.vividnext.sodalive.member.Member | ||||||
| import org.springframework.data.domain.Pageable | import org.springframework.data.domain.Pageable | ||||||
| import org.springframework.security.access.prepost.PreAuthorize | import org.springframework.security.access.prepost.PreAuthorize | ||||||
| @@ -21,11 +22,12 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature | |||||||
|     @GetMapping |     @GetMapping | ||||||
|     fun getSignatureCanList( |     fun getSignatureCanList( | ||||||
|         pageable: Pageable, |         pageable: Pageable, | ||||||
|  |         @RequestParam("sort-type", required = false) sortType: SignatureCanSortType = SignatureCanSortType.NEWEST, | ||||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? |         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? | ||||||
|     ) = run { |     ) = run { | ||||||
|         if (member == null) throw SodaException("로그인 정보를 확인해주세요.") |         if (member == null) throw SodaException("로그인 정보를 확인해주세요.") | ||||||
|  |  | ||||||
|         ApiResponse.ok(data = service.getSignatureList(pageable, memberId = member.id!!)) |         ApiResponse.ok(data = service.getSignatureList(pageable, sortType, memberId = member.id!!)) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @PostMapping |     @PostMapping | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.creator.admin.signature | |||||||
| import com.querydsl.jpa.impl.JPAQueryFactory | import com.querydsl.jpa.impl.JPAQueryFactory | ||||||
| import kr.co.vividnext.sodalive.live.signature.QSignatureCan.signatureCan | import kr.co.vividnext.sodalive.live.signature.QSignatureCan.signatureCan | ||||||
| import kr.co.vividnext.sodalive.live.signature.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 kr.co.vividnext.sodalive.member.QMember.member | ||||||
| import org.springframework.data.jpa.repository.JpaRepository | import org.springframework.data.jpa.repository.JpaRepository | ||||||
|  |  | ||||||
| @@ -11,7 +12,13 @@ interface CreatorAdminSignatureRepository : JpaRepository<SignatureCan, Long>, C | |||||||
| interface CreatorAdminSignatureQueryRepository { | interface CreatorAdminSignatureQueryRepository { | ||||||
|     fun getSignatureListTotalCount(memberId: Long): Int |     fun getSignatureListTotalCount(memberId: Long): Int | ||||||
|  |  | ||||||
|     fun getSignatureList(memberId: Long, imageHost: String, offset: Long, limit: Long): List<GetSignatureListItem> |     fun getSignatureList( | ||||||
|  |         memberId: Long, | ||||||
|  |         sortType: SignatureCanSortType, | ||||||
|  |         imageHost: String, | ||||||
|  |         offset: Long, | ||||||
|  |         limit: Long | ||||||
|  |     ): List<GetSignatureListItem> | ||||||
|  |  | ||||||
|     fun findSignatureByIdOrNull(id: Long, memberId: Long): SignatureCan? |     fun findSignatureByIdOrNull(id: Long, memberId: Long): SignatureCan? | ||||||
| } | } | ||||||
| @@ -32,10 +39,25 @@ class CreatorAdminSignatureQueryRepositoryImpl( | |||||||
|  |  | ||||||
|     override fun getSignatureList( |     override fun getSignatureList( | ||||||
|         memberId: Long, |         memberId: Long, | ||||||
|  |         sortType: SignatureCanSortType, | ||||||
|         imageHost: String, |         imageHost: String, | ||||||
|         offset: Long, |         offset: Long, | ||||||
|         limit: Long |         limit: Long | ||||||
|     ): List<GetSignatureListItem> { |     ): List<GetSignatureListItem> { | ||||||
|  |         val orderBy = when (sortType) { | ||||||
|  |             SignatureCanSortType.CAN_HIGH -> { | ||||||
|  |                 signatureCan.can.desc() | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             SignatureCanSortType.CAN_LOW -> { | ||||||
|  |                 signatureCan.can.asc() | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             else -> { | ||||||
|  |                 signatureCan.id.desc() | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|         return queryFactory.select( |         return queryFactory.select( | ||||||
|             QGetSignatureListItem( |             QGetSignatureListItem( | ||||||
|                 signatureCan.id, |                 signatureCan.id, | ||||||
| @@ -54,7 +76,7 @@ class CreatorAdminSignatureQueryRepositoryImpl( | |||||||
|             ) |             ) | ||||||
|             .offset(offset) |             .offset(offset) | ||||||
|             .limit(limit) |             .limit(limit) | ||||||
|             .orderBy(signatureCan.id.desc()) |             .orderBy(orderBy) | ||||||
|             .fetch() |             .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.aws.s3.S3Uploader | ||||||
| import kr.co.vividnext.sodalive.common.SodaException | import kr.co.vividnext.sodalive.common.SodaException | ||||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCan | 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.member.MemberRepository | ||||||
| import kr.co.vividnext.sodalive.utils.generateFileName | import kr.co.vividnext.sodalive.utils.generateFileName | ||||||
| import org.springframework.beans.factory.annotation.Value | import org.springframework.beans.factory.annotation.Value | ||||||
| @@ -24,10 +25,15 @@ class CreatorAdminSignatureService( | |||||||
|     @Value("\${cloud.aws.cloud-front.host}") |     @Value("\${cloud.aws.cloud-front.host}") | ||||||
|     private val imageHost: String |     private val imageHost: String | ||||||
| ) { | ) { | ||||||
|     fun getSignatureList(pageable: Pageable, memberId: Long): GetSignatureListResponse { |     fun getSignatureList( | ||||||
|  |         pageable: Pageable, | ||||||
|  |         sortType: SignatureCanSortType, | ||||||
|  |         memberId: Long | ||||||
|  |     ): GetSignatureListResponse { | ||||||
|         val totalCount = repository.getSignatureListTotalCount(memberId = memberId) |         val totalCount = repository.getSignatureListTotalCount(memberId = memberId) | ||||||
|         val items = repository.getSignatureList( |         val items = repository.getSignatureList( | ||||||
|             memberId = memberId, |             memberId = memberId, | ||||||
|  |             sortType = sortType, | ||||||
|             imageHost = imageHost, |             imageHost = imageHost, | ||||||
|             offset = pageable.offset, |             offset = pageable.offset, | ||||||
|             limit = pageable.pageSize.toLong() |             limit = pageable.pageSize.toLong() | ||||||
|   | |||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | package kr.co.vividnext.sodalive.live.signature | ||||||
|  |  | ||||||
|  | enum class SignatureCanSortType { | ||||||
|  |     NEWEST, CAN_HIGH, CAN_LOW | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user