Skip to content

Commit 6e20337

Browse files
authored
refactor(be): 주문과 상점 간 데이터 응답 책임 분리 강화 (#150)
1 parent a1d48ef commit 6e20337

File tree

4 files changed

+44
-37
lines changed

4 files changed

+44
-37
lines changed

backend/src/main/java/com/deliveranything/domain/order/dto/OrderStoreCursorResponse.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

backend/src/main/java/com/deliveranything/domain/order/service/OrderService.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.deliveranything.domain.order.dto.OrderCreateResponse;
55
import com.deliveranything.domain.order.dto.OrderItemRequest;
66
import com.deliveranything.domain.order.dto.OrderResponse;
7-
import com.deliveranything.domain.order.dto.OrderStoreCursorResponse;
87
import com.deliveranything.domain.order.entity.Order;
98
import com.deliveranything.domain.order.entity.OrderItem;
109
import com.deliveranything.domain.order.enums.OrderStatus;
@@ -125,7 +124,7 @@ public List<Order> getStoreOrdersWithStatuses(Long storeId, List<OrderStatus> or
125124
}
126125

127126
@Transactional(readOnly = true)
128-
public CursorPageResponse<OrderStoreCursorResponse> getStoreOrdersByCursor(
127+
public CursorPageResponse<OrderResponse> getStoreOrdersByCursor(
129128
Long storeId,
130129
String nextPageToken,
131130
int size
@@ -147,17 +146,17 @@ public CursorPageResponse<OrderStoreCursorResponse> getStoreOrdersByCursor(
147146
List<Order> cursorOrders = orderRepositoryCustom.findStoreOrders(storeId,
148147
List.of(OrderStatus.COMPLETED, OrderStatus.REJECTED), lastCreatedAt, lastOrderId, size + 1);
149148

150-
List<OrderStoreCursorResponse> cursorResponses = cursorOrders.stream()
149+
List<OrderResponse> cursorResponses = cursorOrders.stream()
151150
.limit(size)
152-
.map(OrderStoreCursorResponse::from)
151+
.map(OrderResponse::from)
153152
.toList();
154153

155154
boolean hasNext = cursorOrders.size() > size;
156-
OrderStoreCursorResponse lastResponse = cursorResponses.getLast();
155+
OrderResponse lastResponse = cursorResponses.getLast();
157156

158157
return new CursorPageResponse<>(
159158
cursorResponses,
160-
hasNext ? CursorUtil.encode(lastResponse.createdAt(), lastResponse.orderId()) : null,
159+
hasNext ? CursorUtil.encode(lastResponse.createdAt(), lastResponse.id()) : null,
161160
hasNext
162161
);
163162
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.deliveranything.domain.store.store.dto;
2+
3+
import com.deliveranything.domain.order.dto.OrderResponse;
4+
import com.deliveranything.domain.order.entity.OrderItem;
5+
import com.deliveranything.domain.order.enums.OrderStatus;
6+
import java.time.LocalDateTime;
7+
import java.util.List;
8+
9+
public record StoreOrderCursorResponse(
10+
Long orderId,
11+
List<OrderItem> orderItems,
12+
OrderStatus status,
13+
String address,
14+
String storeNote,
15+
LocalDateTime createdAt
16+
) {
17+
18+
public static StoreOrderCursorResponse from(OrderResponse orderResponse) {
19+
return new StoreOrderCursorResponse(
20+
orderResponse.id(),
21+
orderResponse.orderItems(),
22+
orderResponse.status(),
23+
orderResponse.address(),
24+
orderResponse.storeNote(),
25+
orderResponse.createdAt()
26+
);
27+
}
28+
}

backend/src/main/java/com/deliveranything/domain/store/store/service/StoreService.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.deliveranything.domain.store.store.service;
22

3-
import com.deliveranything.domain.order.dto.OrderStoreCursorResponse;
3+
import com.deliveranything.domain.order.dto.OrderResponse;
44
import com.deliveranything.domain.order.service.OrderService;
55
import com.deliveranything.domain.store.category.entity.StoreCategory;
66
import com.deliveranything.domain.store.category.service.StoreCategoryService;
77
import com.deliveranything.domain.store.store.dto.StoreCreateRequest;
8+
import com.deliveranything.domain.store.store.dto.StoreOrderCursorResponse;
89
import com.deliveranything.domain.store.store.dto.StoreUpdateRequest;
910
import com.deliveranything.domain.store.store.entity.Store;
1011
import com.deliveranything.domain.store.store.repository.StoreRepository;
@@ -69,11 +70,18 @@ public Store findById(Long storeId) {
6970
}
7071

7172
@Transactional(readOnly = true)
72-
public CursorPageResponse<OrderStoreCursorResponse> getFinalizedStoreOrder(
73+
public CursorPageResponse<StoreOrderCursorResponse> getFinalizedStoreOrder(
7374
Long storeId,
7475
String nextPageToken,
7576
int size
7677
) {
77-
return orderService.getStoreOrdersByCursor(storeId, nextPageToken, size);
78+
CursorPageResponse<OrderResponse> orderPage = orderService.getStoreOrdersByCursor(storeId,
79+
nextPageToken, size);
80+
81+
return new CursorPageResponse<>(
82+
orderPage.content().stream().map(StoreOrderCursorResponse::from).toList(),
83+
orderPage.nextPageToken(),
84+
orderPage.hasNext()
85+
);
7886
}
7987
}

0 commit comments

Comments
 (0)