크리에이터 관리자 - 콘텐츠 수정
- 가격 수정시 변경사항 로그로 기록
This commit is contained in:
		| @@ -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() | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | package kr.co.vividnext.sodalive.content | ||||||
|  |  | ||||||
|  | import org.springframework.data.jpa.repository.JpaRepository | ||||||
|  |  | ||||||
|  | interface ContentPriceChangeLogRepository : JpaRepository<ContentPriceChangeLog, Long> | ||||||
| @@ -5,6 +5,8 @@ import com.fasterxml.jackson.databind.ObjectMapper | |||||||
| import kr.co.vividnext.sodalive.aws.cloudfront.AudioContentCloudFront | import kr.co.vividnext.sodalive.aws.cloudfront.AudioContentCloudFront | ||||||
| import kr.co.vividnext.sodalive.aws.s3.S3Uploader | import kr.co.vividnext.sodalive.aws.s3.S3Uploader | ||||||
| import kr.co.vividnext.sodalive.common.SodaException | 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.member.Member | ||||||
| import kr.co.vividnext.sodalive.utils.generateFileName | import kr.co.vividnext.sodalive.utils.generateFileName | ||||||
| import org.springframework.beans.factory.annotation.Value | import org.springframework.beans.factory.annotation.Value | ||||||
| @@ -16,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile | |||||||
| @Service | @Service | ||||||
| class CreatorAdminContentService( | class CreatorAdminContentService( | ||||||
|     private val repository: CreatorAdminContentRepository, |     private val repository: CreatorAdminContentRepository, | ||||||
|  |     private val contentPriceChangeLogRepository: ContentPriceChangeLogRepository, | ||||||
|     private val audioContentCloudFront: AudioContentCloudFront, |     private val audioContentCloudFront: AudioContentCloudFront, | ||||||
|     private val objectMapper: ObjectMapper, |     private val objectMapper: ObjectMapper, | ||||||
|     private val s3Uploader: S3Uploader, |     private val s3Uploader: S3Uploader, | ||||||
| @@ -142,6 +145,11 @@ class CreatorAdminContentService( | |||||||
|  |  | ||||||
|         if (request.price != null) { |         if (request.price != null) { | ||||||
|             if (request.price < 5) throw SodaException("콘텐츠의 최소금액은 5캔 입니다.") |             if (request.price < 5) throw SodaException("콘텐츠의 최소금액은 5캔 입니다.") | ||||||
|  |  | ||||||
|  |             val contentPriceChangeLog = ContentPriceChangeLog(prevPrice = audioContent.price) | ||||||
|  |             contentPriceChangeLog.audioContent = audioContent | ||||||
|  |             contentPriceChangeLogRepository.save(contentPriceChangeLog) | ||||||
|  |  | ||||||
|             audioContent.price = request.price |             audioContent.price = request.price | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user