fix: 앱 콘텐츠 수정
- 태그 수정, 포인트 사용여부 수정 기능
This commit is contained in:
@@ -104,6 +104,7 @@ class AudioContentService(
|
||||
|
||||
if (request.title != null) audioContent.title = request.title
|
||||
if (request.detail != null) audioContent.detail = request.detail
|
||||
if (request.isPointAvailable != null) audioContent.isPointAvailable = request.isPointAvailable
|
||||
audioContent.isCommentAvailable = request.isCommentAvailable
|
||||
audioContent.isAdult = request.isAdult
|
||||
|
||||
@@ -124,6 +125,41 @@ class AudioContentService(
|
||||
|
||||
audioContent.coverImage = coverImagePath
|
||||
}
|
||||
|
||||
if (!request.tags.isNullOrBlank()) {
|
||||
val normalizedTags = request.tags
|
||||
.replace("#", " #")
|
||||
.split(" ")
|
||||
.map { it.trim() }
|
||||
.filter { it.isNotBlank() }
|
||||
.map { if (it.startsWith("#")) it else "#$it" }
|
||||
.distinct()
|
||||
|
||||
val currentContentTags = repository.findContentHashTagByContentIdAndIsActive(request.contentId, true)
|
||||
val currentTagMap = currentContentTags.associateBy { it.hashTag!!.tag }
|
||||
|
||||
val tagsToAdd = normalizedTags.subtract(currentTagMap.keys)
|
||||
val tagsToDeactivate = currentTagMap.keys.subtract(normalizedTags.toSet())
|
||||
|
||||
tagsToDeactivate.forEach {
|
||||
currentTagMap[it]?.let { cht -> cht.isActive = false }
|
||||
}
|
||||
|
||||
val newAudioContentHashTagList = tagsToAdd.map { tag ->
|
||||
val hashTag = hashTagRepository.findByTag(tag)
|
||||
?: hashTagRepository.save(HashTag(tag))
|
||||
|
||||
val audioContentHashTag = repository.findContentIdAndHashTagId(request.contentId, hashTag.id!!)
|
||||
?: AudioContentHashTag()
|
||||
audioContentHashTag.audioContent = audioContent
|
||||
audioContentHashTag.hashTag = hashTag
|
||||
audioContentHashTag.isActive = true
|
||||
|
||||
audioContentHashTag
|
||||
}
|
||||
|
||||
audioContent.audioContentHashTags.addAll(newAudioContentHashTagList)
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
||||
Reference in New Issue
Block a user