generated from pricelees/issue-pr-template
refactor: OffsetDateTime.now()를 KST 기준으로 수정
This commit is contained in:
parent
48ee01eb9e
commit
93cff516a1
@ -15,6 +15,7 @@ object KoreaTime {
|
||||
|
||||
object KoreaDateTime {
|
||||
fun now(): LocalDateTime = LocalDateTime.now(KST_CLOCK)
|
||||
fun nowWithOffset(): OffsetDateTime = OffsetDateTime.now(KST_CLOCK)
|
||||
}
|
||||
|
||||
fun Instant.toKoreaDateTime(): LocalDateTime = this.atZone(KST_CLOCK.zone).toLocalDateTime()
|
||||
|
||||
@ -3,12 +3,9 @@ package com.sangdol.common.utils
|
||||
import io.kotest.assertions.assertSoftly
|
||||
import io.kotest.core.spec.style.FunSpec
|
||||
import io.kotest.matchers.shouldBe
|
||||
import java.time.Instant
|
||||
import java.time.LocalDateTime
|
||||
import java.time.LocalTime
|
||||
import java.time.ZoneId
|
||||
import java.time.*
|
||||
|
||||
class KoreaDateTimeExtensions : FunSpec({
|
||||
class KoreaDateTimeExtensionsTest : FunSpec({
|
||||
|
||||
test("한국 시간 기준으로 현재 시간을 가져오며, 초 단위는 제외한다.") {
|
||||
assertSoftly(KoreaTime.now()) {
|
||||
@ -21,7 +18,7 @@ class KoreaDateTimeExtensions : FunSpec({
|
||||
}
|
||||
}
|
||||
|
||||
test("한국 시간 기준으로 현재 날짜 + 시간을 가져온다.") {
|
||||
test("한국 시간 기준으로 현재 날짜 + 시간을 LocalDateTime 타입으로 가져온다.") {
|
||||
assertSoftly(KoreaDateTime.now()) {
|
||||
val utcNow = LocalDateTime.now(ZoneId.of("UTC"))
|
||||
|
||||
@ -29,7 +26,15 @@ class KoreaDateTimeExtensions : FunSpec({
|
||||
}
|
||||
}
|
||||
|
||||
test("UTC 시간을 한국 시간으로 변환한다.") {
|
||||
test("한국 시간 기준으로 현재 날짜 + 시간을 OffsetDateTime 타입으로 가져온다.") {
|
||||
assertSoftly(KoreaDateTime.nowWithOffset()) {
|
||||
val utcNow = OffsetDateTime.now(ZoneId.of("UTC"))
|
||||
|
||||
this.toLocalDateTime().withSecond(0).withNano(0) shouldBe utcNow.toLocalDateTime().plusHours(9).withSecond(0).withNano(0)
|
||||
}
|
||||
}
|
||||
|
||||
test("UTC 시간을 LocalDateTime 타입의 한국 시간으로 변환한다.") {
|
||||
val now = Instant.now()
|
||||
val kstConverted = now.toKoreaDateTime()
|
||||
val utc = now.atZone(ZoneId.of("UTC")).toLocalDateTime()
|
||||
@ -87,4 +87,4 @@ class JacksonConfig {
|
||||
gen.writeString(value.format(ISO_OFFSET_DATE_TIME_FORMATTER))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.sangdol.data
|
||||
|
||||
import com.sangdol.common.persistence.IDGenerator
|
||||
import com.sangdol.common.persistence.TransactionExecutionUtil
|
||||
import com.sangdol.common.utils.KoreaDateTime
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminEntity
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminPermissionLevel
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
|
||||
@ -629,8 +630,8 @@ data class PaymentWithMethods(
|
||||
|
||||
class PaymentDataInitializer : AbstractDataInitializer() {
|
||||
companion object {
|
||||
val requestedAtCache: Timestamp = Timestamp.valueOf(OffsetDateTime.now().toLocalDateTime())
|
||||
val approvedAtCache: Timestamp = Timestamp.valueOf(OffsetDateTime.now().plusSeconds(5).toLocalDateTime())
|
||||
val requestedAtCache: Timestamp = Timestamp.valueOf(KoreaDateTime.nowWithOffset().toLocalDateTime())
|
||||
val approvedAtCache: Timestamp = Timestamp.valueOf(KoreaDateTime.nowWithOffset().plusSeconds(5).toLocalDateTime())
|
||||
val supportedPaymentMethods = listOf(PaymentMethod.TRANSFER, PaymentMethod.EASY_PAY, PaymentMethod.CARD)
|
||||
val supportedCardType = listOf(CardType.CREDIT, CardType.CHECK)
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.sangdol.roomescape.payment
|
||||
|
||||
import com.sangdol.common.utils.KoreaDateTime
|
||||
import java.time.OffsetDateTime
|
||||
|
||||
object SampleTosspayConstant {
|
||||
@ -39,8 +40,8 @@ object SampleTosspayConstant {
|
||||
"orderName": "Sonya Aguirre 예약 결제",
|
||||
"taxExemptionAmount": 0,
|
||||
"status": "DONE",
|
||||
"requestedAt": "${OffsetDateTime.now()}",
|
||||
"approvedAt": "${OffsetDateTime.now().plusSeconds(5)}",
|
||||
"requestedAt": "${KoreaDateTime.nowWithOffset()}",
|
||||
"approvedAt": "${KoreaDateTime.nowWithOffset().plusSeconds(5)}",
|
||||
"useEscrow": false,
|
||||
"cultureExpense": false,
|
||||
"card": {
|
||||
@ -102,8 +103,8 @@ object SampleTosspayConstant {
|
||||
"orderName": "Sonya Aguirre 예약 결제",
|
||||
"taxExemptionAmount": 0,
|
||||
"status": "CANCELED",
|
||||
"requestedAt": "${OffsetDateTime.now()}",
|
||||
"approvedAt": "${OffsetDateTime.now().plusSeconds(5)}",
|
||||
"requestedAt": "${KoreaDateTime.nowWithOffset()}",
|
||||
"approvedAt": "${KoreaDateTime.nowWithOffset().plusSeconds(5)}",
|
||||
"useEscrow": false,
|
||||
"cultureExpense": false,
|
||||
"card": {
|
||||
@ -132,7 +133,7 @@ object SampleTosspayConstant {
|
||||
"transactionKey": "txrd_a01k4mtgh26vgrn1evbdckyqmdr",
|
||||
"cancelReason": "$CANCEL_REASON",
|
||||
"taxExemptionAmount": 0,
|
||||
"canceledAt": "${OffsetDateTime.now().plusMinutes(1)}",
|
||||
"canceledAt": "${KoreaDateTime.nowWithOffset().plusMinutes(1)}",
|
||||
"cardDiscountAmount": 0,
|
||||
"transferDiscountAmount": 0,
|
||||
"easyPayDiscountAmount": 0,
|
||||
@ -181,8 +182,8 @@ object SampleTosspayConstant {
|
||||
"orderName": "Sonya Aguirre 예약 결제",
|
||||
"taxExemptionAmount": 0,
|
||||
"status": "DONE",
|
||||
"requestedAt": "${OffsetDateTime.now()}",
|
||||
"approvedAt": "${OffsetDateTime.now().plusSeconds(5)}",
|
||||
"requestedAt": "${KoreaDateTime.nowWithOffset()}",
|
||||
"approvedAt": "${KoreaDateTime.nowWithOffset().plusSeconds(5)}",
|
||||
"useEscrow": false,
|
||||
"cultureExpense": false,
|
||||
"card": null,
|
||||
@ -230,8 +231,8 @@ object SampleTosspayConstant {
|
||||
"orderName": "Sonya Aguirre 예약 결제",
|
||||
"taxExemptionAmount": 0,
|
||||
"status": "DONE",
|
||||
"requestedAt": "${OffsetDateTime.now()}",
|
||||
"approvedAt": "${OffsetDateTime.now().plusSeconds(5)}",
|
||||
"requestedAt": "${KoreaDateTime.nowWithOffset()}",
|
||||
"approvedAt": "${KoreaDateTime.nowWithOffset().plusSeconds(5)}",
|
||||
"useEscrow": false,
|
||||
"cultureExpense": false,
|
||||
"card": null,
|
||||
@ -250,7 +251,7 @@ object SampleTosspayConstant {
|
||||
"transactionKey": "txrd_a01k4mtgh26vgrn1evbdckyqmdr",
|
||||
"cancelReason": "$CANCEL_REASON",
|
||||
"taxExemptionAmount": 0,
|
||||
"canceledAt": "${OffsetDateTime.now().plusMinutes(1)}",
|
||||
"canceledAt": "${KoreaDateTime.nowWithOffset().plusMinutes(1)}",
|
||||
"cardDiscountAmount": 0,
|
||||
"transferDiscountAmount": 0,
|
||||
"easyPayDiscountAmount": 0,
|
||||
|
||||
@ -2,6 +2,7 @@ package com.sangdol.roomescape.supports
|
||||
|
||||
import com.github.f4b6a3.tsid.TsidFactory
|
||||
import com.sangdol.common.persistence.TsidIDGenerator
|
||||
import com.sangdol.common.utils.KoreaDateTime
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminEntity
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminPermissionLevel
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
|
||||
@ -297,8 +298,8 @@ object PaymentFixture {
|
||||
card = cardDetail,
|
||||
easyPay = easyPayDetail,
|
||||
transfer = transferDetail,
|
||||
requestedAt = OffsetDateTime.now(),
|
||||
approvedAt = OffsetDateTime.now().plusSeconds(5)
|
||||
requestedAt = KoreaDateTime.nowWithOffset(),
|
||||
approvedAt = KoreaDateTime.nowWithOffset().plusSeconds(5)
|
||||
)
|
||||
|
||||
fun cancelResponse(
|
||||
@ -314,7 +315,7 @@ object PaymentFixture {
|
||||
cardDiscountAmount = cardDiscountAmount,
|
||||
transferDiscountAmount = transferDiscountAmount,
|
||||
easyPayDiscountAmount = easypayDiscountAmount,
|
||||
canceledAt = OffsetDateTime.now().plusSeconds(5),
|
||||
canceledAt = KoreaDateTime.nowWithOffset().plusSeconds(5),
|
||||
cancelReason = cancelReason
|
||||
),
|
||||
)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.sangdol.tosspaymock.business.domain
|
||||
|
||||
import com.sangdol.common.utils.KoreaDateTime
|
||||
import com.sangdol.tosspaymock.business.domain.cancel.Cancellation
|
||||
import com.sangdol.tosspaymock.business.domain.card.Card
|
||||
import com.sangdol.tosspaymock.business.domain.easypay.Easypay
|
||||
@ -128,7 +129,7 @@ class Payment(
|
||||
return create(
|
||||
paymentKey = paymentKey,
|
||||
orderId = "orderId",
|
||||
requestedAt = OffsetDateTime.now(),
|
||||
requestedAt = KoreaDateTime.nowWithOffset(),
|
||||
amount = cancellation.cancelAmount,
|
||||
card = null,
|
||||
easyPay = null,
|
||||
@ -165,7 +166,7 @@ class Payment(
|
||||
orderId = orderId,
|
||||
orderName = "테스트 결제",
|
||||
requestedAt = requestedAt,
|
||||
approvedAt = OffsetDateTime.now(),
|
||||
approvedAt = KoreaDateTime.nowWithOffset(),
|
||||
card = card,
|
||||
easyPay = easyPay,
|
||||
transfer = bankTransfer,
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.sangdol.tosspaymock.business.domain.cancel
|
||||
|
||||
import com.sangdol.common.utils.KoreaDateTime
|
||||
import com.sangdol.tosspaymock.business.domain.RandomPaymentValueGenerator
|
||||
import com.sangdol.tosspaymock.web.dto.CancelResponse
|
||||
import java.time.OffsetDateTime
|
||||
@ -29,7 +30,7 @@ class Cancellation(
|
||||
) = Cancellation(
|
||||
transactionKey = RandomPaymentValueGenerator.transactionKey(),
|
||||
cancelReason = cancelReason,
|
||||
canceledAt = OffsetDateTime.now(),
|
||||
canceledAt = KoreaDateTime.nowWithOffset(),
|
||||
cardDiscountAmount = cardDiscountAmount,
|
||||
transferDiscountAmount = transferDiscountAmount,
|
||||
easyPayDiscountAmount = easyPayDiscountAmount,
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
package com.sangdol.tosspaymock.web.dto
|
||||
|
||||
import com.sangdol.common.utils.KoreaDateTime
|
||||
import java.time.OffsetDateTime
|
||||
|
||||
data class PaymentConfirmRequest(
|
||||
val paymentKey: String,
|
||||
val orderId: String,
|
||||
val amount: Int,
|
||||
val requestedAt: OffsetDateTime = OffsetDateTime.now()
|
||||
val requestedAt: OffsetDateTime = KoreaDateTime.nowWithOffset()
|
||||
)
|
||||
|
||||
data class PaymentCancelRequest(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user