후원
- 결과값에 시그니처 이미지 URL 데이터 추가
This commit is contained in:
		| @@ -6,13 +6,15 @@ import kr.co.vividnext.sodalive.live.signature.SignatureCan | ||||
| import kr.co.vividnext.sodalive.member.QMember.member | ||||
| import org.springframework.data.jpa.repository.JpaRepository | ||||
| 
 | ||||
| interface SignatureCanRepository : JpaRepository<SignatureCan, Long>, SignatureCanQueryRepository | ||||
| interface AdminAdminSignatureCanRepository : JpaRepository<SignatureCan, Long>, AdminSignatureCanQueryRepository | ||||
| 
 | ||||
| interface SignatureCanQueryRepository { | ||||
| interface AdminSignatureCanQueryRepository { | ||||
|     fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List<GetSignatureCanListResponse> | ||||
| } | ||||
| 
 | ||||
| class SignatureCanQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : SignatureCanQueryRepository { | ||||
| class AdminSignatureCanQueryRepositoryImpl( | ||||
|     private val queryFactory: JPAQueryFactory | ||||
| ) : AdminSignatureCanQueryRepository { | ||||
|     override fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List<GetSignatureCanListResponse> { | ||||
|         return queryFactory.select( | ||||
|             QGetSignatureCanListResponse( | ||||
| @@ -15,7 +15,7 @@ import org.springframework.web.multipart.MultipartFile | ||||
| @RestController | ||||
| @PreAuthorize("hasRole('ADMIN')") | ||||
| @RequestMapping("/admin/live/signature-can") | ||||
| class SignatureCanController(private val service: SignatureCanService) { | ||||
| class AdminSignatureCanController(private val service: AdminSignatureCanService) { | ||||
|     @GetMapping | ||||
|     fun getSignatureCanList(pageable: Pageable) = ApiResponse.ok(data = service.getSignatureCanList(pageable)) | ||||
| 
 | ||||
| @@ -14,8 +14,8 @@ import org.springframework.transaction.annotation.Transactional | ||||
| import org.springframework.web.multipart.MultipartFile | ||||
| 
 | ||||
| @Service | ||||
| class SignatureCanService( | ||||
|     private val repository: SignatureCanRepository, | ||||
| class AdminSignatureCanService( | ||||
|     private val repository: AdminAdminSignatureCanRepository, | ||||
|     private val memberRepository: MemberRepository, | ||||
| 
 | ||||
|     private val s3Uploader: S3Uploader, | ||||
| @@ -43,6 +43,7 @@ import kr.co.vividnext.sodalive.live.room.menu.LiveRoomMenuService | ||||
| import kr.co.vividnext.sodalive.live.room.menu.UpdateLiveMenuRequest | ||||
| import kr.co.vividnext.sodalive.live.room.visit.LiveRoomVisitService | ||||
| import kr.co.vividnext.sodalive.live.roulette.NewRouletteRepository | ||||
| import kr.co.vividnext.sodalive.live.signature.SignatureCanRepository | ||||
| import kr.co.vividnext.sodalive.live.tag.LiveTagRepository | ||||
| import kr.co.vividnext.sodalive.member.Gender | ||||
| import kr.co.vividnext.sodalive.member.Member | ||||
| @@ -76,6 +77,7 @@ class LiveRoomService( | ||||
|     private val roomCancelRepository: LiveRoomCancelRepository, | ||||
|     private val kickOutService: LiveRoomKickOutService, | ||||
|     private val blockMemberRepository: BlockMemberRepository, | ||||
|     private val signatureCanRepository: SignatureCanRepository, | ||||
|  | ||||
|     private val applicationEventPublisher: ApplicationEventPublisher, | ||||
|     private val useCanCalculateRepository: UseCanCalculateRepository, | ||||
| @@ -970,7 +972,7 @@ class LiveRoomService( | ||||
|     } | ||||
|  | ||||
|     @Transactional | ||||
|     fun donation(request: LiveRoomDonationRequest, member: Member) { | ||||
|     fun donation(request: LiveRoomDonationRequest, member: Member): String? { | ||||
|         val room = repository.findByIdOrNull(request.roomId) | ||||
|             ?: throw SodaException("해당하는 라이브가 없습니다.") | ||||
|  | ||||
| @@ -1003,6 +1005,12 @@ class LiveRoomService( | ||||
|                 roomInfoRepository.save(roomInfo) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return signatureCanRepository.findImageByCreatorIdAndCan( | ||||
|             creatorId = host.id!!, | ||||
|             can = request.can, | ||||
|             imageHost = cloudFrontHost | ||||
|         ) | ||||
|     } | ||||
|  | ||||
|     @Transactional | ||||
|   | ||||
| @@ -0,0 +1,25 @@ | ||||
| package kr.co.vividnext.sodalive.live.signature | ||||
|  | ||||
| import com.querydsl.jpa.impl.JPAQueryFactory | ||||
| import kr.co.vividnext.sodalive.live.signature.QSignatureCan.signatureCan | ||||
| import org.springframework.data.jpa.repository.JpaRepository | ||||
|  | ||||
| interface SignatureCanRepository : JpaRepository<SignatureCan, Long>, SignatureCanQueryRepository | ||||
|  | ||||
| interface SignatureCanQueryRepository { | ||||
|     fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String? | ||||
| } | ||||
|  | ||||
| class SignatureCanQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : SignatureCanQueryRepository { | ||||
|     override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String? { | ||||
|         return queryFactory | ||||
|             .select(signatureCan.image.prepend("/").prepend(imageHost)) | ||||
|             .from(signatureCan) | ||||
|             .where( | ||||
|                 signatureCan.creator.id.eq(creatorId) | ||||
|                     .and(signatureCan.can.eq(can)) | ||||
|                     .and(signatureCan.isActive.isTrue) | ||||
|             ) | ||||
|             .fetchFirst() | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user