Skip to content

Commit

Permalink
Merge pull request #106 from f-lab-edu/feature-17-game-test
Browse files Browse the repository at this point in the history
refact:TicketService, PaymentService 수정
  • Loading branch information
byunyourim authored Sep 13, 2024
2 parents 2d467db + 3182c34 commit 9eb44fc
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.kboticket.dto.payment.PaymentRequestDto;
import com.kboticket.dto.payment.PaymentSuccessResponse;
import com.kboticket.service.payment.PaymentService;
import com.kboticket.service.ticket.TicketService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -19,6 +20,7 @@
public class PaymentController {

private final PaymentService paymentService;
private final TicketService ticketService;

/**
* 결제 요청
Expand All @@ -45,6 +47,11 @@ public CommonResponse<PaymentSuccessResponse> success(@RequestParam String payme

PaymentSuccessResponse paymentSuccessResponse = paymentService.paymentSuccess(paymentKey, orderId, amount);

// 티켓 생성
if (paymentSuccessResponse != null) {
ticketService.createTicket(orderId);
}

return new CommonResponse<>(paymentSuccessResponse);
}

Expand Down
13 changes: 5 additions & 8 deletions src/main/java/com/kboticket/service/payment/PaymentService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,16 @@
import com.kboticket.config.PaymentConfig;
import com.kboticket.config.payment.PaymentClient;
import com.kboticket.domain.*;
import com.kboticket.dto.payment.PaymentRequestInput;
import com.kboticket.dto.ReservedSeatInfo;
import com.kboticket.dto.payment.*;
import com.kboticket.enums.ErrorCode;
import com.kboticket.enums.PaymentStatus;
import com.kboticket.exception.KboTicketException;
import com.kboticket.repository.PaymentRepository;
import com.kboticket.repository.SeatRepository;
import com.kboticket.repository.UserRepository;
import com.kboticket.repository.game.GameRepository;
import com.kboticket.repository.order.OrderRepository;
import com.kboticket.repository.PaymentRepository;
import com.kboticket.service.ticket.TicketService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
Expand All @@ -26,7 +24,10 @@
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.*;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.stream.Collectors;

@Slf4j
Expand All @@ -38,8 +39,6 @@ public class PaymentService {
private final RedissonClient redissonClient;
private final PaymentConfig paymentConfig;

private final TicketService ticketService;

private final PaymentRepository paymentRepository;
private final OrderRepository orderRepository;
private final GameRepository gameRepository;
Expand Down Expand Up @@ -104,8 +103,6 @@ public PaymentSuccessResponse paymentSuccess(String paymentKey, String orderId,

paymentRepository.save(payment);

ticketService.createTicket(order);

return response;
}

Expand Down
21 changes: 16 additions & 5 deletions src/main/java/com/kboticket/service/ticket/TicketService.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import com.kboticket.repository.order.OrderRepository;
import com.kboticket.service.payment.PaymentService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand All @@ -24,16 +25,22 @@
import java.util.Set;
import java.util.stream.Collectors;

@Slf4j
@Service
@Transactional
@RequiredArgsConstructor
public class TicketService {

private final PaymentService paymentService;

private final TicketRepository ticketRepository;
private final OrderRepository orderRepository;
private final PaymentRepository paymentRepository;

public void createTicket(Order order) {
public void createTicket(String orderId) {
Order order = orderRepository.findById(orderId).orElseThrow(() -> {
throw new KboTicketException(ErrorCode.NOT_FOUND_ORDER);
});
List<OrderSeat> orderSeats = order.getOrderSeats();
List<Ticket> tickets = orderSeats.stream()
.map(orderSeat -> Ticket.builder()
Expand Down Expand Up @@ -63,12 +70,16 @@ public PaymentCancelResponse cancel(PaymentCancelRequest request) {

boolean isAllTicketCancelled = areAllTicketIdsMatching(ticketIds, order);

//PaymentCancelResponse paymentCancelResponse = paymentService.cancel(order, payment, isAllTicketCancelled, cancelAmount);
PaymentCancelResponse paymentCancelResponse = null;
try {
paymentCancelResponse = paymentService.cancel(order, payment, isAllTicketCancelled, cancelAmount);

if (paymentCancelResponse != null) {
// 민약 여기서 에러가 나면? 에러찍기
cancelTickets(order, ticketIds);
if (paymentCancelResponse != null) {
cancelTickets(order, ticketIds);
}
} catch (Exception e) {
log.error(e.getMessage());
throw new KboTicketException(ErrorCode.PAYMENT_CANCEL_EXCEPTION, null, log::error);
}
return paymentCancelResponse;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package com.kboticket.controller.payment;

import com.kboticket.enums.PaymentStatus;
import com.kboticket.service.order.OrderService;
import com.kboticket.service.payment.PaymentService;
import com.kboticket.service.ticket.TicketService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand All @@ -24,12 +23,15 @@ public class PaymentControllerTest {
@MockBean
private PaymentService paymentService;

@MockBean
private TicketService ticketService;

@Mock
private Authentication authentication;

@BeforeEach
void setUp() {
PaymentController paymentController = new PaymentController(paymentService);
PaymentController paymentController = new PaymentController(paymentService, ticketService);
this.mockMvc = MockMvcBuilders.standaloneSetup(paymentController).build();
}

Expand Down

0 comments on commit 9eb44fc

Please sign in to comment.