Bläddra i källkod

+ 대기중 주문내역 업데이트

송용우 4 månader sedan
förälder
incheckning
3be1493319
3 ändrade filer med 48 tillägg och 32 borttagningar
  1. 1 0
      backend/app/Config/Routes2.php
  2. 29 0
      backend/app/Controllers/Deli.php
  3. 18 32
      pages/view/vendor/dashboard/index.vue

+ 1 - 0
backend/app/Config/Routes2.php

@@ -123,6 +123,7 @@ $routes->post('deli/delivered', 'Deli::getDeliveredList');
 $routes->post('deli/markDelivered', 'Deli::markAsDelivered');
 $routes->post('deli/markSettled', 'Deli::markAsSettled');
 $routes->post('deli/settlement', 'Deli::getSettlementList');
+$routes->post('deli/pendingOrdersForVendor', 'Deli::getPendingOrdersForVendor');
 
 // =============================================================================
 // 파트너십 전용 웹 라우팅 (향후 확장)

+ 29 - 0
backend/app/Controllers/Deli.php

@@ -473,4 +473,33 @@ class Deli extends ResourceController
         return $this->respond($lists, 200);
     }
 
+    // 벤더용 대기중 주문 목록 조회
+    public function getPendingOrdersForVendor()
+    {
+        $db = \Config\Database::connect();
+        $request = $this->request->getJSON(true);
+        
+        $memberType = isset($request['MEMBER_TYPE']) ? $request['MEMBER_TYPE'] : null;
+        $companyNumber = isset($request['COMPANY_NUMBER']) ? $request['COMPANY_NUMBER'] : null;
+        
+        if ($memberType !== 'VENDOR' || empty($companyNumber)) {
+            return $this->respond([], 200);
+        }
+        
+        // 벤더의 제품에 대한 대기중 주문만 조회
+        $builder = $db->table('ITEM_ORDER_LIST IOL')
+            ->select('IOL.*, IL.NAME as ITEM_NAME, IL.COMPANY_NUMBER, IM.NICK_NAME')
+            ->join('ITEM_LIST IL', 'IOL.ITEM_SEQ = IL.SEQ', 'inner')
+            ->join('INF_MEMBER IM', 'IOL.INF_SEQ = IM.SEQ', 'left')
+            ->where('IL.COMPANY_NUMBER', $companyNumber)
+            ->where('IOL.DEL_YN', 'N')
+            ->where('(IOL.DELI_COMP IS NULL OR IOL.DELI_COMP = "")')
+            ->where('(IOL.DELI_NUMB IS NULL OR IOL.DELI_NUMB = "")')
+            ->orderBy('IOL.REG_DATE', 'DESC');
+            
+        $lists = $builder->get()->getResultArray();
+        
+        return $this->respond($lists, 200);
+    }
+
 }

+ 18 - 32
pages/view/vendor/dashboard/index.vue

@@ -1014,55 +1014,41 @@
     }
   };
 
-  // 최근 주문 데이터 가져오기 (기존 API 사용)
-  const fetchRecentOrders = async () => {
+  // 신규 주문 (대기중) 데이터 가져오기 - 새로운 API 사용
+  const fetchPendingOrders = async () => {
     try {
       const userInfo =
         useAuthStore().getSnsTempData?.user ||
         JSON.parse(localStorage.getItem("authStore") || "{}")?.auth;
+      
       const requestData = {
-        TYPE: "ITEM",
-        SHOW_YN: "Y",
         MEMBER_TYPE: "VENDOR",
         COMPANY_NUMBER: userInfo?.COMPANY_NUMBER,
       };
 
-      const response = await useAxios().post("/deli/itemlist", requestData);
-      console.log(response, "최근 주문 데이터");
-      const allOrderData = response.data || [];
-
-      return allOrderData;
-    } catch (error) {
-      console.error("최근 주문 데이터 조회 실패:", error);
-      throw error;
-    }
-  };
-
-  // 신규 주문 (대기중) 데이터 가져오기 - 기존 데이터 필터링
-  const fetchPendingOrders = async () => {
-    try {
-      const allOrders = await fetchRecentOrders();
-
-      // 대기중 상태의 주문만 필터링 (배송업체나 송장번호가 없는 것)
-      const pendingData = allOrders.filter(
-        (item) =>
-          (!item.DELI_COMP || item.DELI_COMP === "") &&
-          (!item.DELI_NUMB || item.DELI_NUMB === "")
-      );
+      console.log("대기중 주문 API 요청:", requestData);
+      
+      const response = await useAxios().post("/deli/pendingOrdersForVendor", requestData);
+      const pendingData = response.data || [];
+      
+      console.log("대기중 주문 API 응답:", pendingData);
+      console.log("대기중 주문 데이터 개수:", pendingData.length);
 
       // 테이블 형식으로 변환
       const formattedPendingOrders = pendingData.map((item, index) => ({
         orderNo: `ORD-${item.SEQ || Date.now() + index}`,
-        itemSeq: item.SEQ,
-        productName: item.NAME || "상품명 없음",
-        influencer: "대기중",
-        totalQty: item.sum_qty || 0,
-        totalAmount: item.sum_total || 0,
-        latestOrderDate: $dayjs(item.latest_reg_date).format("YYYY-MM-DD"),
+        itemSeq: item.ITEM_SEQ,
+        productName: item.ITEM_NAME || "상품명 없음",
+        influencer: item.NICK_NAME || "알 수 없음",
+        totalQty: item.QTY || 0,
+        totalAmount: item.TOTAL || 0,
+        latestOrderDate: $dayjs(item.REG_DATE || item.ORDER_DATE).format("YYYY-MM-DD"),
         status: "pending",
         originalData: item,
       }));
 
+      console.log("변환된 대기중 주문 데이터:", formattedPendingOrders);
+
       pendingOrders.value = formattedPendingOrders;
 
       // 페이징 정보 업데이트