From 5732ecfbfaee6f2776f9d15056341839f238a7aa Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 13 Mar 2024 16:21:10 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EC=8B=9C=EA=B7=B8=EB=8B=88=EC=B2=98=20-=20?= =?UTF-8?q?19=EA=B8=88=20=EC=97=AC=EB=B6=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../signature/AdminSignatureCanController.kt | 10 ++++++---- .../signature/AdminSignatureCanService.kt | 10 +++++++--- .../CreatorAdminSignatureController.kt | 12 ++++++++++-- .../signature/CreatorAdminSignatureService.kt | 10 +++++++--- .../sodalive/live/room/LiveRoomService.kt | 3 ++- .../sodalive/live/signature/SignatureCan.kt | 1 + .../live/signature/SignatureCanRepository.kt | 19 ++++++++++++------- 7 files changed, 45 insertions(+), 20 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt index 17b4c3d..9734dac 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt @@ -23,9 +23,10 @@ class AdminSignatureCanController(private val service: AdminSignatureCanService) fun createSignatureCan( @RequestParam("can") can: Int, @RequestParam("image") image: MultipartFile, - @RequestParam("creator_id") creatorId: Long + @RequestParam("creator_id") creatorId: Long, + @RequestParam("isAdult", required = false) isAdult: Boolean = false ) = ApiResponse.ok( - service.createSignatureCan(can = can, creatorId = creatorId, image = image), + service.createSignatureCan(can = can, creatorId = creatorId, image = image, isAdult = isAdult), "등록되었습니다." ) @@ -33,14 +34,15 @@ class AdminSignatureCanController(private val service: AdminSignatureCanService) fun modifySignatureCan( @RequestParam("id") id: Long, @RequestParam("image", required = false) image: MultipartFile?, - @RequestParam("isActive", required = false) isActive: Boolean? + @RequestParam("isActive", required = false) isActive: Boolean?, + @RequestParam("isAdult", required = false) isAdult: Boolean? ) = run { if (image == null && isActive == null) { throw SodaException("변경사항이 없습니다.") } ApiResponse.ok( - service.modifySignatureCan(id = id, image = image, isActive = isActive), + service.modifySignatureCan(id = id, image = image, isActive = isActive, isAdult = isAdult), "수정되었습니다." ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt index 8834731..33a0225 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt @@ -37,13 +37,13 @@ class AdminSignatureCanService( } @Transactional - fun createSignatureCan(can: Int, creatorId: Long, image: MultipartFile) { + fun createSignatureCan(can: Int, creatorId: Long, image: MultipartFile, isAdult: Boolean) { if (creatorId < 1) throw SodaException("올바른 크리에이터를 선택해 주세요.") val creator = memberRepository.findCreatorByIdOrNull(memberId = creatorId) ?: throw SodaException("올바른 크리에이터를 선택해 주세요.") - val signatureCan = SignatureCan(can = can) + val signatureCan = SignatureCan(can = can, isAdult = isAdult) signatureCan.creator = creator repository.save(signatureCan) @@ -60,7 +60,7 @@ class AdminSignatureCanService( } @Transactional - fun modifySignatureCan(id: Long, image: MultipartFile?, isActive: Boolean?) { + fun modifySignatureCan(id: Long, image: MultipartFile?, isActive: Boolean?, isAdult: Boolean?) { val signatureCan = repository.findByIdOrNull(id = id) ?: throw SodaException("잘못된 요청입니다.") @@ -68,6 +68,10 @@ class AdminSignatureCanService( signatureCan.isActive = isActive } + if (isAdult != null) { + signatureCan.isAdult = isAdult + } + if (image != null) { val metadata = ObjectMetadata() metadata.contentLength = image.size diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt index 5fdafa1..9a54ffd 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt @@ -32,12 +32,13 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature fun createSignature( @RequestParam("can") can: Int, @RequestParam("image") image: MultipartFile, + @RequestParam("isAdult", required = false) isAdult: Boolean = false, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? ) = run { if (member == null) throw SodaException("로그인 정보를 확인해주세요.") ApiResponse.ok( - service.createSignature(can = can, image = image, memberId = member.id!!), + service.createSignature(can = can, image = image, isAdult = isAdult, memberId = member.id!!), "등록되었습니다." ) } @@ -47,13 +48,20 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature @RequestParam("id") id: Long, @RequestParam("image", required = false) image: MultipartFile?, @RequestParam("isActive", required = false) isActive: Boolean?, + @RequestParam("isAdult", required = false) isAdult: Boolean?, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? ) = run { if (member == null) throw SodaException("로그인 정보를 확인해주세요.") if (image == null && isActive == null) throw SodaException("변경사항이 없습니다.") ApiResponse.ok( - service.modifySignature(id = id, image = image, isActive = isActive, memberId = member.id!!), + service.modifySignature( + id = id, + image = image, + isActive = isActive, + isAdult = isAdult, + memberId = member.id!! + ), if (isActive == false) "삭제되었습니다." else "수정되었습니다." ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt index f1a637e..2886f4b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt @@ -37,11 +37,11 @@ class CreatorAdminSignatureService( } @Transactional - fun createSignature(can: Int, image: MultipartFile, memberId: Long) { + fun createSignature(can: Int, image: MultipartFile, memberId: Long, isAdult: Boolean) { val member = memberRepository.findCreatorByIdOrNull(memberId = memberId) ?: throw SodaException("잘못된 접근입니다.") - val signatureCan = SignatureCan(can = can) + val signatureCan = SignatureCan(can = can, isAdult = isAdult) signatureCan.creator = member repository.save(signatureCan) @@ -58,7 +58,7 @@ class CreatorAdminSignatureService( } @Transactional - fun modifySignature(id: Long, image: MultipartFile?, isActive: Boolean?, memberId: Long) { + fun modifySignature(id: Long, image: MultipartFile?, isActive: Boolean?, memberId: Long, isAdult: Boolean?) { val signatureCan = repository.findSignatureByIdOrNull(id = id, memberId = memberId) ?: throw SodaException("잘못된 요청입니다.") @@ -66,6 +66,10 @@ class CreatorAdminSignatureService( signatureCan.isActive = isActive } + if (isAdult != null) { + signatureCan.isAdult = isAdult + } + if (image != null) { val metadata = ObjectMetadata() metadata.contentLength = image.size diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 85dfd1a..6cfc274 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -1009,7 +1009,8 @@ class LiveRoomService( return signatureCanRepository.findImageByCreatorIdAndCan( creatorId = host.id!!, can = request.can, - imageHost = cloudFrontHost + imageHost = cloudFrontHost, + isAdult = room.isAdult ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt index 66c666a..dc11fb6 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt @@ -10,6 +10,7 @@ import javax.persistence.ManyToOne @Entity data class SignatureCan( val can: Int, + var isAdult: Boolean = false, var isActive: Boolean = true ) : BaseEntity() { var image: String? = null diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCanRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCanRepository.kt index 51d67e9..2976998 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCanRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCanRepository.kt @@ -7,19 +7,24 @@ import org.springframework.data.jpa.repository.JpaRepository interface SignatureCanRepository : JpaRepository, SignatureCanQueryRepository interface SignatureCanQueryRepository { - fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String? + fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String, isAdult: Boolean): String? } class SignatureCanQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : SignatureCanQueryRepository { - override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String? { + override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String, isAdult: Boolean): String? { + var where = signatureCan.creator.id.eq(creatorId) + .and(signatureCan.can.eq(can)) + .and(signatureCan.isActive.isTrue) + + if (!isAdult) { + where = where.and(signatureCan.isAdult.isFalse()) + } + 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) - ) + .where(where) + .orderBy(signatureCan.isAdult.desc()) .fetchFirst() } } -- 2.40.1 From b8d422f45c0ea2185079aa2a014844b25f87a848 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 13 Mar 2024 18:59:57 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EC=8B=9C=EA=B7=B8=EB=8B=88=EC=B2=98=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20-=2019=EA=B8=88=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/admin/live/signature/AdminSignatureCanRepository.kt | 1 + .../sodalive/admin/live/signature/GetSignatureCanListResponse.kt | 1 + .../creator/admin/signature/CreatorAdminSignatureRepository.kt | 1 + .../sodalive/creator/admin/signature/GetSignatureListResponse.kt | 1 + 4 files changed, 4 insertions(+) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanRepository.kt index 5f34200..7825fa8 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanRepository.kt @@ -31,6 +31,7 @@ class AdminSignatureCanQueryRepositoryImpl( signatureCan.id, signatureCan.can, signatureCan.image.prepend("/").prepend(imageHost), + signatureCan.isAdult, member.nickname ) ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt index d197058..1969a4d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt @@ -11,5 +11,6 @@ data class GetSignatureCanListItem @QueryProjection constructor( val id: Long, val can: Int, val image: String, + val isAdult: Boolean, val nickname: String ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureRepository.kt index 4442839..7fcc302 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureRepository.kt @@ -41,6 +41,7 @@ class CreatorAdminSignatureQueryRepositoryImpl( signatureCan.id, signatureCan.can, signatureCan.image.prepend("/").prepend(imageHost), + signatureCan.isAdult, member.nickname ) ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/GetSignatureListResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/GetSignatureListResponse.kt index 95093d8..9c8028d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/GetSignatureListResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/GetSignatureListResponse.kt @@ -11,5 +11,6 @@ data class GetSignatureListItem @QueryProjection constructor( val id: Long, val can: Int, val image: String, + val isAdult: Boolean, val nickname: String ) -- 2.40.1 From c3e18d658c40261609f06115ffcbaea867b32f81 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 13 Mar 2024 19:10:21 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=8B=9C=EA=B7=B8=EB=8B=88=EC=B2=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20-=20=EC=BA=94=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../live/signature/AdminSignatureCanController.kt | 5 +++-- .../live/signature/AdminSignatureCanService.kt | 6 +++++- .../signature/CreatorAdminSignatureController.kt | 6 +++++- .../admin/signature/CreatorAdminSignatureService.kt | 13 ++++++++++++- .../sodalive/live/signature/SignatureCan.kt | 2 +- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt index 9734dac..1abe191 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanController.kt @@ -33,16 +33,17 @@ class AdminSignatureCanController(private val service: AdminSignatureCanService) @PutMapping fun modifySignatureCan( @RequestParam("id") id: Long, + @RequestParam("can", required = false) can: Int?, @RequestParam("image", required = false) image: MultipartFile?, @RequestParam("isActive", required = false) isActive: Boolean?, @RequestParam("isAdult", required = false) isAdult: Boolean? ) = run { - if (image == null && isActive == null) { + if (can == null && image == null && isActive == null && isAdult == null) { throw SodaException("변경사항이 없습니다.") } ApiResponse.ok( - service.modifySignatureCan(id = id, image = image, isActive = isActive, isAdult = isAdult), + service.modifySignatureCan(id = id, can = can, image = image, isActive = isActive, isAdult = isAdult), "수정되었습니다." ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt index 33a0225..d5028cd 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt @@ -60,10 +60,14 @@ class AdminSignatureCanService( } @Transactional - fun modifySignatureCan(id: Long, image: MultipartFile?, isActive: Boolean?, isAdult: Boolean?) { + fun modifySignatureCan(id: Long, can: Int?, image: MultipartFile?, isActive: Boolean?, isAdult: Boolean?) { val signatureCan = repository.findByIdOrNull(id = id) ?: throw SodaException("잘못된 요청입니다.") + if (can != null) { + signatureCan.can = can + } + if (isActive != null) { signatureCan.isActive = isActive } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt index 9a54ffd..df3115d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureController.kt @@ -46,17 +46,21 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature @PutMapping fun modifySignature( @RequestParam("id") id: Long, + @RequestParam("can", required = false) can: Int?, @RequestParam("image", required = false) image: MultipartFile?, @RequestParam("isActive", required = false) isActive: Boolean?, @RequestParam("isAdult", required = false) isAdult: Boolean?, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? ) = run { if (member == null) throw SodaException("로그인 정보를 확인해주세요.") - if (image == null && isActive == null) throw SodaException("변경사항이 없습니다.") + if (can == null && image == null && isActive == null && isAdult == null) { + throw SodaException("변경사항이 없습니다.") + } ApiResponse.ok( service.modifySignature( id = id, + can = can, image = image, isActive = isActive, isAdult = isAdult, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt index 2886f4b..9c1f57c 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/creator/admin/signature/CreatorAdminSignatureService.kt @@ -58,10 +58,21 @@ class CreatorAdminSignatureService( } @Transactional - fun modifySignature(id: Long, image: MultipartFile?, isActive: Boolean?, memberId: Long, isAdult: Boolean?) { + fun modifySignature( + id: Long, + can: Int?, + image: MultipartFile?, + isActive: Boolean?, + memberId: Long, + isAdult: Boolean? + ) { val signatureCan = repository.findSignatureByIdOrNull(id = id, memberId = memberId) ?: throw SodaException("잘못된 요청입니다.") + if (can != null) { + signatureCan.can = can + } + if (isActive != null) { signatureCan.isActive = isActive } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt index dc11fb6..c9ee36f 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/signature/SignatureCan.kt @@ -9,7 +9,7 @@ import javax.persistence.ManyToOne @Entity data class SignatureCan( - val can: Int, + var can: Int, var isAdult: Boolean = false, var isActive: Boolean = true ) : BaseEntity() { -- 2.40.1