예약된 라이브 시작

- 예약된 라이브 시작시 라이브 시작시간을 현재시간으로 변경
- 예약한 시간 - 10분 보다 더 먼저 시작하는 경우 알림 메시지의 dateformat 변경
This commit is contained in:
Klaus 2023-11-08 00:16:41 +09:00
parent 9afc44b7b1
commit 62797eb3f5
1 changed files with 17 additions and 12 deletions

View File

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