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

【智价云】 药师帮数据写入更新

tangyuanwang 1 месяц назад
Родитель
Сommit
c8d986aeb4

+ 2 - 2
app/Http/Controllers/Manager/CollectSync/Product.php

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Manager\CollectSync;
 
 use App\Http\Controllers\Controller;
 use App\Http\Requests\Manager\CollectSync\Product as Request;
-use App\Jobs\Manager\CollectData\YsbangProductJobs;
+use App\Jobs\Manager\CollectData\Ysbang\YsbangProductJobs;
 
 /**
  * 采集数据同步
@@ -27,7 +27,7 @@ class Product extends Controller
         $request->scene('data_cleadata_ysbang_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' => 50, 'admin_id' => $admin_id, 'is_admin' => $is_admin];
         YsbangProductJobs::dispatch($message_data);
         // YsbangProductJobs::dispatchSync($message_data);
         // 告知结果

+ 9 - 10
app/Jobs/Manager/CollectData/YsbangProductDataJobs.php → app/Jobs/Manager/CollectData/Ysbang/YsbangProductDataJobs.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Jobs\Manager\CollectData;
+namespace App\Jobs\Manager\CollectData\Ysbang;
 
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldBeUnique;
@@ -9,9 +9,10 @@ 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\ScrapeTmpData as ScrapeTmpDataModel;//临时采集数据表
+use App\Models\manager\Collect\ScrapeData as ScrapeDataModel;//采集数据表
 use Illuminate\Support\Facades\Cache;
-use App\Models\Manager\Ysbang\Store as YsbangStoreModel;
+use App\Models\Manager\CollectData\Ysbang\Store as YsbangStoreModel;
 use App\Models\Manager\Citys as CitysModel;
 
 /**
@@ -63,7 +64,7 @@ class YsbangProductDataJobs implements ShouldQueue
                 $province_name = trim(str_replace('市', '', $province_name));
             }
 
-            $ScrapeTmpDataModel = new ScrapeTmpDataModel();
+            $ScrapeDataModel = new ScrapeDataModel();
             $where_data = [
                 'platform_id' => '8', //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药师帮
                 'province_id' => isset($province_id_list[$province_name]) ? $province_id_list[$province_name]['id'] : 0, //省份id
@@ -78,21 +79,19 @@ class YsbangProductDataJobs implements ShouldQueue
                 'link_url' => $item['url'], //链接地址
                 'store_name' => $item['provider_name'], //店铺名称
                 'company_name' => $item['manufacturer'], //公司名称
-                'qualification_number' => '', //资质证书号
+                'qualification_number' => isset($store_data['unified_code']) ? $store_data['unified_code'] : '', //营业执照号码
                 'scrape_date' => date('Y-m-d H:i:s', $item['real_crawler_time']), //采集日期
                 'number' => '1', //盒数
-                'insert_time' => date('Y-m-d H:i:s', time()),
             ];
             //校验$where_data 数据下是否存在空值的情况,如果存在跳过写入
             foreach ($where_data as $key => $value) {
                 //如果字段名称不在范围内,才去校验值是否为空
                 if (!in_array($key, ['qualification_number']) && empty($value)) {
-                    Log::info('job_info', '采集数据-药师帮数据处理队列跳过', ['data' => $this->message_data, 'error' => "{$key}字段值为空"]);
                     return true;
                 }
             }
             //查询是否存在记录
-            $ScrapeTmpData = $ScrapeTmpDataModel->where($where_data)->first();
+            $ScrapeTmpData = $ScrapeDataModel->where($where_data)->first();
             if (empty($ScrapeTmpData)) {
                 $insert_data = [
                     'platform_id' => '8', //平台0=全部,1=淘宝,2=京东,3=拼多多,4=美团,5=药师帮,6=1药城,7=药久久,8=药师帮
@@ -109,13 +108,13 @@ class YsbangProductDataJobs implements ShouldQueue
                     'link_url' => $item['url'], //链接地址
                     'store_name' => $item['provider_name'], //店铺名称
                     'company_name' => $item['manufacturer'], //公司名称
-                    'qualification_number' => '', //资质证书号
+                    'qualification_number' => isset($store_data['unified_code']) ? $store_data['unified_code'] : '', //营业执照号码
                     'scrape_date' => date('Y-m-d H:i:s', $item['real_crawler_time']), //采集日期
                     'min_price' => round($item['minPrice'] / 100, 2), //最低价格
                     'number' => '1', //盒数
                     'insert_time' => date('Y-m-d H:i:s', time()),
                 ];
-                $ScrapeTmpDataModel->insert($insert_data);
+                $ScrapeDataModel->insert($insert_data);
             } else {
                 //如果存在且价格低于采集价格,则更新价格
                 if ($ScrapeTmpData->min_price > $this->message_data['min_price']) {

+ 8 - 8
app/Jobs/Manager/CollectData/YsbangProductJobs.php → app/Jobs/Manager/CollectData/Ysbang/YsbangProductJobs.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Jobs\Manager\CollectData;
+namespace App\Jobs\Manager\CollectData\Ysbang;
 
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldBeUnique;
@@ -9,8 +9,8 @@ use Illuminate\Foundation\Bus\Dispatchable;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Queue\SerializesModels;
 use App\Facades\Servers\Logs\Log;
-use App\Models\Manager\Ysbang\Product as YsbangProductModel;
-use App\Jobs\Manager\CollectData\YsbangStoreJobs;
+use App\Models\Manager\CollectData\Ysbang\Product as YsbangProductModel;
+use App\Jobs\Manager\CollectData\Ysbang\YsbangStoreJobs;
 
 /**
  * 采集数据-药师帮数据同步
@@ -69,12 +69,12 @@ class YsbangProductJobs implements ShouldQueue
             $total = $list_config_data['total'];
             YsbangStoreJobs::dispatch($list_data);
             // YsbangStoreJobs::dispatchSync($list_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]]);
+            //继续执行下一页
+            // $message_data['page'] = $page + 1;
+            // $message_data['limit'] = $limit;
+            // $message_data['total'] = $total;
+            // $this->dispatch($message_data);
         } catch (\Exception $e) {
             Log::info('job_error', '采集数据-药师帮数据同步队列失败', ['error' => $e->getMessage()]);
         }

+ 3 - 4
app/Jobs/Manager/CollectData/YsbangStoreJobs.php → app/Jobs/Manager/CollectData/Ysbang/YsbangStoreJobs.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Jobs\Manager\CollectData;
+namespace App\Jobs\Manager\CollectData\Ysbang;
 
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldBeUnique;
@@ -9,8 +9,7 @@ use Illuminate\Foundation\Bus\Dispatchable;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Queue\SerializesModels;
 use App\Facades\Servers\Logs\Log;
-use App\Models\Manager\Ysbang\Store as YsbangStoreModel;
-use App\Jobs\Manager\CollectData\YsbangProductDataJobs;
+use App\Jobs\Manager\CollectData\Ysbang\YsbangProductDataJobs;
 
 /**
  * 采集数据-药师帮店铺数据
@@ -40,7 +39,7 @@ class YsbangStoreJobs implements ShouldQueue
      */
     public function handle()
     {
-        $YsbangStoreModel = new YsbangStoreModel();
+        
         $list_data = $this->message_data;
         if (empty($list_data)) return true;
         try {

+ 2 - 2
app/Models/Manager/Ysbang/Product.php → app/Models/Manager/CollectData/Ysbang/Product.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Models\Manager\Ysbang;
+namespace App\Models\Manager\CollectData\Ysbang;
 
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
@@ -15,7 +15,7 @@ class Product extends Model
 {
     use HasFactory;
     // 与模型关联的表名
-    protected $table = 'drug';
+    protected $table = 'ysbang_drug';
     // 是否主动维护时间戳
     public $timestamps = false;
     protected   $connection = 'ysbang';

+ 2 - 2
app/Models/Manager/Ysbang/Store.php → app/Models/Manager/CollectData/Ysbang/Store.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Models\Manager\Ysbang;
+namespace App\Models\Manager\CollectData\Ysbang;
 
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
@@ -15,7 +15,7 @@ class Store extends Model
 {
     use HasFactory;
     // 与模型关联的表名
-    protected $table = 'provider';
+    protected $table = 'ysbang_provider';
     // 是否主动维护时间戳
     public $timestamps = false;
     protected   $connection = 'ysbang';

+ 1 - 1
config/database.php

@@ -72,7 +72,7 @@ return [
             'password' => env('DB_YSBANG_PASSWORD', '123456'),
             'charset' => 'utf8mb4',
             'collation' => 'utf8mb4_unicode_ci',
-            'prefix' => env('DB_YSBANG_PREFIX', 'ysbang_'),
+            'prefix' => env('DB_YSBANG_PREFIX', ''),
             'prefix_indexes' => true,
             'strict' => true,
             'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',