From 023168d38f139003a8204abd697b40ad75e12306 Mon Sep 17 00:00:00 2001 From: 88guri Date: Fri, 23 Jan 2026 19:57:31 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20#197=20=EC=B0=B8=EC=97=AC=EC=9E=90-?= =?UTF-8?q?=EA=B3=B5=EA=B5=AC=20=EC=B0=B8=EC=97=AC=EB=82=B4=EC=97=AD=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=A5=BC=20OrderStatus=EA=B0=92?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ParticipationService.java | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) 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