크리에이터 관리자 - 콘텐츠 수정

- 가격 수정시 변경사항 로그로 기록
This commit is contained in:
Klaus 2024-05-29 15:16:24 +09:00
parent f0aa0bc021
commit e3f65c8941
3 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,29 @@
package kr.co.vividnext.sodalive.content
import java.time.LocalDateTime
import javax.persistence.Entity
import javax.persistence.FetchType
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
import javax.persistence.JoinColumn
import javax.persistence.ManyToOne
import javax.persistence.PrePersist
@Entity
data class ContentPriceChangeLog(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long? = null,
val prevPrice: Int,
var createdAt: LocalDateTime? = null
) {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "content_id", nullable = false)
var audioContent: AudioContent? = null
@PrePersist
fun prePersist() {
createdAt = LocalDateTime.now()
}
}

View File

@ -0,0 +1,5 @@
package kr.co.vividnext.sodalive.content
import org.springframework.data.jpa.repository.JpaRepository
interface ContentPriceChangeLogRepository : JpaRepository<ContentPriceChangeLog, Long>

View File

@ -5,6 +5,8 @@ import com.fasterxml.jackson.databind.ObjectMapper
import kr.co.vividnext.sodalive.aws.cloudfront.AudioContentCloudFront
import kr.co.vividnext.sodalive.aws.s3.S3Uploader
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.content.ContentPriceChangeLog
import kr.co.vividnext.sodalive.content.ContentPriceChangeLogRepository
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.utils.generateFileName
import org.springframework.beans.factory.annotation.Value
@ -16,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile
@Service
class CreatorAdminContentService(
private val repository: CreatorAdminContentRepository,
private val contentPriceChangeLogRepository: ContentPriceChangeLogRepository,
private val audioContentCloudFront: AudioContentCloudFront,
private val objectMapper: ObjectMapper,
private val s3Uploader: S3Uploader,
@ -142,6 +145,11 @@ class CreatorAdminContentService(
if (request.price != null) {
if (request.price < 5) throw SodaException("콘텐츠의 최소금액은 5캔 입니다.")
val contentPriceChangeLog = ContentPriceChangeLog(prevPrice = audioContent.price)
contentPriceChangeLog.audioContent = audioContent
contentPriceChangeLogRepository.save(contentPriceChangeLog)
audioContent.price = request.price
}
}