diff --git a/src/main/java/org/sopt/poti/domain/participation/service/ParticipationService.java b/src/main/java/org/sopt/poti/domain/participation/service/ParticipationService.java index e2afa5b..adbcaf9 100644 --- a/src/main/java/org/sopt/poti/domain/participation/service/ParticipationService.java +++ b/src/main/java/org/sopt/poti/domain/participation/service/ParticipationService.java @@ -35,8 +35,7 @@ public ParticipationSummaryResponse getMyParticipations(Long userId, Participati int completedCount = 0; for (Order order : orders) { - GroupBuyPostStatus postStatus = order.getGroupBuyPost().getStatus(); - if (isCompleted(postStatus)) { + if (isCompleted(order.getStatus())) { completedCount++; } else { inProgressCount++; @@ -90,26 +89,40 @@ public LeaderUserIdResponse confirmDelivered(Long userId, Long participationId) } - private boolean isCompleted(GroupBuyPostStatus status) { - return status == GroupBuyPostStatus.DELIVERED; + // OrderStatus가 DELIVERED면 COMPLETED로 봄 + private boolean isCompleted(OrderStatus status) { + return status == OrderStatus.DELIVERED; } + // 분기 기준 = OrderStatus private boolean matchParticipationStatus(Order order, ParticipationStatus status) { - GroupBuyPostStatus postStatus = order.getGroupBuyPost().getStatus(); + OrderStatus orderStatus = order.getStatus(); return switch (status) { - case IN_PROGRESS -> postStatus == GroupBuyPostStatus.RECRUITING - || postStatus == GroupBuyPostStatus.CLOSED - || postStatus == GroupBuyPostStatus.PAYMENT_DONE - || postStatus == GroupBuyPostStatus.SHIPPING; + case IN_PROGRESS -> !isCompleted(orderStatus); + case COMPLETED -> isCompleted(orderStatus); + }; + } + + // OrderStatus를 GroupBuyPostStatus처럼 내려줌 + private String mapToClientPostStatus(OrderStatus orderStatus) { + return switch (orderStatus) { + case RECRUITING -> GroupBuyPostStatus.RECRUITING.name(); + + case WAIT_PAY, WAIT_PAY_CHECK -> GroupBuyPostStatus.CLOSED.name(); + + case PAID, READY -> GroupBuyPostStatus.PAYMENT_DONE.name(); - case COMPLETED -> postStatus == GroupBuyPostStatus.DELIVERED; + case SHIPPED -> GroupBuyPostStatus.SHIPPING.name(); + + case DELIVERED -> GroupBuyPostStatus.DELIVERED.name(); }; } + + // 응답 Status를 OrderStatus로 내려줌 private ParticipationListResponse toResponse(Order order) { - GroupBuyPost post = order.getGroupBuyPost(); - GroupBuyPostStatus postStatus = post.getStatus(); + var post = order.getGroupBuyPost(); return new ParticipationListResponse( order.getId(), @@ -117,11 +130,7 @@ private ParticipationListResponse toResponse(Order order) { post.getArtist().getName(), post.getTitle(), post.getRepresentativeImageUrl(), - postStatus.name() + mapToClientPostStatus(order.getStatus()) ); } - - private String mapToClientStatus(GroupBuyPostStatus postStatus) { - return isCompleted(postStatus) ? "COMPLETED" : "IN_PROGRESS"; - } } \ No newline at end of file