Browse Source

快递同步调整

hu hao 4 years ago
parent
commit
c2ab5edb4e

+ 2 - 2
app/Console/Commands/SyncOrderPackageLogisticRouteTask.php

@@ -46,8 +46,8 @@ class SyncOrderPackageLogisticRouteTask extends Command
         LogService::log(SyncOrderPackageLogisticRouteTask::class, "同步快递信息定时任务启动", '');
         ini_set('memory_limit', '2226M');
         $this->service = app('OrderPackageReceivedSyncService');
-        $this->service->syncLogisticRouteYTO();
-        $this->service->syncLogisticRouteByAliJiSu();
+//        $this->service->syncLogisticRouteYTO();
         $this->service->syncLogisticRoute();
+        $this->service->syncLogisticRouteByAliJiSu();
     }
 }

+ 3 - 0
app/Jobs/LogisticAliJiSuSync.php

@@ -13,6 +13,9 @@ use Illuminate\Queue\SerializesModels;
 
 class LogisticAliJiSuSync implements ShouldQueue
 {
+    public $tries = 2;
+    public $timeout = 10;
+
     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 
     /**

+ 12 - 30
app/Services/OrderPackageReceivedSyncService.php

@@ -31,7 +31,7 @@ class OrderPackageReceivedSyncService
         ini_set('memory_limit', '1024M');
         LogService::log(OrderPackageReceivedSyncService::class, "同步快递信息定时方法", '');
         $query = OrderPackage::query()
-            ->select(['logistic_number', 'order_id'])
+            ->select(['logistic_number', 'order_id','id'])
             ->with(['order' => function ($query) {
                 return $query->select(['id','logistic_id'])->with('logistic:id,name,code');
             }]);
@@ -75,13 +75,13 @@ class OrderPackageReceivedSyncService
                 }
             }
             //更新圆通
-//            if (array_key_exists('YTO', $logisticNumbers)) {
-//                $YTOLogisticNumbers = $logisticNumbers['YTO'];
-//                LogService::log(OrderPackageReceivedSyncService::class, "同步快递信息定时方法-YTO", $YTOLogisticNumbers);
-//                foreach ($YTOLogisticNumbers as $logistic_number) {
-//                    LogisticYTOSync::dispatch($logistic_number);
-//                }
-//            }
+            if (array_key_exists('YTO', $logisticNumbers)) {
+                $YTOLogisticNumbers = $logisticNumbers['YTO'];
+                LogService::log(OrderPackageReceivedSyncService::class, "同步快递信息定时方法-YTO", json_encode($YTOLogisticNumbers));
+                foreach ($YTOLogisticNumbers as $logistic_number) {
+                    if ($logistic_number)LogisticYTOSync::dispatch($logistic_number);
+                }
+            }
         });
     }
 
@@ -89,13 +89,13 @@ class OrderPackageReceivedSyncService
     {
         ini_set('max_execution_time', 2 * 60 * 60);
         $query = OrderPackage::query()
-            ->select(['logistic_number', 'order_id'])
+            ->select(['logistic_number', 'order_id','id'])
             ->whereIn('order_id',function ($query){
                 $query->from('orders')->selectRaw('id')->whereIn('logistic_id',function ($builder){
                     $builder->from('logistics')->selectRaw('id')->where('type','!=','物流')->whereNotIn('belong_company',['顺丰','中通','韵达','圆通','京东']);
                 });
             });
-        $query = $query->where('sent_at', '>=', now()->subDays(20))
+        $query = $query->where('sent_at', '>=', now()->subDays(config('api_logistic.querying_days')))
             ->whereNull('received_at');
         $query->chunkById(200, function ($orderPackages) {
             LogService::log(OrderPackageReceivedSyncService::class, "同步快递信息定时方法-阿里公用接口", json_encode($orderPackages));
@@ -108,13 +108,13 @@ class OrderPackageReceivedSyncService
     public function syncLogisticRouteJD(){
         ini_set('max_execution_time', 60);
         $query = OrderPackage::query()
-            ->select(['logistic_number', 'order_id'])
+            ->select(['logistic_number', 'order_id','id'])
             ->whereIn('order_id',function ($query){
                 $query->from('orders')->selectRaw('id')->whereIn('logistic_id',function ($builder){
                     $builder->from('logistics')->selectRaw('id')->where('type','!=','物流')->where('belong_company','京东');
                 });
             });
-        $query = $query->where('created_at', '>=', now()->subDays(20))
+        $query = $query->where('created_at', '>=', now()->subDays(config('api_logistic.querying_days')))
             ->whereNull('received_at')->where('logistic_number','like','JD%');
         $query->chunkById(200, function ($orderPackages) {
             LogService::log(OrderPackageReceivedSyncService::class, "同步快递信息定时方法-JD", json_encode($orderPackages));
@@ -123,24 +123,6 @@ class OrderPackageReceivedSyncService
             }
         });
     }
-    public function syncLogisticRouteYTO(){
-        ini_set('max_execution_time', 120);
-        $query = OrderPackage::query()
-            ->select(['logistic_number', 'order_id'])
-            ->whereIn('order_id',function ($query){
-                $query->from('orders')->selectRaw('id')->whereIn('logistic_id',function ($builder){
-                    $builder->from('logistics')->selectRaw('id')->where('type','!=','物流')->where('belong_company','圆通');
-                });
-            });
-        $query = $query->where('sent_at', '>=', now()->subDays(20))
-            ->whereNull('received_at');
-        $query->chunkById(1000, function ($orderPackages) {
-            LogService::log(OrderPackageReceivedSyncService::class, "同步快递信息定时方法-YTO", json_encode($orderPackages));
-            foreach ($orderPackages as $orderPackage){
-                if ($orderPackage && $orderPackage->logistic_number)LogisticYTOSync::dispatch($orderPackage->logistic_number);
-            }
-        });
-    }
     /**
      * 根据传递的承运商与快递单号更新快递信息
      * @param array $logisticNumbers 快递单号