fix: 앱 콘텐츠 수정

- 태그 수정, 포인트 사용여부 수정 기능
This commit is contained in:
2025-06-04 17:21:08 +09:00
parent fd1b17e356
commit 7055bb9872
3 changed files with 72 additions and 0 deletions

View File

@@ -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