Просмотр исходного кода

聚水潭数据同步优化,添加订单状态

dong025 5 дней назад
Родитель
Сommit
9f8275ccd0
2 измененных файлов с 66 добавлено и 10 удалено
  1. 63 9
      app/admin/command/JuShuiTan.php
  2. 3 1
      app/admin/service/JuShuiTanService.php

+ 63 - 9
app/admin/command/JuShuiTan.php

@@ -28,6 +28,7 @@ use app\common\model\CustomerSpec;
 use app\admin\service\JuShuiTanService;
 use GuzzleHttp\Psr7\Request;
 use app\common\model\ImportList;
+use think\facade\Cache;
 //抖音
 class JuShuiTan extends Command
 {
@@ -58,13 +59,35 @@ class JuShuiTan extends Command
         $output->writeln('开始同步聚水潭订单');
         $resquet = $this->getOrderList('dy');
         if ($resquet['success']) {
+            $jushuitan=[];
+            $jushuitan=Cache::get('jushuitan');
+
             if (count($resquet['data']) > 0) {
+
+                
+
+                $jushuitan_pageNum=$jushuitan['pageNum'];
+                $jushuitan_pageNum=$jushuitan_pageNum+1;
+                $jushuitan=[
+                    'startTime'=>$jushuitan['startTime'],
+                    'endTime'=>$jushuitan['endTime'],
+                    'pageNum'=>$jushuitan_pageNum,
+                    'next_time_space'=>$jushuitan['next_time_space']
+                ];
+                Cache::set('jushuitan',$jushuitan);
+
                 $list = $resquet['data'];
-                // dump($list);
-                // return;
                 $this->insertOrder($list);
                 //dump($resquet);
             } else {
+                $jushuitan=[
+                    'startTime'=>$jushuitan['startTime']+$jushuitan['next_time_space'],
+                    'endTime'=>$jushuitan['endTime']+$jushuitan['next_time_space'],
+                    'pageNum'=>1,
+                    'next_time_space'=>$jushuitan['next_time_space']
+                ];
+                Cache::set('jushuitan',$jushuitan);
+
                 $output->writeln('没有数据');
             }
         } else {
@@ -87,13 +110,39 @@ class JuShuiTan extends Command
             'Authorization' => site_config('addonsd.ju_shui_tan_authorization_toke'),
             'Content-Type' => ' application/json'
         ];
+        
+        //时间间隔
+        $start_end_space_time=5*60;
+        //下一次时间间隔
+        $next_time_space=3*60;
+
+
+        //将查询分为,"2026-01-05 00:00:00~2026-01-05 00:05:00",查询该区间的订单,但是该时间区间单独数量可能超过50条,为了性能又不能一次性查询太多,从而进行分页查询,
+        //查询不到数据,就往下一个时间区间查询
         $todayTime = date("Y-m-d");
 
-        $startTime = strtotime($todayTime . ' 00:00:00');
-        $startTime = date('Y-m-d H:i:s', $startTime);
-        // $startTime='2025-01-01 08:59:21';
-        $endTime = strtotime($todayTime . ' 23:59:59');
-        $endTime = date('Y-m-d H:i:s', $endTime);
+        // $startTime_stamp = strtotime($todayTime . ' 00:00:00');
+        $startTime_stamp = strtotime($todayTime . ' 07:20:00');
+        $endTime_stamp=$startTime_stamp+$start_end_space_time;
+        $pageNum=1;
+
+        $jushuitan=[
+            'startTime'=>$startTime_stamp,
+            'endTime'=>$endTime_stamp,
+            'pageNum'=>$pageNum,
+            'next_time_space'=>$next_time_space
+        ];
+
+        $jushuitan_cache_data=Cache::get('jushuitan');
+        
+        if(empty($jushuitan_cache_data)||$jushuitan_cache_data==null){
+            Cache::set('jushuitan',$jushuitan);
+        }
+        $jushuitan=Cache::get('jushuitan');
+
+        $startTime = date('Y-m-d H:i:s', $jushuitan['startTime']);
+        $endTime = date('Y-m-d H:i:s', $jushuitan['endTime']);
+        $pageNum=(int)$jushuitan['pageNum'];
         $body = '{
             "startTime": "' . $startTime . '",
             "endTime": "' . $endTime . '",
@@ -102,13 +151,17 @@ class JuShuiTan extends Command
             "uid": "21943091",
             "upSendFailed": false,
             "isExceptAddress": "Except",
-            "pageNum": 1,
+            "pageNum": '.$pageNum.',
             "pageSize": 50,
             "searchType": 1,
             "orderStatus": [
                 "Sent"
             ]
         }';
+        
+        // "orderStatus": [
+        //         "Sent"
+        //     ]
         // "orderFrom":"PINDUODUO"
         //"trackNo":"@SF3278427215674"
         $request = new Request('POST', 'https://innerapi.scm121.com/api/inner/supOrder/getErpNormalOrders', $headers, $body);
@@ -187,7 +240,8 @@ class JuShuiTan extends Command
                 'pack_specs_id'        => $getPackSpecsFee['data']['id'],
                 'labor_cost_money'        => $getPackSpecsFee['data']['labor_cost_money'],
                 'one_surcharge_money'        => $getPackSpecsFee['one_surcharge_money'],
-                'two_surcharge_money'        => $getPackSpecsFee['two_surcharge_money']
+                'two_surcharge_money'        => $getPackSpecsFee['two_surcharge_money'],
+                'order_status'   => $item['disInnerOrderGoodsViewList'][0]['status'],
             ];
             
         }

+ 3 - 1
app/admin/service/JuShuiTanService.php

@@ -93,7 +93,9 @@ class JuShuiTanService {
                         'ship_date'     => $item['deliveryDate'],
                         'incubator'   => $getPackSpecsFee['pack_specs_type'],
                         'insulation_money'   => $getPackSpecsFee['surcharge_money'],
-                        'labor_cost_money'   => $getPackSpecsFee['data']['labor_cost_money']
+                        'labor_cost_money'   => $getPackSpecsFee['data']['labor_cost_money'],
+                        'order_status'   => $item['disInnerOrderGoodsViewList'][0]['status'],
+                        
                     ];
                 }
             }else{