From 86dac7e2b44ffcecd47c08616fd0fdbb47be3bcf Mon Sep 17 00:00:00 2001 From: Klaus <klaus@vividnext.co.kr> Date: Fri, 8 Nov 2024 14:50:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EA=B5=AC?= =?UTF-8?q?=EB=A7=A4=20-=20=EC=86=8C=EC=9E=A5=EB=A7=8C=20=EA=B0=80?= =?UTF-8?q?=EB=8A=A5=ED=95=9C=20=EC=BD=98=ED=85=90=EC=B8=A0=EB=A5=BC=20?= =?UTF-8?q?=EB=8C=80=EC=97=AC=20=ED=95=98=EB=A0=A4=EB=8A=94=20=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=20=EC=95=88=EB=82=B4=EB=A9=94=EC=8B=9C=EC=A7=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 --- .../vividnext/sodalive/content/order/OrderService.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt index 4826816..d6c3e0e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt @@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.can.use.CanUsage import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.content.AudioContent import kr.co.vividnext.sodalive.content.AudioContentRepository +import kr.co.vividnext.sodalive.content.PurchaseOption import kr.co.vividnext.sodalive.content.comment.AudioContentCommentRepository import kr.co.vividnext.sodalive.content.like.AudioContentLikeRepository import kr.co.vividnext.sodalive.content.main.GetAudioContentMainItem @@ -31,7 +32,7 @@ class OrderService( fun order(contentId: Long, orderType: OrderType, container: String, member: Member) { val content = audioContentRepository.findByIdAndActive(contentId) ?: throw SodaException("잘못된 콘텐츠 입니다\n다시 시도해 주세요.") - validateOrder(memberId = member.id!!, content = content) + validateOrder(memberId = member.id!!, content = content, orderType = orderType) val order = if (content.limited != null && content.remaining != null) { if (content.remaining!! <= 0) throw SodaException("해당 콘텐츠가 매진되었습니다.") @@ -75,11 +76,16 @@ class OrderService( return order } - private fun validateOrder(memberId: Long, content: AudioContent) { + private fun validateOrder(memberId: Long, content: AudioContent, orderType: OrderType) { if (memberId == content.member!!.id!!) throw SodaException("자신이 올린 콘텐츠는 구매할 수 없습니다.") + if (repository.isExistOrdered(memberId = memberId, contentId = content.id!!)) { throw SodaException("이미 구매한 콘텐츠 입니다.") } + + if (content.purchaseOption == PurchaseOption.BUY_ONLY && orderType == OrderType.RENTAL) { + throw SodaException("소장만 가능한 콘텐츠 입니다.\n앱 업데이트 후 구매해 주세요.") + } } fun getAudioContentOrderList(