캐릭터 챗봇 #338

Merged
klaus merged 119 commits from test into main 2025-09-10 06:08:47 +00:00
2 changed files with 19 additions and 6 deletions
Showing only changes of commit ca27903e45 - Show all commits

View File

@ -25,8 +25,14 @@ interface CharacterCommentRepository : JpaRepository<CharacterComment, Long> {
pageable: Pageable
): List<CharacterComment>
fun findFirstByChatCharacter_IdAndIsActiveTrueOrderByCreatedAtDesc(chatCharacterId: Long): CharacterComment?
// 최신 원댓글만 조회
fun findFirstByChatCharacter_IdAndIsActiveTrueAndParentIsNullOrderByCreatedAtDesc(
chatCharacterId: Long
): CharacterComment?
// 전체(상위+답글) 활성 댓글 총 개수
fun countByChatCharacter_IdAndIsActiveTrue(chatCharacterId: Long): Int
// 활성 원댓글 수
fun countByChatCharacter_IdAndIsActiveTrueAndParentIsNull(chatCharacterId: Long): Int
// 활성 부모를 가진 활성 답글 수 (부모가 null인 경우 제외됨)
fun countByChatCharacter_IdAndIsActiveTrueAndParent_IsActiveTrue(chatCharacterId: Long): Int
}

View File

@ -153,13 +153,20 @@ class CharacterCommentService(
@Transactional(readOnly = true)
fun getLatestComment(imageHost: String, characterId: Long): CharacterCommentResponse? {
val last = commentRepository.findFirstByChatCharacter_IdAndIsActiveTrueOrderByCreatedAtDesc(characterId)
return last?.let { toCommentResponse(imageHost, it) }
return commentRepository
.findFirstByChatCharacter_IdAndIsActiveTrueAndParentIsNullOrderByCreatedAtDesc(characterId)
?.let { toCommentResponse(imageHost, it) }
}
@Transactional(readOnly = true)
fun getTotalCommentCount(characterId: Long): Int {
return commentRepository.countByChatCharacter_IdAndIsActiveTrue(characterId)
// 활성 원댓글 수 + 활성 부모를 가진 활성 답글 수
val originalCount = commentRepository
.countByChatCharacter_IdAndIsActiveTrueAndParentIsNull(characterId)
val replyWithActiveParentCount = commentRepository
.countByChatCharacter_IdAndIsActiveTrueAndParent_IsActiveTrue(characterId)
return originalCount + replyWithActiveParentCount
}
@Transactional