큰 작업은 끝나서 필요한 경우 코드 수정을 하고 DB에 초기 데이터 넣는 작업을 하고있다.
1. 주문 내역 데이터 전달시 개인별 몇번째 주문인지 표시
Order 엔티티에서 식별자로 orderId를 쓰고 있다.
주문 내역을 전달할때 orderId 내림차순으로 데이터를 정렬해서 전달하므로 orderId를 응답 필드로 보내주고 있었다.
그런데 프론트쪽에서 주문에 순번을 붙이려면 몇번째 주문인지 연속된 숫자로 오는것이 작업하기 편하다고 한다.
아무래도 페이지네이션까지 적용되어있다보니 백엔드서버에서 관련 데이터를 정리해서 보내주는게 간편할것같기는 하다.
OrderInfo에 orderCount 필드를 추가하고 페이지 번호에 맞춰서 몇번째 주문인지 순번을 추가해서 전달하는것으로 코드를 추가했다.
<OrderInfo Dto에 orderCount 필드 추가>
@Builder
@Getter
@Setter
public static class OrderInfo {
private Long orderId;
private Integer orderCount; // 추가
private LocalDateTime createdAt;
private Long totalPrice;
private Orders.OrderState orderStatus;
private String orderAddress;
private List<OrderProductInfo> orderProductInfos;
}
<Mapper에 orderCount 처리 로직 추가>
default MemberDto.OrderResponse ordersToOrderResponse(List<Orders> orders, int page, int size) {
int totalElement = orders.size();
int totalPage = (totalElement + size - 1) / size;
...
int maxCount = orders.size() - (page - 1) * size;
List<MemberDto.OrderInfo> orderInfos = paginatedOrders.stream()
.map(this::orderToOrderInfo)
.collect(Collectors.toList());
for (MemberDto.OrderInfo orderInfo : orderInfos) {
orderInfo.setOrderCount(maxCount--);
}
...
}
[결과 확인]
orderId와 별개로 orderCount를 통해 몇번째 주문인지 나타내고있다.
2. 데이터 추가
가게별로 제품 목록을 등록하고있다.
제품명과 제품 소개, 제품 이미지를 다 등록해야해서 조금 번거로운면이 없지는 않지만 입력한대로 표시가 잘 되는걸 보니 기분이 좋다.
빨리 데이터 입력까지 완료된 페이지를 볼 수 있었으면 좋겠다.
'부트캠프 개발일기 > Main-Project' 카테고리의 다른 글
112일차: Main_Project Day 19 (문서 작성, 최종 제출, 배포링크) (0) | 2023.07.24 |
---|---|
111일차: Main-Project Day 18 (데이터 추가, 프로젝트 매뉴얼 구상) (0) | 2023.07.21 |
109일차: Main-Project Day 16 (CSV파일 Import, 0 records imported, 데이터 넣기) (0) | 2023.07.19 |
108일차: Main-Project Day 15 (주문 정보 조회, FetchType, LazyInitializationException) (0) | 2023.07.18 |
107일차: Main-Project Day 14 (마이페이지 API 설계) (0) | 2023.07.17 |