chore: payment 패키지 구조 변경

This commit is contained in:
이상진 2025-07-15 16:51:16 +09:00
parent 19da58c1f3
commit 62d3f859ac
26 changed files with 80 additions and 77 deletions

View File

@ -1,4 +1,4 @@
package roomescape.payment.service;
package roomescape.payment.business;
import java.time.OffsetDateTime;
import java.util.Optional;
@ -9,14 +9,14 @@ import org.springframework.transaction.annotation.Transactional;
import roomescape.common.exception.ErrorType;
import roomescape.common.exception.RoomescapeException;
import roomescape.payment.domain.CanceledPayment;
import roomescape.payment.domain.Payment;
import roomescape.payment.domain.repository.CanceledPaymentRepository;
import roomescape.payment.domain.repository.PaymentRepository;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.response.PaymentCancelResponse;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.dto.response.ReservationPaymentResponse;
import roomescape.payment.infrastructure.persistence.CanceledPayment;
import roomescape.payment.infrastructure.persistence.CanceledPaymentRepository;
import roomescape.payment.infrastructure.persistence.Payment;
import roomescape.payment.infrastructure.persistence.PaymentRepository;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.payment.web.dto.response.ReservationPaymentResponse;
import roomescape.reservation.domain.Reservation;
@Service

View File

@ -1,4 +1,4 @@
package roomescape.payment;
package roomescape.payment.infrastructure.client;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
@ -12,8 +12,6 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.web.client.RestClient;
import roomescape.payment.client.PaymentProperties;
@Configuration
@EnableConfigurationProperties(PaymentProperties.class)
public class PaymentConfig {

View File

@ -1,4 +1,4 @@
package roomescape.payment.client;
package roomescape.payment.infrastructure.client;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@ -1,4 +1,4 @@
package roomescape.payment.client;
package roomescape.payment.infrastructure.client;
import java.io.IOException;
import java.io.InputStream;
@ -16,11 +16,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import roomescape.common.exception.ErrorType;
import roomescape.common.exception.RoomescapeException;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.request.PaymentRequest;
import roomescape.payment.dto.response.PaymentCancelResponse;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.dto.response.TossPaymentErrorResponse;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.request.PaymentRequest;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.payment.web.dto.response.TossPaymentErrorResponse;
@Component
public class TossPaymentClient {

View File

@ -1,4 +1,4 @@
package roomescape.payment.domain;
package roomescape.payment.infrastructure.persistence;
import java.time.OffsetDateTime;

View File

@ -1,11 +1,9 @@
package roomescape.payment.domain.repository;
package roomescape.payment.infrastructure.persistence;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import roomescape.payment.domain.CanceledPayment;
public interface CanceledPaymentRepository extends JpaRepository<CanceledPayment, Long> {
Optional<CanceledPayment> findByPaymentKey(String paymentKey);

View File

@ -1,4 +1,4 @@
package roomescape.payment.domain;
package roomescape.payment.infrastructure.persistence;
import java.time.OffsetDateTime;

View File

@ -1,11 +1,9 @@
package roomescape.payment.domain.repository;
package roomescape.payment.infrastructure.persistence;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import roomescape.payment.domain.Payment;
public interface PaymentRepository extends JpaRepository<Payment, Long> {
Optional<Payment> findByReservationId(Long reservationId);

View File

@ -1,4 +1,4 @@
package roomescape.payment.dto.request;
package roomescape.payment.web.dto.request;
public record PaymentCancelRequest(String paymentKey, Long amount, String cancelReason) {
}

View File

@ -1,4 +1,4 @@
package roomescape.payment.dto.request;
package roomescape.payment.web.dto.request;
public record PaymentRequest(String paymentKey, String orderId, Long amount, String paymentType) {
}

View File

@ -1,9 +1,11 @@
package roomescape.payment.dto.response;
package roomescape.payment.web.dto.response;
import java.time.OffsetDateTime;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import roomescape.payment.web.support.PaymentCancelResponseDeserializer;
@JsonDeserialize(using = PaymentCancelResponseDeserializer.class)
public record PaymentCancelResponse(
String cancelStatus,

View File

@ -1,4 +1,4 @@
package roomescape.payment.dto.response;
package roomescape.payment.web.dto.response;
import java.time.OffsetDateTime;

View File

@ -1,8 +1,8 @@
package roomescape.payment.dto.response;
package roomescape.payment.web.dto.response;
import java.time.OffsetDateTime;
import roomescape.payment.domain.Payment;
import roomescape.payment.infrastructure.persistence.Payment;
import roomescape.reservation.dto.response.ReservationResponse;
public record ReservationPaymentResponse(Long id, String orderId, String paymentKey, Long totalAmount,

View File

@ -1,4 +1,4 @@
package roomescape.payment.dto.response;
package roomescape.payment.web.dto.response;
public record TossPaymentErrorResponse(String code, String message) {
}

View File

@ -1,4 +1,4 @@
package roomescape.payment.dto.response;
package roomescape.payment.web.support;
import java.io.IOException;
import java.time.OffsetDateTime;
@ -9,6 +9,8 @@ import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
public class PaymentCancelResponseDeserializer extends StdDeserializer<PaymentCancelResponse> {
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(

View File

@ -30,11 +30,11 @@ import roomescape.auth.web.support.MemberId;
import roomescape.common.dto.response.RoomescapeApiResponse;
import roomescape.common.dto.response.RoomescapeErrorResponse;
import roomescape.common.exception.RoomescapeException;
import roomescape.payment.client.TossPaymentClient;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.request.PaymentRequest;
import roomescape.payment.dto.response.PaymentCancelResponse;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.infrastructure.client.TossPaymentClient;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.request.PaymentRequest;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.reservation.dto.request.AdminReservationRequest;
import roomescape.reservation.dto.request.ReservationRequest;
import roomescape.reservation.dto.request.WaitingRequest;

View File

@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import roomescape.payment.dto.request.PaymentRequest;
import roomescape.payment.web.dto.request.PaymentRequest;
@Schema(name = "회원의 예약 저장 요청", description = "회원의 예약 요청시 사용됩니다.")
public record ReservationRequest(

View File

@ -5,11 +5,11 @@ import java.time.OffsetDateTime;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.response.PaymentCancelResponse;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.dto.response.ReservationPaymentResponse;
import roomescape.payment.service.PaymentService;
import roomescape.payment.business.PaymentService;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.payment.web.dto.response.ReservationPaymentResponse;
import roomescape.reservation.domain.Reservation;
import roomescape.reservation.dto.request.ReservationRequest;
import roomescape.reservation.dto.response.ReservationResponse;

View File

@ -1,4 +1,4 @@
package roomescape.payment.service;
package roomescape.payment.business;
import static org.assertj.core.api.Assertions.*;
@ -13,19 +13,19 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.jdbc.Sql.ExecutionPhase;
import roomescape.common.exception.RoomescapeException;
import roomescape.member.infrastructure.persistence.Member;
import roomescape.member.infrastructure.persistence.MemberRepository;
import roomescape.member.infrastructure.persistence.Role;
import roomescape.payment.domain.repository.CanceledPaymentRepository;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.dto.response.ReservationPaymentResponse;
import roomescape.payment.infrastructure.persistence.CanceledPaymentRepository;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.payment.web.dto.response.ReservationPaymentResponse;
import roomescape.reservation.domain.Reservation;
import roomescape.reservation.domain.ReservationStatus;
import roomescape.reservation.domain.ReservationTime;
import roomescape.reservation.domain.repository.ReservationRepository;
import roomescape.reservation.domain.repository.ReservationTimeRepository;
import roomescape.common.exception.RoomescapeException;
import roomescape.theme.domain.Theme;
import roomescape.theme.domain.repository.ThemeRepository;

View File

@ -1,7 +1,7 @@
package roomescape.payment.client;
package roomescape.payment.infrastructure.client;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.request.PaymentRequest;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.request.PaymentRequest;
public class SampleTossPaymentConst {

View File

@ -1,6 +1,8 @@
package roomescape.payment.client;
package roomescape.payment.infrastructure.client;
import static org.assertj.core.api.Assertions.*;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.*;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.*;
import static org.springframework.test.web.client.response.MockRestResponseCreators.*;
@ -14,12 +16,12 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.request.PaymentRequest;
import roomescape.payment.dto.response.PaymentCancelResponse;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.common.exception.ErrorType;
import roomescape.common.exception.RoomescapeException;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.request.PaymentRequest;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
import roomescape.payment.web.dto.response.PaymentResponse;
@RestClientTest(TossPaymentClient.class)
class TossPaymentClientTest {

View File

@ -1,4 +1,4 @@
package roomescape.payment.domain;
package roomescape.payment.infrastructure.persistence;
import static org.assertj.core.api.Assertions.*;

View File

@ -1,4 +1,4 @@
package roomescape.payment.domain;
package roomescape.payment.infrastructure.persistence;
import static org.assertj.core.api.Assertions.*;
@ -13,12 +13,12 @@ import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.NullAndEmptySource;
import org.junit.jupiter.params.provider.NullSource;
import roomescape.common.exception.RoomescapeException;
import roomescape.member.infrastructure.persistence.Member;
import roomescape.member.infrastructure.persistence.Role;
import roomescape.reservation.domain.Reservation;
import roomescape.reservation.domain.ReservationStatus;
import roomescape.reservation.domain.ReservationTime;
import roomescape.common.exception.RoomescapeException;
import roomescape.theme.domain.Theme;
class PaymentTest {

View File

@ -1,4 +1,4 @@
package roomescape.payment.dto.response;
package roomescape.payment.web.support;
import static org.junit.jupiter.api.Assertions.*;
@ -9,6 +9,8 @@ import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
class PaymentCancelResponseDeserializerTest {
private ObjectMapper objectMapper;

View File

@ -2,6 +2,7 @@ package roomescape.reservation.controller;
import static org.assertj.core.api.Assertions.*;
import static org.hamcrest.Matchers.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
@ -35,15 +36,15 @@ import io.restassured.http.Header;
import roomescape.member.infrastructure.persistence.Member;
import roomescape.member.infrastructure.persistence.MemberRepository;
import roomescape.member.infrastructure.persistence.Role;
import roomescape.payment.client.TossPaymentClient;
import roomescape.payment.domain.CanceledPayment;
import roomescape.payment.domain.Payment;
import roomescape.payment.domain.repository.CanceledPaymentRepository;
import roomescape.payment.domain.repository.PaymentRepository;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.request.PaymentRequest;
import roomescape.payment.dto.response.PaymentCancelResponse;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.infrastructure.client.TossPaymentClient;
import roomescape.payment.infrastructure.persistence.CanceledPayment;
import roomescape.payment.infrastructure.persistence.CanceledPaymentRepository;
import roomescape.payment.infrastructure.persistence.Payment;
import roomescape.payment.infrastructure.persistence.PaymentRepository;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.request.PaymentRequest;
import roomescape.payment.web.dto.response.PaymentCancelResponse;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.reservation.domain.Reservation;
import roomescape.reservation.domain.ReservationStatus;
import roomescape.reservation.domain.ReservationTime;

View File

@ -16,10 +16,10 @@ import org.springframework.test.context.jdbc.Sql.ExecutionPhase;
import roomescape.member.infrastructure.persistence.Member;
import roomescape.member.infrastructure.persistence.MemberRepository;
import roomescape.member.infrastructure.persistence.Role;
import roomescape.payment.domain.repository.CanceledPaymentRepository;
import roomescape.payment.domain.repository.PaymentRepository;
import roomescape.payment.dto.request.PaymentCancelRequest;
import roomescape.payment.dto.response.PaymentResponse;
import roomescape.payment.infrastructure.persistence.CanceledPaymentRepository;
import roomescape.payment.infrastructure.persistence.PaymentRepository;
import roomescape.payment.web.dto.request.PaymentCancelRequest;
import roomescape.payment.web.dto.response.PaymentResponse;
import roomescape.reservation.domain.Reservation;
import roomescape.reservation.domain.ReservationStatus;
import roomescape.reservation.domain.ReservationTime;