콘텐츠 API 추가

This commit is contained in:
2023-08-03 20:36:37 +09:00
parent 5d6eb5da4f
commit 1fe5309fdc
55 changed files with 2740 additions and 0 deletions

View File

@@ -13,6 +13,8 @@ import kr.co.vividnext.sodalive.can.use.UseCanCalculateRepository
import kr.co.vividnext.sodalive.can.use.UseCanCalculateStatus
import kr.co.vividnext.sodalive.can.use.UseCanRepository
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.content.AudioContent
import kr.co.vividnext.sodalive.content.order.Order
import kr.co.vividnext.sodalive.live.room.LiveRoom
import kr.co.vividnext.sodalive.member.MemberRepository
import org.springframework.data.repository.findByIdOrNull
@@ -33,6 +35,8 @@ class CanPaymentService(
needCan: Int,
canUsage: CanUsage,
liveRoom: LiveRoom? = null,
order: Order? = null,
audioContent: AudioContent? = null,
container: String
) {
val member = memberRepository.findByIdOrNull(id = memberId)
@@ -72,6 +76,14 @@ class CanPaymentService(
recipientId = liveRoom.member!!.id!!
useCan.room = liveRoom
useCan.member = member
} else if (canUsage == CanUsage.ORDER_CONTENT && order != null) {
recipientId = order.creator!!.id!!
useCan.order = order
useCan.member = member
} else if (canUsage == CanUsage.DONATION && audioContent != null) {
recipientId = audioContent.member!!.id!!
useCan.audioContent = audioContent
useCan.member = member
} else {
throw SodaException("잘못된 요청입니다.")
}

View File

@@ -1,6 +1,8 @@
package kr.co.vividnext.sodalive.can.use
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.content.AudioContent
import kr.co.vividnext.sodalive.content.order.Order
import kr.co.vividnext.sodalive.live.room.LiveRoom
import kr.co.vividnext.sodalive.member.Member
import javax.persistence.CascadeType
@@ -11,6 +13,7 @@ import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.ManyToOne
import javax.persistence.OneToMany
import javax.persistence.OneToOne
@Entity
data class UseCan(
@@ -35,6 +38,14 @@ data class UseCan(
field = value
}
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_id", nullable = true)
var order: Order? = null
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "content_id", nullable = true)
var audioContent: AudioContent? = null
@OneToMany(mappedBy = "useCan", cascade = [CascadeType.ALL])
val useCanCalculates: MutableList<UseCanCalculate> = mutableListOf()
}