Skip to content

Commit

Permalink
Merge pull request #105 from f-lab-edu/feature-17-game-test
Browse files Browse the repository at this point in the history
refact:OrderFacade 제거
  • Loading branch information
byunyourim authored Sep 12, 2024
2 parents f2e5bab + e62a11d commit 2d467db
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 75 deletions.
4 changes: 2 additions & 2 deletions src/main/java/com/kboticket/config/payment/PaymentClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.kboticket.common.constants.KboConstant;
import com.kboticket.config.PaymentConfig;
import com.kboticket.dto.payment.PaymentRequestInput;
import com.kboticket.dto.payment.PaymentCancelInput;
import com.kboticket.dto.payment.PaymentCancelRequest;
import com.kboticket.dto.payment.PaymentCancelResponse;
import com.kboticket.dto.payment.PaymentSuccessResponse;
import com.kboticket.enums.ErrorCode;
Expand Down Expand Up @@ -70,7 +70,7 @@ public PaymentSuccessResponse requestPayment(PaymentRequestInput paymentRequestI
}


public PaymentCancelResponse cancelPayment(PaymentCancelInput input) {
public PaymentCancelResponse cancelPayment(PaymentCancelRequest input) {
String paymentKey = input.getPaymentKey();

return restClient.method(HttpMethod.POST)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
package com.kboticket.controller.payment;

import com.kboticket.common.CommonResponse;
import com.kboticket.domain.Game;
import com.kboticket.domain.Seat;
import com.kboticket.domain.User;
import com.kboticket.dto.payment.PaymentFailResponse;
import com.kboticket.dto.payment.PaymentRequestDto;
import com.kboticket.dto.payment.PaymentSuccessResponse;
import com.kboticket.service.OrderFacade;
import com.kboticket.service.payment.PaymentService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
Expand All @@ -16,9 +12,6 @@
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Set;

@Slf4j
@RestController
@RequestMapping("/payment")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.kboticket.common.CommonResponse;
import com.kboticket.controller.ticket.dto.TicketResponse;
import com.kboticket.dto.TicketDto;
import com.kboticket.dto.payment.PaymentCancelInput;
import com.kboticket.dto.payment.PaymentCancelRequest;
import com.kboticket.dto.payment.PaymentCancelResponse;
import com.kboticket.service.ticket.TicketService;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -32,10 +32,9 @@ public CommonResponse<TicketResponse> view(@PathVariable Long tickketId) {
* 티켓 취소
*/
@PostMapping("/cancel")
public CommonResponse<PaymentCancelResponse> cancelTicket(@RequestBody PaymentCancelInput paymentCancelInput) {
// PaymentCancelResponse response = orderFacade.cancelTickets(paymentCancelInput);
public CommonResponse<PaymentCancelResponse> cancelTicket(@RequestBody PaymentCancelRequest paymentCancelRequest) {
PaymentCancelResponse response = ticketService.cancel(paymentCancelRequest);

PaymentCancelResponse response = null;
return new CommonResponse<>(response);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
@Builder
@Getter @Setter
@AllArgsConstructor
public class PaymentCancelInput {
public class PaymentCancelRequest {
private String paymentKey;
private String cancelReason;
private int cancelAmount;
Expand Down
57 changes: 0 additions & 57 deletions src/main/java/com/kboticket/service/OrderFacade.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ public PaymentSuccessResponse paymentSuccess(String paymentKey, String orderId,
}

// order 상태 변경
String title = order.getGame().getHomeTeam().getName() +
" VS " + order.getGame().getAwayTeam().getName();
String title = order.getGame().getHomeTeam().getName() + " VS " + order.getGame().getAwayTeam().getName();
order.setStatus(OrderStatus.COMPLETE);
order.setOrderDate(LocalDateTime.now());
order.setName(title);
Expand Down Expand Up @@ -133,7 +132,7 @@ public PaymentFailResponse paymentFail(String code, String orderId, String messa
*/
public PaymentCancelResponse paymentCancelPart(Payment payment, String cancelReason, int cancelAmount) {
String paymentKey = payment.getPaymentKey();
PaymentCancelInput input = PaymentCancelInput.builder()
PaymentCancelRequest input = PaymentCancelRequest.builder()
.paymentKey(paymentKey)
.cancelReason(cancelReason)
.cancelAmount(cancelAmount)
Expand All @@ -159,7 +158,7 @@ public PaymentCancelResponse paymentCancelPart(Payment payment, String cancelRea
*/
public PaymentCancelResponse paymentCancelAll(Payment payment, String cancelReason) {
String paymentKey = payment.getPaymentKey();
PaymentCancelInput input = PaymentCancelInput.builder()
PaymentCancelRequest input = PaymentCancelRequest.builder()
.paymentKey(paymentKey)
.cancelReason(cancelReason)
.build();
Expand Down
43 changes: 43 additions & 0 deletions src/main/java/com/kboticket/service/ticket/TicketService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,26 @@

import com.kboticket.domain.Order;
import com.kboticket.domain.OrderSeat;
import com.kboticket.domain.Payment;
import com.kboticket.domain.Ticket;
import com.kboticket.dto.TicketDto;
import com.kboticket.dto.payment.PaymentCancelRequest;
import com.kboticket.dto.payment.PaymentCancelResponse;
import com.kboticket.enums.ErrorCode;
import com.kboticket.enums.TicketStatus;
import com.kboticket.exception.KboTicketException;
import com.kboticket.repository.PaymentRepository;
import com.kboticket.repository.TicketRepository;
import com.kboticket.repository.order.OrderRepository;
import com.kboticket.service.payment.PaymentService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

@Service
Expand All @@ -23,6 +30,8 @@
public class TicketService {

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

public void createTicket(Order order) {
List<OrderSeat> orderSeats = order.getOrderSeats();
Expand All @@ -39,6 +48,40 @@ public void createTicket(Order order) {
ticketRepository.saveAll(tickets);
}

public PaymentCancelResponse cancel(PaymentCancelRequest request) {
String orderId = request.getOrderId();
Long[] ticketIds = request.getTicketId();
int cancelAmount = request.getCancelAmount();

Order order = orderRepository.findById(orderId).orElseThrow(() -> {
throw new KboTicketException(ErrorCode.NOT_FOUND_ORDER);
});

Payment payment = paymentRepository.findByOrderId(orderId).orElseThrow(() -> {
throw new KboTicketException(ErrorCode.PAYMENT_NOT_FOUND);
});

boolean isAllTicketCancelled = areAllTicketIdsMatching(ticketIds, order);

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

if (paymentCancelResponse != null) {
// 민약 여기서 에러가 나면? 에러찍기
cancelTickets(order, ticketIds);
}
return paymentCancelResponse;
}

private boolean areAllTicketIdsMatching(Long[] ticketIds, Order order) {
Set<Long> existingTicketIds = getTickets(order).stream()
.map(TicketDto::getId)
.collect(Collectors.toSet());

return Arrays.stream(ticketIds)
.allMatch(existingTicketIds::contains);
}

public void cancelTickets(Order order, Long[] ticketIds) {
// 티켓 상태 변경 (ISSUED -> CANCELLED)
List<Ticket> ticketsToCancel = Arrays.stream(ticketIds)
Expand Down

0 comments on commit 2d467db

Please sign in to comment.