22
33import com .irum .come2us .domain .member .domain .entity .Member ;
44import com .irum .come2us .domain .order .domain .entity .Order ;
5- import com .irum .come2us .domain .order .domain .entity .enums .OrderStatus ;
65import com .irum .come2us .domain .order .domain .repository .OrderRepository ;
76import com .irum .come2us .domain .order .presentation .dto .response .SalesResponse ;
87import com .irum .come2us .domain .refund .domain .entity .Refund ;
1312import com .irum .come2us .global .presentation .advice .exception .CommonException ;
1413import com .irum .come2us .global .presentation .advice .exception .errorcode .StoreErrorCode ;
1514import com .irum .come2us .global .util .MemberUtil ;
16- import java .util .List ;
17- import java .util .Optional ;
18- import java .util .UUID ;
15+ import java .util .*;
1916import lombok .RequiredArgsConstructor ;
2017import org .springframework .stereotype .Service ;
2118
@@ -33,27 +30,17 @@ public SalesResponse getSalesList(UUID storeId) {
3330 storeRepository
3431 .findById (storeId )
3532 .orElseThrow (() -> new CommonException (StoreErrorCode .STORE_NOT_FOUND ));
36- List <OrderStatus > orderStatuses =
37- List .of (
38- OrderStatus .DELIVERED ,
39- OrderStatus .PARTIALLY_DELIVERED ,
40- OrderStatus .DELIVERED ,
41- OrderStatus .SHIPPED ,
42- OrderStatus .PREPARING );
43- List <RefundStatus > refundStatuses =
44- List .of (
45- RefundStatus .APPROVED ,
46- RefundStatus .COMPLETED ,
47- RefundStatus .PENDING ,
48- RefundStatus .REJECTED ,
49- RefundStatus .REQUESTED );
33+ memberUtil .assertMemberResourceAccess (store .getMember ());
34+
5035 List <Order > orders = orderRepository .findSalesAll (storeId );
5136 List <SalesResponse .OrderSummary > orderList =
5237 orders .stream ().map (this ::toOrderSummary ).toList ();
5338 return new SalesResponse (orderList , null , false );
5439 }
5540
5641 private SalesResponse .OrderSummary toOrderSummary (Order order ) {
42+ String displayStatus = DisplayStatus (order );
43+
5744 List <SalesResponse .ProductSummary > productList =
5845 order .getOrderDetails ().stream ()
5946 .map (
@@ -65,12 +52,6 @@ private SalesResponse.OrderSummary toOrderSummary(Order order) {
6552 detail .getPrice (),
6653 detail .getOptionName ()))
6754 .toList ();
68- Optional <Refund > latestRefund = refundRepository .findLatestByOrder (order );
69-
70- String displayStatus = latestRefund
71- .map (r -> r .getRefundStatus ().name ())
72- .orElse (order .getOrderStatusAll ().name ());
73-
7455
7556 return new SalesResponse .OrderSummary (
7657 order .getOrderId (),
@@ -85,4 +66,20 @@ private SalesResponse.OrderSummary toOrderSummary(Order order) {
8566 productList ,
8667 displayStatus );
8768 }
69+
70+ // 환불 존재시 환불 상태 반환, 환불 존재하지 않으면 주문 상태 반환
71+ private String DisplayStatus (Order order ) {
72+ Optional <Refund > latestRefundOpt =
73+ refundRepository .findTopByOrderOrderByCreatedAtDesc (order );
74+
75+ if (latestRefundOpt .isPresent ()) {
76+ Refund latestRefund = latestRefundOpt .get ();
77+ RefundStatus refundStatus = latestRefund .getRefundStatus ();
78+
79+ if (refundStatus != RefundStatus .REJECTED ) {
80+ return refundStatus .name ();
81+ }
82+ }
83+ return order .getOrderStatusAll ().name ();
84+ }
8885}
0 commit comments