From 62797eb3f53698c65154f979b22a4d012763457a Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 8 Nov 2023 00:16:41 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=EC=98=88=EC=95=BD=EB=90=9C=20=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=EB=B8=8C=20=EC=8B=9C=EC=9E=91=20-=20=EC=98=88?= =?UTF-8?q?=EC=95=BD=EB=90=9C=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=EA=B0=84=EC=9D=84=20=ED=98=84=EC=9E=AC?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20-?= =?UTF-8?q?=20=EC=98=88=EC=95=BD=ED=95=9C=20=EC=8B=9C=EA=B0=84=20-=2010?= =?UTF-8?q?=EB=B6=84=20=EB=B3=B4=EB=8B=A4=20=EB=8D=94=20=EB=A8=BC=EC=A0=80?= =?UTF-8?q?=20=EC=8B=9C=EC=9E=91=ED=95=98=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EB=A9=94=EC=8B=9C=EC=A7=80=EC=9D=98=20dat?= =?UTF-8?q?eformat=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/live/room/LiveRoomService.kt | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 5661830..3695418 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -56,7 +56,9 @@ import org.springframework.web.multipart.MultipartFile import java.time.LocalDateTime import java.time.ZoneId import java.time.format.DateTimeFormatter +import java.time.format.FormatStyle import java.util.Date +import java.util.Locale import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.write @@ -384,27 +386,30 @@ class LiveRoomService( val room = repository.getLiveRoomAndAccountId(request.roomId, member.id!!) ?: throw SodaException("해당하는 라이브가 없습니다.") - val dateTime = LocalDateTime.now() - .atZone(ZoneId.of("UTC")) - .withZoneSameInstant(ZoneId.of(request.timezone)) - .toLocalDateTime() + val nowDateTime = LocalDateTime.now() - val beginDateTime = room.beginDateTime - .atZone(ZoneId.of("UTC")) - .withZoneSameInstant(ZoneId.of(request.timezone)) - .toLocalDateTime() + if (nowDateTime.plusMinutes(10).isBefore(room.beginDateTime)) { + val startAvailableDateTimeString = room.beginDateTime + .minusMinutes(10) + .atZone(ZoneId.of("UTC")) + .withZoneSameInstant(ZoneId.of(request.timezone)) + .toLocalDateTime() + .format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).withLocale(Locale.KOREAN)) - if (dateTime.plusMinutes(10).isBefore(beginDateTime)) { - val startAvailableDateTimeString = beginDateTime.minusMinutes(10).format( - DateTimeFormatter.ofPattern("yyyy.MM.dd E hh:mm a") - ) throw SodaException("$startAvailableDateTimeString 이후에 시작할 수 있습니다.") } + val dateTime = nowDateTime + .atZone(ZoneId.of("UTC")) + .withZoneSameInstant(ZoneId.of(request.timezone)) + .toLocalDateTime() + room.channelName = "SODA_LIVE_CHANNEL_" + "${member.id}_${dateTime.year}_${dateTime.month}_${dateTime.dayOfMonth}_" + "${dateTime.hour}_${dateTime.minute}" + room.beginDateTime = nowDateTime + applicationEventPublisher.publishEvent( FcmEvent( type = FcmEventType.START_LIVE, -- 2.40.1 From fc39b6c7a053d7bc40fe7eb234a61ce37d3d1fbe Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 8 Nov 2023 00:38:46 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EC=98=88=EC=95=BD=EB=90=9C=20=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=EB=B8=8C=20=EC=8B=9C=EC=9E=91=20-=20=EC=98=88?= =?UTF-8?q?=EC=95=BD=EB=90=9C=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=EA=B0=84=EC=9D=84=20=ED=98=84=EC=9E=AC?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20-?= =?UTF-8?q?=20=EC=98=88=EC=95=BD=ED=95=9C=20=EC=8B=9C=EA=B0=84=20-=2010?= =?UTF-8?q?=EB=B6=84=20=EB=B3=B4=EB=8B=A4=20=EB=8D=94=20=EB=A8=BC=EC=A0=80?= =?UTF-8?q?=20=EC=8B=9C=EC=9E=91=ED=95=98=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EB=A9=94=EC=8B=9C=EC=A7=80=EC=9D=98=20dat?= =?UTF-8?q?eformat=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/co/vividnext/sodalive/live/room/LiveRoomService.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 3695418..bf2a944 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -56,7 +56,6 @@ import org.springframework.web.multipart.MultipartFile import java.time.LocalDateTime import java.time.ZoneId import java.time.format.DateTimeFormatter -import java.time.format.FormatStyle import java.util.Date import java.util.Locale import java.util.concurrent.locks.ReentrantReadWriteLock @@ -392,9 +391,8 @@ class LiveRoomService( val startAvailableDateTimeString = room.beginDateTime .minusMinutes(10) .atZone(ZoneId.of("UTC")) - .withZoneSameInstant(ZoneId.of(request.timezone)) - .toLocalDateTime() - .format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).withLocale(Locale.KOREAN)) + .withZoneSameInstant(ZoneId.of("Asia/Seoul")) + .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 E요일 a HH:mm").withLocale(Locale.KOREAN)) throw SodaException("$startAvailableDateTimeString 이후에 시작할 수 있습니다.") } -- 2.40.1 From ee1c8d1f83cfae22bcfba95abdf16d1eee680b5a Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 8 Nov 2023 00:49:11 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8,=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20-=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=20=EB=82=A0=EC=A7=9C/=EC=8B=9C=EA=B0=84=20=ED=8F=AC?= =?UTF-8?q?=EB=A7=B7=20yyyy=EB=85=84=20MM=EC=9B=94=20dd=EC=9D=BC=20E?= =?UTF-8?q?=EC=9A=94=EC=9D=BC=20a=20HH:mm=20=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/co/vividnext/sodalive/live/room/LiveRoomService.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index bf2a944..82b9872 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -126,14 +126,13 @@ class LiveRoomService( val beginDateTime = it.beginDateTime .atZone(ZoneId.of("UTC")) .withZoneSameInstant(ZoneId.of(timezone)) + .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 E요일 a HH:mm").withLocale(Locale.KOREAN)) GetRoomListResponse( roomId = it.id!!, title = it.title, content = it.notice, - beginDateTime = beginDateTime.format( - DateTimeFormatter.ofPattern("yyyy.MM.dd E hh:mm a") - ), + beginDateTime = beginDateTime, numberOfParticipate = (roomInfo?.listenerCount ?: 0) + (roomInfo?.speakerCount ?: 0) + (roomInfo?.managerCount ?: 0), @@ -298,6 +297,7 @@ class LiveRoomService( val beginDateTime = room.beginDateTime .atZone(ZoneId.of("UTC")) .withZoneSameInstant(ZoneId.of(timezone)) + .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 E요일 a HH:mm").withLocale(Locale.KOREAN)) val response = GetRoomDetailResponse( roomId = roomId, @@ -308,7 +308,7 @@ class LiveRoomService( numberOfParticipantsTotal = room.numberOfPeople, numberOfParticipants = 0, channelName = room.channelName, - beginDateTime = beginDateTime.format(DateTimeFormatter.ofPattern("yyyy.MM.dd E hh:mm a")), + beginDateTime = beginDateTime, isPaid = false, isAdult = room.isAdult, isPrivateRoom = room.type == LiveRoomType.PRIVATE, -- 2.40.1 From 24fc451574d727177ef5a23b562024669bb6d8b2 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 8 Nov 2023 00:55:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8,=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20-=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=20=EB=82=A0=EC=A7=9C/=EC=8B=9C=EA=B0=84=20=ED=8F=AC?= =?UTF-8?q?=EB=A7=B7=20yyyy=EB=85=84=20MM=EC=9B=94=20dd=EC=9D=BC=20(E)=20a?= =?UTF-8?q?=20HH=EC=8B=9C=20mm=EB=B6=84=20=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/co/vividnext/sodalive/live/room/LiveRoomService.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 82b9872..9e5bbba 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -126,7 +126,7 @@ class LiveRoomService( val beginDateTime = it.beginDateTime .atZone(ZoneId.of("UTC")) .withZoneSameInstant(ZoneId.of(timezone)) - .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 E요일 a HH:mm").withLocale(Locale.KOREAN)) + .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 (E) a HH시 mm분").withLocale(Locale.KOREAN)) GetRoomListResponse( roomId = it.id!!, @@ -297,7 +297,7 @@ class LiveRoomService( val beginDateTime = room.beginDateTime .atZone(ZoneId.of("UTC")) .withZoneSameInstant(ZoneId.of(timezone)) - .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 E요일 a HH:mm").withLocale(Locale.KOREAN)) + .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 (E) a HH시 mm분").withLocale(Locale.KOREAN)) val response = GetRoomDetailResponse( roomId = roomId, @@ -392,7 +392,7 @@ class LiveRoomService( .minusMinutes(10) .atZone(ZoneId.of("UTC")) .withZoneSameInstant(ZoneId.of("Asia/Seoul")) - .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 E요일 a HH:mm").withLocale(Locale.KOREAN)) + .format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 (E) a HH시 mm분").withLocale(Locale.KOREAN)) throw SodaException("$startAvailableDateTimeString 이후에 시작할 수 있습니다.") } -- 2.40.1