From d98268f8091a2464301791ae7ece12d3a2a0ba04 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 18 Jul 2025 13:33:19 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20timeAgo=20=ED=95=A8=EC=88=98=20-=20?= =?UTF-8?q?LocalDateTime=20=ED=99=95=EC=9E=A5=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreatorCommunityService.kt | 24 ++++--------------- .../extensions/LocalDateTimeExtensions.kt | 18 ++++++++++++++ 2 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/extensions/LocalDateTimeExtensions.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/profile/creatorCommunity/CreatorCommunityService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/profile/creatorCommunity/CreatorCommunityService.kt index a8deee9..a209742 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/profile/creatorCommunity/CreatorCommunityService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/profile/creatorCommunity/CreatorCommunityService.kt @@ -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.PostCommunityPostLikeRequest 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.FcmEventType 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.transaction.annotation.Transactional import org.springframework.web.multipart.MultipartFile -import java.time.Duration -import java.time.LocalDateTime @Service class CreatorCommunityService( @@ -243,7 +242,7 @@ class CreatorCommunityService( it.toCommunityPostListResponse( imageHost = imageHost, audioUrl = audioUrl, - date = getTimeAgoString(it.date), + date = it.date.getTimeAgoString(), isLike = isLike, memberId = memberId, existOrdered = if (memberId == it.creatorId) { @@ -314,7 +313,7 @@ class CreatorCommunityService( return post.toCommunityPostListResponse( imageHost = imageHost, audioUrl = audioUrl, - date = getTimeAgoString(post.date), + date = post.date.getTimeAgoString(), isLike = isLike, memberId = memberId, 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 fun communityPostLike(request: PostCommunityPostLikeRequest, member: Member): PostCommunityPostLikeResponse { var postLike = likeRepository.findByPostIdAndMemberId(postId = request.postId, memberId = member.id!!) @@ -506,7 +492,7 @@ class CreatorCommunityService( it.toCommunityPostListResponse( imageHost = imageHost, audioUrl = null, - date = getTimeAgoString(it.date), + date = it.date.getTimeAgoString(), isLike = isLike, memberId = memberId, existOrdered = if (memberId == it.creatorId) { @@ -590,7 +576,7 @@ class CreatorCommunityService( imageHost = imageHost, audioUrl = audioUrl, content = post.content, - date = getTimeAgoString(post.createdAt!!), + date = post.createdAt!!.getTimeAgoString(), isLike = isLike, existOrdered = true, likeCount = likeCount, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/extensions/LocalDateTimeExtensions.kt b/src/main/kotlin/kr/co/vividnext/sodalive/extensions/LocalDateTimeExtensions.kt new file mode 100644 index 0000000..061e19c --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/extensions/LocalDateTimeExtensions.kt @@ -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}년전" + } +}