refactor: timeAgo 함수

- LocalDateTime 확장함수 처리
This commit is contained in:
Klaus 2025-07-18 13:33:19 +09:00
parent 34440e9ba3
commit d98268f809
2 changed files with 23 additions and 19 deletions

View File

@ -16,6 +16,7 @@ import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.CreatorCo
import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.CreatorCommunityLikeRepository import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.CreatorCommunityLikeRepository
import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.PostCommunityPostLikeRequest import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.PostCommunityPostLikeRequest
import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.PostCommunityPostLikeResponse import kr.co.vividnext.sodalive.explorer.profile.creatorCommunity.like.PostCommunityPostLikeResponse
import kr.co.vividnext.sodalive.extensions.getTimeAgoString
import kr.co.vividnext.sodalive.fcm.FcmEvent import kr.co.vividnext.sodalive.fcm.FcmEvent
import kr.co.vividnext.sodalive.fcm.FcmEventType import kr.co.vividnext.sodalive.fcm.FcmEventType
import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.Member
@ -28,8 +29,6 @@ import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional import org.springframework.transaction.annotation.Transactional
import org.springframework.web.multipart.MultipartFile import org.springframework.web.multipart.MultipartFile
import java.time.Duration
import java.time.LocalDateTime
@Service @Service
class CreatorCommunityService( class CreatorCommunityService(
@ -243,7 +242,7 @@ class CreatorCommunityService(
it.toCommunityPostListResponse( it.toCommunityPostListResponse(
imageHost = imageHost, imageHost = imageHost,
audioUrl = audioUrl, audioUrl = audioUrl,
date = getTimeAgoString(it.date), date = it.date.getTimeAgoString(),
isLike = isLike, isLike = isLike,
memberId = memberId, memberId = memberId,
existOrdered = if (memberId == it.creatorId) { existOrdered = if (memberId == it.creatorId) {
@ -314,7 +313,7 @@ class CreatorCommunityService(
return post.toCommunityPostListResponse( return post.toCommunityPostListResponse(
imageHost = imageHost, imageHost = imageHost,
audioUrl = audioUrl, audioUrl = audioUrl,
date = getTimeAgoString(post.date), date = post.date.getTimeAgoString(),
isLike = isLike, isLike = isLike,
memberId = memberId, memberId = memberId,
existOrdered = if (memberId == post.creatorId) { existOrdered = if (memberId == post.creatorId) {
@ -328,19 +327,6 @@ class CreatorCommunityService(
) )
} }
private fun getTimeAgoString(dateTime: LocalDateTime): String {
val now = LocalDateTime.now()
val duration = Duration.between(dateTime, now)
return when {
duration.toMinutes() < 60 -> "${duration.toMinutes()}분전"
duration.toHours() < 24 -> "${duration.toHours()}시간전"
duration.toDays() < 30 -> "${duration.toDays()}일전"
duration.toDays() < 365 -> "${duration.toDays() / 30}개월전"
else -> "${duration.toDays() / 365}년전"
}
}
@Transactional @Transactional
fun communityPostLike(request: PostCommunityPostLikeRequest, member: Member): PostCommunityPostLikeResponse { fun communityPostLike(request: PostCommunityPostLikeRequest, member: Member): PostCommunityPostLikeResponse {
var postLike = likeRepository.findByPostIdAndMemberId(postId = request.postId, memberId = member.id!!) var postLike = likeRepository.findByPostIdAndMemberId(postId = request.postId, memberId = member.id!!)
@ -506,7 +492,7 @@ class CreatorCommunityService(
it.toCommunityPostListResponse( it.toCommunityPostListResponse(
imageHost = imageHost, imageHost = imageHost,
audioUrl = null, audioUrl = null,
date = getTimeAgoString(it.date), date = it.date.getTimeAgoString(),
isLike = isLike, isLike = isLike,
memberId = memberId, memberId = memberId,
existOrdered = if (memberId == it.creatorId) { existOrdered = if (memberId == it.creatorId) {
@ -590,7 +576,7 @@ class CreatorCommunityService(
imageHost = imageHost, imageHost = imageHost,
audioUrl = audioUrl, audioUrl = audioUrl,
content = post.content, content = post.content,
date = getTimeAgoString(post.createdAt!!), date = post.createdAt!!.getTimeAgoString(),
isLike = isLike, isLike = isLike,
existOrdered = true, existOrdered = true,
likeCount = likeCount, likeCount = likeCount,

View File

@ -0,0 +1,18 @@
package kr.co.vividnext.sodalive.extensions
import java.time.Duration
import java.time.LocalDateTime
fun LocalDateTime.getTimeAgoString(): String {
val now = LocalDateTime.now()
val duration = Duration.between(this, now)
return when {
duration.toMinutes() < 1 -> "방금 전"
duration.toMinutes() < 60 -> "${duration.toMinutes()}분전"
duration.toHours() < 24 -> "${duration.toHours()}시간전"
duration.toDays() < 30 -> "${duration.toDays()}일전"
duration.toDays() < 365 -> "${duration.toDays() / 30}개월전"
else -> "${duration.toDays() / 365}년전"
}
}