From 10887200815f5709e24436e3deccb5daf439174b Mon Sep 17 00:00:00 2001 From: thug0bin Date: Sat, 7 Mar 2026 22:20:15 +0900 Subject: [PATCH] =?UTF-8?q?fix(baekje):=20/orders/summary-by-kd=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=83=88=20API=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - get_order_list(include_details=True)로 한 번에 조회 - 접수 상태(확정 전)도 집계에 포함 - pending_count, approved_count 응답에 추가 --- backend/baekje_api.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/backend/baekje_api.py b/backend/baekje_api.py index 71b6e47..edc8346 100644 --- a/backend/baekje_api.py +++ b/backend/baekje_api.py @@ -321,8 +321,9 @@ def api_baekje_orders_by_kd(): try: session = get_baekje_session() - # 1. 주문 목록 조회 - orders_result = session.get_order_list(start_date, end_date) + # 주문 목록 + 상세를 한 번에 조회 (include_details=True) + # 접수 상태(확정 전)도 포함됨! + orders_result = session.get_order_list(start_date, end_date, include_details=True) if not orders_result.get('success'): return jsonify({ @@ -340,22 +341,16 @@ def api_baekje_orders_by_kd(): 'order_count': 0, 'period': {'start': start_date, 'end': end_date}, 'by_kd_code': {}, - 'total_products': 0 + 'total_products': 0, + 'pending_count': 0, + 'approved_count': 0 }) - # 2. 주문 상세 정보 배치 조회 (items 포함) - details_result = session.get_order_details_batch(orders=orders) - - if not details_result.get('success'): - logger.warning(f"백제 주문 상세 조회 실패: {details_result.get('error')}") - - details = details_result.get('details', {}) - - # KD코드별 집계 + # KD코드별 집계 (items가 이미 각 order에 포함됨) kd_summary = {} - for order_num, detail in details.items(): - for item in detail.get('items', []): + for order in orders: + for item in order.get('items', []): # 취소 상태 제외 status = item.get('status', '').strip() if '취소' in status or '삭제' in status: @@ -383,11 +378,16 @@ def api_baekje_orders_by_kd(): kd_summary[kd_code]['boxes'] += quantity kd_summary[kd_code]['units'] += total_units - logger.info(f"백제 주문량 집계: {start_date}~{end_date}, {len(orders)}건 주문, {len(kd_summary)}개 품목") + pending_count = orders_result.get('pending_count', 0) + approved_count = orders_result.get('approved_count', 0) + + logger.info(f"백제 주문량 집계: {start_date}~{end_date}, {len(orders)}건 (접수:{pending_count}, 승인:{approved_count}), {len(kd_summary)}개 품목") return jsonify({ 'success': True, 'order_count': len(orders), + 'pending_count': pending_count, # 접수 상태 (확정 전) + 'approved_count': approved_count, # 승인 상태 (확정됨) 'period': {'start': start_date, 'end': end_date}, 'by_kd_code': kd_summary, 'total_products': len(kd_summary)