Browse Source

[智价云] 医药城同步更新

public 1 tháng trước cách đây
mục cha
commit
95664c16bd

+ 1 - 1
.editorconfig

@@ -47,7 +47,7 @@ class Product extends Controller
         $request->scene('data_yycheng_sync_syncning')->validate();
         $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
         $admin_id   = request('access_token.uid', 0); //用户ID
-        $message_data = ['page' => '1', 'limit' => 1000, 'admin_id' => $admin_id, 'is_admin' => $is_admin];
+        $message_data = ['page' => '1', 'limit' => 1, 'admin_id' => $admin_id, 'is_admin' => $is_admin];
         YychengProductJobs::dispatch($message_data);
         // YychengProductJobs::dispatchSync($message_data);
         // 告知结果

+ 15 - 3
app/Http/Controllers/Manager/External/Company.php

@@ -9,11 +9,12 @@ use Illuminate\Foundation\Bus\Dispatchable;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Queue\SerializesModels;
 use App\Facades\Servers\Logs\Log;
-use App\Models\Manager\Collect\ScrapeTmpData as ScrapeTmpDataModel;//临时采集数据表
-use App\Models\Manager\Collect\ScrapeData as ScrapeDataModel;//采集数据表
+use App\Models\Manager\Collect\ScrapeTmpData as ScrapeTmpDataModel; //临时采集数据表
+use App\Models\Manager\Collect\ScrapeTmpData as ScrapeDataModel; //采集数据表
 use Illuminate\Support\Facades\Cache;
 use App\Models\Manager\CollectData\Yycheng\Store as YychengStoreModel;
 use App\Models\Manager\Citys as CitysModel;
+use App\Jobs\Manager\CollectData\Yycheng\YychengProductJobs;
 
 /**
  * 采集数据-医药城数据处理
@@ -51,7 +52,7 @@ class YychengProductDataJobs implements ShouldQueue
             $province_id_list = $CitysModel->get_province_id_list();
             $item = $this->message_data;
             $comStoreId = $item['comStoreId'];
-            if(!$comStoreId) return true;
+            if (!$comStoreId) return true;
             $comStoreId = explode('_', $comStoreId);
             $provider_id = $comStoreId[0];
             $store_data = Cache::get('admin:store_data_log:' . $provider_id);
@@ -126,6 +127,17 @@ class YychengProductDataJobs implements ShouldQueue
                     $ScrapeTmpData->save();
                 }
             }
+            $queue_page =  $item['queue_page']; //页码
+            $queue_now_limit =  $item['queue_now_limit']; //当前处理条数
+            $queue_limit =  $item['queue_limit']; //每页处理条数
+            $queue_total =  $item['queue_total']; //总条数
+            if ($queue_now_limit == $queue_limit) {
+                // //继续执行下一页
+                $message_data['page'] = $queue_page + 1;
+                $message_data['limit'] = $queue_limit;
+                $message_data['total'] = $queue_total;
+                YychengProductJobs::dispatch($message_data);
+            }
         } catch (\Exception $e) {
             Log::info('job_error', '采集数据-医药城数据处理队列失败', ['data' => $this->message_data, 'error' => $e->getMessage()]);
         }

+ 8 - 9
app/Jobs/Manager/CollectData/Yycheng/YychengProductJobs.php

@@ -65,17 +65,16 @@ class YychengProductJobs implements ShouldQueue
                 Log::info('job_info', '采集数据-医药城数据同步队列,执行完毕', ['data' => ['page' => $page, 'limit' => $limit, 'totle' => $totle_data], 'message' => '没有数据可同步']);
                 return true;
             }
-            $list_data = $list_config_data['data'];
+
             $total = $list_config_data['total'];
-            YychengStoreJobs::dispatch($list_data);
-            // YychengStoreJobs::dispatchSync($list_data);
-            Log::info('job_info', '采集数据-医药城数据同步队列日志', ['data' => ['page' => $page, 'limit' => $limit, 'totle' => $total]]);
+            $request_data['data'] = $list_config_data['data'];
+            $request_data['queue_page'] = $page;
+            $request_data['queue_limit'] = $limit;
+            $request_data['queue_total'] = $total;
+            YychengStoreJobs::dispatch($request_data);
+            // YychengStoreJobs::dispatchSync($request_data);
 
-            //继续执行下一页
-            $message_data['page'] = $page + 1;
-            $message_data['limit'] = $limit;
-            $message_data['total'] = $total;
-            $this->dispatch($message_data);
+            Log::info('job_info', '采集数据-医药城数据同步队列日志', ['data' => ['page' => $page, 'limit' => $limit, 'totle' => $total]]);
         } catch (\Exception $e) {
             Log::info('job_error', '采集数据-医药城数据同步队列失败', ['error' => $e->getMessage()]);
         }

+ 7 - 2
app/Jobs/Manager/CollectData/Yycheng/YychengStoreJobs.php

@@ -39,11 +39,16 @@ class YychengStoreJobs implements ShouldQueue
      */
     public function handle()
     {
-        
-        $list_data = $this->message_data;
+
+        $list_data = $this->message_data['data'];
         if (empty($list_data)) return true;
         try {
             foreach ($list_data as $key => $item) {
+
+                $item['queue_now_limit'] =  $key + 1;
+                $item['queue_page'] =  $this->message_data['queue_page'];
+                $item['queue_limit'] =  $this->message_data['queue_limit'];
+                $item['queue_total'] =  $this->message_data['queue_total'];
                 YychengProductDataJobs::dispatch($item);
                 // YychengProductDataJobs::dispatchSync($item);
             }

+ 0 - 0
app/Jobs/Manager/Process/LowPriceGoodsDataJobs.php