콘텐츠 고정, 해제 API 추가
This commit is contained in:
@@ -16,6 +16,8 @@ import kr.co.vividnext.sodalive.content.like.PutAudioContentLikeResponse
|
||||
import kr.co.vividnext.sodalive.content.main.GetAudioContentRanking
|
||||
import kr.co.vividnext.sodalive.content.order.OrderRepository
|
||||
import kr.co.vividnext.sodalive.content.order.OrderType
|
||||
import kr.co.vividnext.sodalive.content.pin.PinContent
|
||||
import kr.co.vividnext.sodalive.content.pin.PinContentRepository
|
||||
import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository
|
||||
import kr.co.vividnext.sodalive.explorer.ExplorerQueryRepository
|
||||
import kr.co.vividnext.sodalive.extensions.convertLocalDateTime
|
||||
@@ -49,6 +51,7 @@ class AudioContentService(
|
||||
private val playbackTrackingRepository: PlaybackTrackingRepository,
|
||||
private val commentRepository: AudioContentCommentRepository,
|
||||
private val audioContentLikeRepository: AudioContentLikeRepository,
|
||||
private val pinContentRepository: PinContentRepository,
|
||||
|
||||
private val s3Uploader: S3Uploader,
|
||||
private val objectMapper: ObjectMapper,
|
||||
@@ -696,4 +699,31 @@ class AudioContentService(
|
||||
fun getContentRankingSortTypeList(): List<String> {
|
||||
return listOf("매출", "댓글", "좋아요")
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun pinToTheTop(contentId: Long, member: Member) {
|
||||
val audioContent = repository.findByIdAndCreatorId(contentId = contentId, creatorId = member.id!!)
|
||||
?: throw SodaException("잘못된 콘텐츠 입니다.\n다시 시도해 주세요.")
|
||||
|
||||
val pinContentList = pinContentRepository.getPinContentList(memberId = member.id!!)
|
||||
val pinContent = if (pinContentList.size >= 3) {
|
||||
pinContentList[0]
|
||||
} else {
|
||||
PinContent()
|
||||
}
|
||||
|
||||
pinContent.member = member
|
||||
pinContent.content = audioContent
|
||||
pinContentRepository.save(pinContent)
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun unpinAtTheTop(contentId: Long, member: Member) {
|
||||
val pinContent = pinContentRepository.findByContentIdAndMemberId(
|
||||
contentId = contentId,
|
||||
memberId = member.id!!
|
||||
) ?: throw SodaException("잘못된 콘텐츠 입니다.\n다시 시도해 주세요.")
|
||||
|
||||
pinContent.isActive = false
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user