Skip to content

Commit bbe3d75

Browse files
authored
refactor(be): 배달 도메인에서 필요한 정보 DTO에 추가 (#148)
* store 이름 필드를 위한 join fetch 쿼리 추가
1 parent 6e20337 commit bbe3d75

File tree

6 files changed

+26
-15
lines changed

6 files changed

+26
-15
lines changed

backend/src/main/java/com/deliveranything/domain/order/dto/OrderDetailsDto.java renamed to backend/src/main/java/com/deliveranything/domain/delivery/dto/OrderDetailsDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.deliveranything.domain.order.dto;
1+
package com.deliveranything.domain.delivery.dto;
22

33
import lombok.Builder;
44

backend/src/main/java/com/deliveranything/domain/delivery/event/dto/RiderNotificationDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.deliveranything.domain.delivery.event.dto;
22

3-
import com.deliveranything.domain.order.dto.OrderDetailsDto;
3+
import com.deliveranything.domain.delivery.dto.OrderDetailsDto;
44
import com.deliveranything.domain.order.enums.OrderStatus;
55
import lombok.Builder;
66

backend/src/main/java/com/deliveranything/domain/delivery/service/OrderNotificationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.deliveranything.domain.delivery.service;
22

3+
import com.deliveranything.domain.delivery.dto.OrderDetailsDto;
34
import com.deliveranything.domain.delivery.event.dto.OrderDeliveryCreatedEvent;
45
import com.deliveranything.domain.delivery.event.dto.RiderNotificationDto;
5-
import com.deliveranything.domain.order.dto.OrderDetailsDto;
66
import com.deliveranything.domain.order.enums.OrderStatus;
77
import java.util.ArrayList;
88
import java.util.List;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public record OrderResponse(
1212
List<OrderItem> orderItems,
1313
OrderStatus status,
1414
String merchantId,
15+
String storeName,
1516
String address,
1617
String riderNote,
1718
String storeNote,
@@ -27,6 +28,7 @@ public static OrderResponse from(Order order) {
2728
order.getOrderItems(),
2829
order.getStatus(),
2930
order.getMerchantId(),
31+
order.getStore().getName(),
3032
order.getAddress(),
3133
order.getRiderNote(),
3234
order.getStoreNote(),

backend/src/main/java/com/deliveranything/domain/order/repository/OrderRepository.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,23 @@
55
import java.util.List;
66
import java.util.Optional;
77
import org.springframework.data.jpa.repository.JpaRepository;
8+
import org.springframework.data.jpa.repository.Query;
89

910
public interface OrderRepository extends JpaRepository<Order, Long> {
1011

1112
Optional<Order> findByIdAndCustomerId(Long orderId, Long customerId);
1213

1314
Optional<Order> findByMerchantId(String merchantId);
1415

15-
Optional<Order> findByDeliveryId(Long deliveryId);
16+
@Query("SELECT o FROM Order o JOIN FETCH o.store WHERE o.delivery.id = :deliveryId")
17+
Optional<Order> findByDeliveryIdWithStore(Long deliveryId);
1618

17-
List<Order> findByStatus(OrderStatus orderStatus);
19+
@Query("SELECT o FROM Order o JOIN FETCH o.store WHERE o.status = :status")
20+
List<Order> findAllByStatusWithStore(OrderStatus status);
1821

19-
List<Order> findByDeliveryRiderProfileId(Long riderProfileId);
22+
@Query("SELECT o FROM Order o JOIN FETCH o.store WHERE o.delivery.riderProfile.id = :riderProfileId")
23+
List<Order> findAllByDeliveryRiderProfileIdWithStore(Long riderProfileId);
2024

21-
List<Order> findByStoreIdAndStatusInOrderByCreatedAtAsc(Long storeId, List<OrderStatus> statuses);
25+
List<Order> findAllByStoreIdAndStatusInOrderByCreatedAtAsc(Long storeId,
26+
List<OrderStatus> statuses);
2227
}

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

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,10 @@ public OrderResponse getCustomerOrder(Long orderId, Long customerId) {
9292
}
9393

9494
@Transactional(readOnly = true)
95-
public List<Order> getPreparedOrders() {
96-
return orderRepository.findByStatus(OrderStatus.PREPARING);
95+
public List<OrderResponse> getPreparedOrders() {
96+
return orderRepository.findAllByStatusWithStore(OrderStatus.PREPARING).stream()
97+
.map(OrderResponse::from)
98+
.toList();
9799
}
98100

99101
@Transactional
@@ -102,14 +104,16 @@ public void updateStatus(Long orderId, OrderStatus orderStatus) {
102104
}
103105

104106
@Transactional(readOnly = true)
105-
public Order getOrderByDeliveryId(Long deliveryId) {
106-
return orderRepository.findByDeliveryId(deliveryId)
107-
.orElseThrow(() -> new CustomException(ErrorCode.ORDER_NOT_FOUND));
107+
public OrderResponse getOrderByDeliveryId(Long deliveryId) {
108+
return OrderResponse.from(orderRepository.findByDeliveryIdWithStore(deliveryId)
109+
.orElseThrow(() -> new CustomException(ErrorCode.ORDER_NOT_FOUND)));
108110
}
109111

110112
@Transactional(readOnly = true)
111-
public List<Order> getRiderDeliveryOrders(Long riderProfileId) {
112-
return orderRepository.findByDeliveryRiderProfileId(riderProfileId);
113+
public List<OrderResponse> getRiderDeliveryOrders(Long riderProfileId) {
114+
return orderRepository.findAllByDeliveryRiderProfileIdWithStore(riderProfileId).stream()
115+
.map(OrderResponse::from)
116+
.toList();
113117
}
114118

115119
@Transactional(readOnly = true)
@@ -120,7 +124,7 @@ public Order getOrderByMerchantId(String merchantId) {
120124

121125
@Transactional(readOnly = true)
122126
public List<Order> getStoreOrdersWithStatuses(Long storeId, List<OrderStatus> orderStatuses) {
123-
return orderRepository.findByStoreIdAndStatusInOrderByCreatedAtAsc(storeId, orderStatuses);
127+
return orderRepository.findAllByStoreIdAndStatusInOrderByCreatedAtAsc(storeId, orderStatuses);
124128
}
125129

126130
@Transactional(readOnly = true)

0 commit comments

Comments
 (0)