Skip to content

Commit 70e1ab1

Browse files
committed
feature #182 : 주문상세조회, 주문상태조회 시 회원 검증 로직 추가
1 parent d49790d commit 70e1ab1

4 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/main/java/com/irum/come2us/domain/order/application/service/CustomerOrderService.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,28 @@ public class CustomerOrderService {
3838

3939
@Transactional(readOnly = true)
4040
public OrderDetailStatusResponse getOrderDetailStatus(UUID orderDetailId) {
41+
Member member = memberUtil.getCurrentMember();
42+
4143
OrderDetail orderDetail =
4244
orderDetailRepository
43-
.findByOrderDetailId(orderDetailId)
45+
.findByOrderDetailIdWithOrderAndMember(orderDetailId)
4446
.orElseThrow(
4547
() -> new CommonException(OrderErrorCode.ORDER_DETAIL_NOT_FOUND));
4648

49+
if (member.equals(orderDetail.getOrder().getMember()))
50+
throw new CommonException(OrderErrorCode.ORDER_FORBIDDEN);
51+
4752
return OrderDetailStatusResponse.from(orderDetail);
4853
}
4954

5055
@Transactional(readOnly = true)
5156
public OrderDetailResponse getOrderDetail(UUID orderId) {
57+
Member member = memberUtil.getCurrentMember();
58+
59+
// order 조회 및 member 검증
5260
Order order =
5361
orderRepository
54-
.findByOrderId(orderId)
62+
.findByOrderIdAndMember(orderId, member)
5563
.orElseThrow(() -> new CommonException(OrderErrorCode.ORDER_NOT_FOUND));
5664

5765
List<OrderDetail> orderDetailList = orderDetailRepository.findAllByOrder(order);
@@ -83,7 +91,7 @@ public CustomerOrderListResponse getOrderList(
8391
List<UUID> orderIdList = headerList.stream().map(CustomerOrderSummaryRow::orderId).toList();
8492
List<CustomerOrderDetailRow> orderDetailList =
8593
orderRepository.fetchOrderDetailListByMember(orderIdList);
86-
log.info("orderDetailList ", orderDetailList);
94+
log.info("orderDetailList {}", orderDetailList);
8795

8896
// 4. orderId로 그룹핑 : productSummary 제작
8997
Map<UUID, List<CustomerOrderListResponse.ProductResponse>> detailMap =

src/main/java/com/irum/come2us/domain/order/domain/repository/OrderDetailRepository.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,28 @@
22

33
import com.irum.come2us.domain.order.domain.entity.Order;
44
import com.irum.come2us.domain.order.domain.entity.OrderDetail;
5+
import io.lettuce.core.dynamic.annotation.Param;
56
import java.util.List;
67
import java.util.Optional;
78
import java.util.UUID;
89
import org.springframework.data.jpa.repository.JpaRepository;
10+
import org.springframework.data.jpa.repository.Query;
911
import org.springframework.stereotype.Repository;
1012

1113
@Repository
1214
public interface OrderDetailRepository extends JpaRepository<OrderDetail, UUID> {
1315

1416
Optional<OrderDetail> findByOrderDetailId(UUID orderDetailId);
1517

18+
@Query(
19+
"""
20+
select od from OrderDetail od
21+
join fetch od.order o
22+
join fetch o.member m
23+
where od.orderDetailId = :orderDetailId
24+
""")
25+
Optional<OrderDetail> findByOrderDetailIdWithOrderAndMember(
26+
@Param("orderDetailId") UUID orderDetailId);
27+
1628
List<OrderDetail> findAllByOrder(Order order);
1729
}

src/main/java/com/irum/come2us/domain/order/domain/repository/OrderRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
@Repository
1212
public interface OrderRepository extends JpaRepository<Order, UUID>, OrderRepositoryCustom {
13-
Optional<Order> findByOrderId(UUID orderId);
13+
Optional<Order> findByOrderIdAndMember(UUID orderId, Member member);
1414

1515
List<Order> findAllByMember(Member member);
1616
}

src/main/java/com/irum/come2us/global/presentation/advice/exception/errorcode/OrderErrorCode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
@AllArgsConstructor
99
public enum OrderErrorCode implements BaseErrorCode {
1010
ORDER_NOT_FOUND(HttpStatus.NOT_FOUND, "주문을 찾을 수 없습니다."),
11-
11+
ORDER_FORBIDDEN(HttpStatus.FORBIDDEN, "해당 주문에 대해 권한이 없습니다"),
1212
ORDER_DETAIL_NOT_FOUND(HttpStatus.NOT_FOUND, "주문 상세를 찾을 수 없습니다."),
1313
;
1414

0 commit comments

Comments
 (0)