Skip to content

Commit

Permalink
[�MERGE] 최신 접수 주문 번호 중복 제거 및 상태 추가
Browse files Browse the repository at this point in the history
[FIX] 최신 접수 주문 번호 중복 제거 및 상태 추가
  • Loading branch information
seokbeom00 authored Oct 10, 2024
2 parents 608ac3f + 6e48476 commit 4d62e94
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,6 @@ public ResponseEntity<Void> orderCancel(

@GetMapping("order/recent")
public ResponseEntity<List<RecentOrderResponseDto>> getRecentOrderNumber() {
return ResponseEntity.ok(ordersService.getRecentTen());
return ResponseEntity.ok(ordersService.getRecentOrders());
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,34 @@
package com.rootandfruit.server.api.dto;

import com.rootandfruit.server.api.domain.DeliveryStatus;

public record RecentOrderResponseDto(
Integer orderNumber,
String senderName
String senderName,
String deliveryStatus
) {
// 생성자 추가
public RecentOrderResponseDto(Integer orderNumber, String senderName, DeliveryStatus deliveryStatus) {
this(orderNumber, senderName, convertStatusToKorean(deliveryStatus));
}

public static RecentOrderResponseDto of(
final Integer orderNumber,
final String senderName
final String senderName,
final DeliveryStatus deliveryStatus
) {
return new RecentOrderResponseDto(
orderNumber, senderName
orderNumber, senderName, convertStatusToKorean(deliveryStatus)
);
}
}

private static String convertStatusToKorean(DeliveryStatus deliveryStatus) {
return switch (deliveryStatus) {
case ORDER_ACCEPTED -> "접수완료";
case PAYMENT_COMPLETED -> "결제완료";
case PAYMENT_CANCELED -> "결제취소";
case ORDER_SHIPPED -> "발송완료";
default -> "알 수 없음";
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.rootandfruit.server.global.exception.CustomException;
import com.rootandfruit.server.global.exception.ErrorType;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
Expand All @@ -22,13 +23,9 @@ default List<Orders> findByOrderNumberOrThrow(int orderNumber) {
return orders;
}

@Query("SELECT new com.rootandfruit.server.api.dto.RecentOrderResponseDto(o.orderNumber, d.senderName) " +
@Query("SELECT DISTINCT new com.rootandfruit.server.api.dto.RecentOrderResponseDto(o.orderNumber, d.senderName, d.deliveryStatus) " +
"FROM Orders o " +
"JOIN o.deliveryInfo d " +
"WHERE d.deliveryStatus = :deliveryStatus " +
"ORDER BY o.createdAt DESC")
List<RecentOrderResponseDto> findRecentOrdersByDeliveryStatus(
@Param("deliveryStatus") DeliveryStatus deliveryStatus,
Pageable pageable
);
"ORDER BY o.orderNumber DESC")
List<RecentOrderResponseDto> findRecentOrders();
}
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,17 @@ public void cancel(int orderNumber) {
}

@Transactional(readOnly = true)
public List<RecentOrderResponseDto> getRecentTen() {
Pageable limitTen = PageRequest.of(0, 10);
return ordersRepository.findRecentOrdersByDeliveryStatus(DeliveryStatus.ORDER_ACCEPTED, limitTen);
public List<RecentOrderResponseDto> getRecentOrders() {
List<RecentOrderResponseDto> recentOrders = ordersRepository.findRecentOrders();

return recentOrders.stream()
.limit(10)
.map(order -> RecentOrderResponseDto.of(
order.orderNumber(),
order.senderName(),
DeliveryStatus.fromString(order.deliveryStatus())// 여기서는 DeliveryStatus 타입을 그대로 전달
))
.collect(Collectors.toList());
}
}

0 comments on commit 4d62e94

Please sign in to comment.