From 2fa4874ad75542594cb0543be776f23a4194b139 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 5 Oct 2025 21:16:40 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20payment=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=EC=97=90=EC=84=9C=EC=9D=98=20OffsetDateTime,=20LocalD?= =?UTF-8?q?ateTime=20->=20Instant=20=ED=83=80=EC=9E=85=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/payment/business/PaymentWriter.kt | 4 ++-- .../infrastructure/client/TosspayCancelDTO.kt | 6 +++--- .../infrastructure/client/TosspayConfirmDTO.kt | 4 ++-- .../persistence/CanceledPaymentEntity.kt | 7 +++---- .../infrastructure/persistence/PaymentEntity.kt | 6 +++--- .../sangdol/roomescape/payment/web/PaymentDTO.kt | 13 ++++++------- .../sangdol/roomescape/supports/DummyInitializer.kt | 4 ++-- .../com/sangdol/roomescape/supports/Fixtures.kt | 1 - 8 files changed, 21 insertions(+), 24 deletions(-) diff --git a/service/src/main/kotlin/com/sangdol/roomescape/payment/business/PaymentWriter.kt b/service/src/main/kotlin/com/sangdol/roomescape/payment/business/PaymentWriter.kt index 06226ec4..bbeda832 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/payment/business/PaymentWriter.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/payment/business/PaymentWriter.kt @@ -10,7 +10,7 @@ import com.sangdol.roomescape.payment.infrastructure.persistence.* import io.github.oshai.kotlinlogging.KLogger import io.github.oshai.kotlinlogging.KotlinLogging import org.springframework.stereotype.Component -import java.time.LocalDateTime +import java.time.Instant private val log: KLogger = KotlinLogging.logger {} @@ -60,7 +60,7 @@ class PaymentWriter( fun cancel( userId: Long, payment: PaymentEntity, - requestedAt: LocalDateTime, + requestedAt: Instant, cancelResponse: PaymentClientCancelResponse ): CanceledPaymentEntity { log.debug { "[PaymentWriterV2.cancelPayment] 결제 취소 정보 저장 시작: payment.id=${payment.id}" } diff --git a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayCancelDTO.kt b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayCancelDTO.kt index a4077b27..2ba4f6a1 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayCancelDTO.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayCancelDTO.kt @@ -6,7 +6,7 @@ import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus import com.sangdol.roomescape.payment.infrastructure.persistence.CanceledPaymentEntity -import java.time.LocalDateTime +import java.time.Instant import java.time.OffsetDateTime data class PaymentClientCancelResponse( @@ -28,10 +28,10 @@ fun CancelDetail.toEntity( id: Long, paymentId: Long, canceledBy: Long, - cancelRequestedAt: LocalDateTime + cancelRequestedAt: Instant ) = CanceledPaymentEntity( id = id, - canceledAt = this.canceledAt, + canceledAt = this.canceledAt.toInstant(), requestedAt = cancelRequestedAt, paymentId = paymentId, canceledBy = canceledBy, diff --git a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayConfirmDTO.kt b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayConfirmDTO.kt index ebcf0719..ca8f549a 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayConfirmDTO.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/client/TosspayConfirmDTO.kt @@ -34,8 +34,8 @@ fun PaymentClientConfirmResponse.toEntity( paymentKey = this.paymentKey, orderId = orderId, totalAmount = this.totalAmount, - requestedAt = this.requestedAt, - approvedAt = this.approvedAt, + requestedAt = this.requestedAt.toInstant(), + approvedAt = this.approvedAt.toInstant(), type = paymentType, method = this.method, status = this.status, diff --git a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt index 4db2e14d..d85a26ce 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt @@ -3,8 +3,7 @@ package com.sangdol.roomescape.payment.infrastructure.persistence import com.sangdol.common.persistence.PersistableBaseEntity import jakarta.persistence.Entity import jakarta.persistence.Table -import java.time.LocalDateTime -import java.time.OffsetDateTime +import java.time.Instant @Entity @Table(name = "canceled_payment") @@ -12,8 +11,8 @@ class CanceledPaymentEntity( id: Long, val paymentId: Long, - val requestedAt: LocalDateTime, - val canceledAt: OffsetDateTime, + val requestedAt: Instant, + val canceledAt: Instant, val canceledBy: Long, val cancelReason: String, val cancelAmount: Int, diff --git a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/PaymentEntity.kt b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/PaymentEntity.kt index 48aa5587..1571e15e 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/PaymentEntity.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/payment/infrastructure/persistence/PaymentEntity.kt @@ -8,7 +8,7 @@ import jakarta.persistence.Entity import jakarta.persistence.EnumType import jakarta.persistence.Enumerated import jakarta.persistence.Table -import java.time.OffsetDateTime +import java.time.Instant @Entity @Table(name = "payment") @@ -19,8 +19,8 @@ class PaymentEntity( val paymentKey: String, val orderId: String, val totalAmount: Int, - val requestedAt: OffsetDateTime, - val approvedAt: OffsetDateTime, + val requestedAt: Instant, + val approvedAt: Instant, @Enumerated(EnumType.STRING) val type: PaymentType, diff --git a/service/src/main/kotlin/com/sangdol/roomescape/payment/web/PaymentDTO.kt b/service/src/main/kotlin/com/sangdol/roomescape/payment/web/PaymentDTO.kt index 1e39f186..0ed997b0 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/payment/web/PaymentDTO.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/payment/web/PaymentDTO.kt @@ -6,8 +6,7 @@ import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus import com.sangdol.roomescape.payment.infrastructure.common.PaymentType import com.sangdol.roomescape.payment.infrastructure.persistence.* import com.sangdol.roomescape.payment.web.PaymentDetailResponse.* -import java.time.LocalDateTime -import java.time.OffsetDateTime +import java.time.Instant data class PaymentConfirmRequest( val paymentKey: String, @@ -24,7 +23,7 @@ data class PaymentCreateResponse( data class PaymentCancelRequest( val reservationId: Long, val cancelReason: String, - val requestedAt: LocalDateTime = LocalDateTime.now() + val requestedAt: Instant = Instant.now() ) data class PaymentWithDetailResponse( @@ -32,8 +31,8 @@ data class PaymentWithDetailResponse( val totalAmount: Int, val method: String, val status: PaymentStatus, - val requestedAt: OffsetDateTime, - val approvedAt: OffsetDateTime, + val requestedAt: Instant, + val approvedAt: Instant, val detail: PaymentDetailResponse?, val cancel: PaymentCancelDetailResponse?, ) @@ -120,8 +119,8 @@ fun PaymentEasypayPrepaidDetailEntity.toEasyPayPrepaidDetailResponse(): EasyPayP } data class PaymentCancelDetailResponse( - val cancellationRequestedAt: LocalDateTime, - val cancellationApprovedAt: OffsetDateTime?, + val cancellationRequestedAt: Instant, + val cancellationApprovedAt: Instant?, val cancelReason: String, val canceledBy: Long, ) diff --git a/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt b/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt index f1252bc3..3e71288a 100644 --- a/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt +++ b/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt @@ -30,7 +30,7 @@ import com.sangdol.roomescape.theme.web.ThemeCreateRequest import com.sangdol.roomescape.theme.web.toEntity import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity import org.springframework.data.repository.findByIdOrNull -import java.time.LocalDateTime +import java.time.Instant class DummyInitializer( private val storeRepository: StoreRepository, @@ -206,7 +206,7 @@ class DummyInitializer( return paymentWriter.cancel( userId, payment, - requestedAt = LocalDateTime.now(), + requestedAt = Instant.now(), clientCancelResponse ) } diff --git a/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt b/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt index 3833b24c..27ef1215 100644 --- a/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt +++ b/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt @@ -26,7 +26,6 @@ import com.sangdol.roomescape.user.web.MIN_PASSWORD_LENGTH import com.sangdol.roomescape.user.web.UserCreateRequest import java.time.LocalDate import java.time.LocalTime -import java.time.OffsetDateTime const val INVALID_PK: Long = 9999L val IDGenerator = TsidIDGenerator(TsidFactory(0))