Skip to content

Commit 1fe8786

Browse files
authored
Refactor/204 고객용 대시보드 주문 조회- 실제 db와 연동 (#215)
* feat/164 creatAt이었던 부분이 creatDate를 참조해야되는 문제 해결 * refactor/204 주문 조회 db 연결 * refactor/204 주문 조회 db 연결 * refactor/204 참여한 펀딩 조회 코드 개선
1 parent a132c7b commit 1fe8786

File tree

9 files changed

+1127
-289
lines changed

9 files changed

+1127
-289
lines changed

src/main/java/com/back/domain/dashboard/customer/controller/DashboardController.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,9 @@ public ResponseEntity<RsData<OrderResponse.List>> getOrders(
106106
@AuthenticationPrincipal CustomUserDetails userDetails,
107107
@Valid @ModelAttribute OrderSearchRequest request) {
108108

109-
log.info("주문 목록 조회 - userId: {}, page: {}, size: {}, status: {}",
110-
userDetails.getUserId(), request.page(), request.size(), request.status());
109+
log.info("주문 목록 조회 - userId: {}, page: {}, size: {}, keyword: {}, sort: {}, order: {}",
110+
userDetails.getUserId(), request.page(), request.size(),
111+
request.keyword(), request.sort(), request.order());
111112

112113
OrderResponse.List response = dashboardService.getOrders(
113114
userDetails.getUserId(), request);

src/main/java/com/back/domain/dashboard/customer/dto/request/OrderSearchRequest.java

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
/**
88
* 주문 목록 검색 요청 DTO
9-
* 2025.09.25 생성
9+
* 2025.10.03 수정 - 검색 키워드 및 정렬 기능 중심으로 변경
1010
*/
1111
public record OrderSearchRequest(
1212
/** 페이지 번호 (0부터 시작) */
@@ -18,39 +18,17 @@ public record OrderSearchRequest(
1818
@Max(value = 100, message = "페이지 크기는 100 이하여야 합니다")
1919
Integer size,
2020

21-
/** 주문 상태 필터 */
22-
@Pattern(regexp = "^(PENDING|CONFIRMED|PREPARING|SHIPPED|DELIVERED|CANCELED)$",
23-
message = "status는 PENDING, CONFIRMED, PREPARING, SHIPPED, DELIVERED, CANCELED 중 하나여야 합니다")
24-
String status,
25-
26-
/** A/S 상태 필터 */
27-
@Pattern(regexp = "^(CANCEL_REQUESTED|CANCEL_PROCESSING|CANCEL_COMPLETED|EXCHANGE_REQUESTED|EXCHANGE_PROCESSING|EXCHANGE_COMPLETED)$",
28-
message = "aftersalesStatus는 CANCEL_REQUESTED, CANCEL_PROCESSING, CANCEL_COMPLETED, EXCHANGE_REQUESTED, EXCHANGE_PROCESSING, EXCHANGE_COMPLETED 중 하나여야 합니다")
29-
String aftersalesStatus,
30-
31-
/** 시작 날짜 */
32-
@Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$",
33-
message = "날짜는 yyyy-MM-dd 형식이어야 합니다")
34-
String from,
35-
36-
/** 종료 날짜 */
37-
@Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$",
38-
message = "날짜는 yyyy-MM-dd 형식이어야 합니다")
39-
String to,
40-
41-
/** 기간 필터 */
42-
@Pattern(regexp = "^(TODAY|WEEK|MONTH|QUARTER|YEAR|CUSTOM)$",
43-
message = "period는 TODAY, WEEK, MONTH, QUARTER, YEAR, CUSTOM 중 하나여야 합니다")
44-
String period,
21+
/** 검색 키워드 (상품명 또는 주문번호) */
22+
String keyword,
4523

4624
/** 정렬 기준 */
47-
@Pattern(regexp = "^(orderDate|orderNumber|status|totalAmount)$",
48-
message = "sort는 orderDate, orderNumber, status, totalAmount 중 하나여야 합니다")
25+
@Pattern(regexp = "^(orderDate|productName|totalAmount|status)$",
26+
message = "sort는 orderDate, productName, totalAmount, status 중 하나여야 합니다")
4927
String sort,
5028

5129
/** 정렬 방향 */
52-
@Pattern(regexp = "^(ASC|DESC)$",
53-
message = "order는 ASC 또는 DESC여야 합니다")
30+
@Pattern(regexp = "^(ASC|DESC)$",
31+
message = "order는 ASC 또는 DESC여야 합니다")
5432
String order
5533
) {
5634
/**
@@ -59,7 +37,6 @@ public record OrderSearchRequest(
5937
public OrderSearchRequest {
6038
if (page == null) page = 0;
6139
if (size == null) size = 10;
62-
if (period == null) period = "MONTH";
6340
if (sort == null) sort = "orderDate";
6441
if (order == null) order = "DESC";
6542
}

src/main/java/com/back/domain/dashboard/customer/dto/response/OrderResponse.java

Lines changed: 41 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -4,84 +4,47 @@
44

55
/**
66
* 주문 관련 응답 DTO
7-
*
8-
*사용자의 주문 내역과 관련된 모든 정보를 포함
9-
*2025.09.23 수정
7+
* <p>
8+
* 사용자의 주문 내역과 관련된 모든 정보를 포함
9+
* 2025.09.23 수정
1010
*/
1111
public class OrderResponse {
12-
12+
1313
/**
1414
* 주문 목록 응답
1515
*/
1616
public static class List extends PageResponse<OrderResponse.Summary> {
17-
/** 주문 현황 요약 정보 */
17+
/**
18+
* 주문 현황 요약 정보
19+
*/
1820
private final SummaryDto summary;
19-
/** 시간대 정보 */
20-
private final String timezone;
21-
/** 기간 정보 */
22-
private final PeriodInfo period;
23-
21+
2422
public List() {
2523
super();
2624
this.summary = null;
27-
this.timezone = null;
28-
this.period = null;
2925
}
30-
26+
3127
public List(SummaryDto summary, java.util.List<Summary> content,
32-
int page, int size, long totalElements, int totalPages,
33-
boolean hasNext, boolean hasPrevious, String timezone, PeriodInfo period) {
28+
int page, int size, long totalElements, int totalPages,
29+
boolean hasNext, boolean hasPrevious) {
3430
super(content, page, size, totalElements, totalPages, hasNext, hasPrevious);
3531
this.summary = summary;
36-
this.timezone = timezone;
37-
this.period = period;
3832
}
39-
33+
4034
public SummaryDto getSummary() {
4135
return summary;
4236
}
43-
44-
public String getTimezone() {
45-
return timezone;
46-
}
47-
48-
public PeriodInfo getPeriod() {
49-
return period;
50-
}
5137
}
52-
38+
5339
/**
54-
* 주문 현황 요약 정보
40+
* 주문 현황 요약 정보 (통계는 프론트 UI에 미사용)
5541
*/
5642
public record SummaryDto(
5743
/** 전체 주문 건수 */
58-
int totalOrders,
59-
/** 결제완료 건수 */
60-
int pending,
61-
/** 발주 확인 건수 */
62-
int confirmed,
63-
/** 배송준비중 건수 */
64-
int preparing,
65-
/** 배송중 건수 */
66-
int shipped,
67-
/** 배송완료 건수 */
68-
int delivered,
69-
/** 취소된 건수 */
70-
int canceled,
71-
/** 취소 요청 건수 */
72-
int cancelRequested,
73-
/** 취소 처리중 건수 */
74-
int cancelProcessing,
75-
/** 취소 완료 건수 */
76-
int cancelCompleted,
77-
/** 교환 요청 건수 */
78-
int exchangeRequested,
79-
/** 교환 처리중 건수 */
80-
int exchangeProcessing,
81-
/** 교환 완료 건수 */
82-
int exchangeCompleted
83-
) {}
84-
44+
int totalOrders
45+
) {
46+
}
47+
8548
/**
8649
* 주문 요약 정보
8750
*/
@@ -99,8 +62,9 @@ public record Summary(
9962
Permission permissions,
10063
Link links,
10164
java.util.List<OrderItem> items
102-
) {}
103-
65+
) {
66+
}
67+
10468
/**
10569
* 상품 정보
10670
*/
@@ -110,8 +74,9 @@ public record Product(
11074
int quantity,
11175
int price,
11276
String imageUrl
113-
) {}
114-
77+
) {
78+
}
79+
11580
/**
11681
* 배송 정보
11782
*/
@@ -120,8 +85,9 @@ public record Shipping(
12085
String addressShort,
12186
/** 수령인 */
12287
String recipient
123-
) {}
124-
88+
) {
89+
}
90+
12591
/**
12692
* A/S 정보
12793
*/
@@ -130,8 +96,9 @@ public record Aftersales(
13096
AftersalesItem cancel,
13197
/** 교환 정보 */
13298
AftersalesItem exchange
133-
) {}
134-
99+
) {
100+
}
101+
135102
/**
136103
* A/S 상세 정보
137104
*/
@@ -142,20 +109,9 @@ public record AftersalesItem(
142109
String statusText,
143110
/** A/S 요청 ID */
144111
Long requestId
145-
) {}
146-
147-
/**
148-
* 기간 정보
149-
*/
150-
public record PeriodInfo(
151-
/** 기간 타입 */
152-
String type,
153-
/** 시작 날짜 */
154-
String from,
155-
/** 종료 날짜 */
156-
String to
157-
) {}
158-
112+
) {
113+
}
114+
159115
/**
160116
* 권한 정보
161117
*/
@@ -166,16 +122,18 @@ public record Permission(
166122
Boolean canReturn,
167123
/** 교환 가능 여부 */
168124
Boolean canExchange
169-
) {}
170-
125+
) {
126+
}
127+
171128
/**
172129
* 링크 정보
173130
*/
174131
public record Link(
175132
/** 상세 페이지 URL */
176133
String detail
177-
) {}
178-
134+
) {
135+
}
136+
179137
/**
180138
* 주문 상품 정보
181139
*/
@@ -186,5 +144,6 @@ public record OrderItem(
186144
int quantity,
187145
int price,
188146
String imageUrl
189-
) {}
147+
) {
148+
}
190149
}

0 commit comments

Comments
 (0)