From f91d25d8e3bd2b0fd881256c77b7008dcee9a3d9 Mon Sep 17 00:00:00 2001 From: binarywoo27 Date: Thu, 4 Jan 2024 00:05:20 +0900 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=EB=B0=B0=EC=B9=98=20=EC=A0=95?= =?UTF-8?q?=EA=B8=B0=EA=B2=B0=EC=A0=9C=20=EB=A1=9C=EC=A7=81=20=EB=B0=8F=20?= =?UTF-8?q?Test=20Code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- src/main/java/kr/bb/payment/kafka/KafkaConsumer.java | 7 ++++--- .../java/kr/bb/payment/service/KakaopayService.java | 12 +++++++++--- .../bb/payment/service/KakaopaySubscriptionTest.java | 7 +++++-- src/test/resources/application.yml | 4 ++-- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index d5d8b94..584ab6e 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.springframework.kafka:spring-kafka' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'io.github.lotteon-maven:blooming-blooms-utils:202401012350' + implementation 'io.github.lotteon-maven:blooming-blooms-utils:202401030507' runtimeOnly 'com.h2database:h2' implementation 'mysql:mysql-connector-java:8.0.33' testImplementation 'org.mock-server:mockserver-netty:5.11.2' // 사용 중인 MockServer 버전 diff --git a/src/main/java/kr/bb/payment/kafka/KafkaConsumer.java b/src/main/java/kr/bb/payment/kafka/KafkaConsumer.java index 2b08bbe..d532abf 100644 --- a/src/main/java/kr/bb/payment/kafka/KafkaConsumer.java +++ b/src/main/java/kr/bb/payment/kafka/KafkaConsumer.java @@ -1,7 +1,7 @@ package kr.bb.payment.kafka; -import bloomingblooms.domain.batch.SubscriptionBatchDto; -import java.util.List; +import bloomingblooms.domain.batch.SubscriptionBatchDtoList; +import com.fasterxml.jackson.databind.ObjectMapper; import kr.bb.payment.service.KakaopayService; import lombok.RequiredArgsConstructor; import org.springframework.kafka.annotation.KafkaListener; @@ -11,9 +11,10 @@ @RequiredArgsConstructor public class KafkaConsumer { private final KakaopayService kakaopayService; + private ObjectMapper objectMapper; @KafkaListener(topics = "subscription-batch", groupId = "payment-subscription") - public void subscriptionBatch(List subscriptionBatchDtoList) { + public void subscriptionBatch(SubscriptionBatchDtoList subscriptionBatchDtoList) { kakaopayService.renewSubscription(subscriptionBatchDtoList); } } diff --git a/src/main/java/kr/bb/payment/service/KakaopayService.java b/src/main/java/kr/bb/payment/service/KakaopayService.java index c488364..3ca67fb 100644 --- a/src/main/java/kr/bb/payment/service/KakaopayService.java +++ b/src/main/java/kr/bb/payment/service/KakaopayService.java @@ -1,6 +1,7 @@ package kr.bb.payment.service; import bloomingblooms.domain.batch.SubscriptionBatchDto; +import bloomingblooms.domain.batch.SubscriptionBatchDtoList; import bloomingblooms.domain.payment.KakaopayApproveRequestDto; import bloomingblooms.domain.payment.KakaopayReadyRequestDto; import bloomingblooms.domain.payment.KakaopayReadyResponseDto; @@ -86,10 +87,10 @@ public LocalDateTime kakaoPayApprove(KakaopayApproveRequestDto requestDto) { return paymentService.saveSinglePaymentInfo(requestDto, responseDto); } - public void renewSubscription(List subscriptionBatchDtoList) { + public void renewSubscription(SubscriptionBatchDtoList subscriptionBatchDtoList) { Map oldDeliveryIdsMap = new HashMap<>(); // <결제기록id, old 배송id> - for(SubscriptionBatchDto subscriptionBatchDto : subscriptionBatchDtoList){ + for(SubscriptionBatchDto subscriptionBatchDto : subscriptionBatchDtoList.getSubscriptionBatchDtoList()){ MultiValueMap parameters = new LinkedMultiValueMap<>(); parameters.add("cid", subscriptionBatchDto.getCid()); @@ -97,7 +98,9 @@ public void renewSubscription(List subscriptionBatchDtoLis parameters.add("partner_order_id", String.valueOf(subscriptionBatchDto.getPartnerOrderId())); parameters.add("partner_user_id", String.valueOf(subscriptionBatchDto.getPartnerUserId())); parameters.add("quantity", String.valueOf(subscriptionBatchDto.getQuantity())); - parameters.add("totalAmount", String.valueOf(subscriptionBatchDto.getTotalAmount())); + parameters.add("total_amount", String.valueOf(subscriptionBatchDto.getTotalAmount())); + parameters.add("tax_free_amount", String.valueOf(0)); + HttpEntity> requestEntity = new HttpEntity<>(parameters, this.getHeaders()); @@ -114,6 +117,9 @@ public void renewSubscription(List subscriptionBatchDtoLis List newDeliveryIdsList = deliveryServiceClient.createDeliveryForSubscription(oldDeliveryIdsList).getData(); paymentService.saveDeliveryIds(oldDeliveryIdsMap, newDeliveryIdsList); + // SQS 로 구매자에게 주문 발생 알림 + + } @NotNull diff --git a/src/test/java/kr/bb/payment/service/KakaopaySubscriptionTest.java b/src/test/java/kr/bb/payment/service/KakaopaySubscriptionTest.java index feebcf3..eb1651b 100644 --- a/src/test/java/kr/bb/payment/service/KakaopaySubscriptionTest.java +++ b/src/test/java/kr/bb/payment/service/KakaopaySubscriptionTest.java @@ -4,6 +4,7 @@ import static org.mockito.Mockito.when; import bloomingblooms.domain.batch.SubscriptionBatchDto; +import bloomingblooms.domain.batch.SubscriptionBatchDtoList; import bloomingblooms.response.CommonResponse; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -45,7 +46,6 @@ public class KakaopaySubscriptionTest { @BeforeEach void setUp() throws Exception { -// kakaopayService = new KakaopayService(paymentService, restTemplate, deliveryServiceClient); mockServer = MockRestServiceServer.createServer(restTemplate); ObjectMapper objectMapper = new ObjectMapper(); @@ -64,7 +64,10 @@ void setUp() throws Exception { public void batchSubscription() { // given SubscriptionBatchDto subscriptionBatchDto = createSubscriptionBatchDto(); - List subscriptionBatchDtoList = List.of(subscriptionBatchDto); + SubscriptionBatchDtoList subscriptionBatchDtoList = + SubscriptionBatchDtoList.builder() + .subscriptionBatchDtoList(List.of(subscriptionBatchDto)) + .build(); SubscriptionRecords subscriptionRecords = createSubscriptionRecords(); Subscription subscription = createSubscription(); subscriptionRepository.save(subscription); diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 40c775b..40aa3c2 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -11,12 +11,13 @@ spring: url: jdbc:h2:mem:payment-service;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL jpa: hibernate: - ddl-auto: create + ddl-auto: update generate-ddl: true defer-datasource-initialization: true properties: hibernate: format_sql: true + show_sql: true kafka: producer: bootstrap-servers: localhost:9092 @@ -35,7 +36,6 @@ spring: json: trusted: packages: "*" - group-id: payment-service kakao: