Bläddra i källkod

采集关键词

jun 2 månader sedan
förälder
incheckning
6610f740bb
2 ändrade filer med 355 tillägg och 342 borttagningar
  1. 171 170
      app/Console/Commands/CollectTaskAllocateCommand.php
  2. 184 172
      app/Console/Commands/CollectTaskCommand.php

+ 171 - 170
app/Console/Commands/CollectTaskAllocateCommand.php

@@ -1,170 +1,171 @@
-<?php
-
-namespace App\Console\Commands;
-
-use App\Facades\Servers\Logs\Log;
-use App\Models\CollectProduct;
-use App\Models\CollectEquipment;
-use App\Models\CollectTask;
-use App\Models\CollectTaskRecord;
-use App\Models\CollectTaskAllocate;
-use App\Models\CollectPlatformConfig;
-use Carbon\Carbon;
-use Illuminate\Console\Command;
-use Illuminate\Support\Facades\DB;
-
-class CollectTaskAllocateCommand extends Command
-{
-    protected $signature = 'collect-task-allocate';
-
-    protected $description = '定时分配采集任务设备';
-    public function __construct()
-    {
-        parent::__construct();
-    }
-    public function handle()
-    {
-        Log::info('collect-task-allocate','分配采集任务开始');
-        $time               = time();
-        $day = date("Y-m-d",strtotime("-1 day"));
-        $timestamp = strtotime($day);
-        $collectTaskList = CollectTask::query()
-            ->where('insert_time','>=',$timestamp)
-            ->whereIn('status',[0])
-            #->whereIn('allocate_status',[0,1])
-            ->orderBy('allocate_status', 'desc')
-            ->get()
-            ->toArray();
-        if(!$collectTaskList){
-            Log::info('collect-task-allocate','暂无待分配任务,分配结束:'.$timestamp);
-            return 0;
-        }
-        $result = $this->allocate($collectTaskList);
-        if ($result){
-            Log::info('collect-task-allocate','分配成功');
-        }
-        return $result;
-    }
-    public function allocate($collectTaskList)
-    {
-        $CollectTaskAllocateModel   = new CollectTaskAllocate();
-        $CollectEquipmentModel      = new CollectEquipment();
-        $CollectTaskModel           = new CollectTask();
-        Log::info('collect-task-allocate','分配采集任务开始');
-        foreach ($collectTaskList as $collectTask){
-            $page                   = 1;
-            $CollectPlatformConfigModel = new CollectPlatformConfig();
-            $platformConfig         = $CollectPlatformConfigModel->getOne($collectTask['platform']);
-            if (!$platformConfig){
-                Log::info('collect-task-allocate','暂无配置平台参数,分配结束');
-                continue;
-            }
-            //设备每次执行能采集页数
-            $pageNumber             = ceil((($platformConfig['duration']*$platformConfig['minute_size'])/$platformConfig['page_size']));
-            //获取任务已分配的最大页数
-            $maxPage               = CollectTaskAllocate::query()
-                ->where('collect_task_id','=',$collectTask['id'])
-                ->select(Db::raw('max(end_page) as max_page'))
-                ->first();
-            if ($maxPage){
-                $page               = $maxPage['max_page'] + 1;
-            }
-            //查询可用设备
-            $collectEquipmentList   = CollectEquipment::query()
-                ->join('collect_equipment_account','collect_equipment_account.collect_equipment_id','=','collect_equipment.id')
-                ->where([['collect_equipment.status','=',0],
-                    ['collect_equipment.task_status','=',0],
-                    ['collect_equipment_account.status','=',0],
-                    ['collect_equipment_account.platform','=',$collectTask['platform']],
-                    ['collect_equipment_account.region_id','=',$collectTask['region_id']],
-                ])
-                ->select('collect_equipment.*','collect_equipment_account.id as collect_equipment_account_id','collect_equipment_account.collect_region_id','collect_equipment_account.username','collect_equipment_account.password')
-                ->get()
-                ->toArray();
-            if (!$collectEquipmentList){
-                Log::info('collect-task-allocate','暂无可使用设备,分配结束');
-                continue;
-            }
-            //查询设备当日的使用次数
-            $collectEquipmentIds = array_column($collectEquipmentList,'id');
-            $collectEquipmentRecordCount = CollectTaskRecord::query()
-                ->whereIn('collect_equipment_id',$collectEquipmentIds)
-                ->where([['start_time','>=',strtotime(date('Y-m-d'))],
-                    ['start_time','<=',strtotime(date('Y-m-d',strtotime('+1 day')))],
-                    ['platform','=',$collectTask['platform']]])
-                ->groupBy('collect_equipment_id')
-                ->select('collect_equipment_id',DB::raw('count(*) as count'))
-                ->get()
-                ->toArray();
-            //重组使用次数,设备id作为键
-            if ($collectEquipmentRecordCount){
-                $collectEquipmentRecordCount = array_column($collectEquipmentRecordCount,'count','collect_equipment_id');
-            }
-            //分配设备数量
-            $allocateNumber = 0;
-            foreach ($collectEquipmentList as $collectEquipment){
-                if ($platformConfig){
-                    //查询设备最后执行时间
-                    $collectEquipmentRecord = CollectTaskRecord::query()->where([['collect_equipment_id','=',$collectEquipment['id']]])->select('end_time')->orderBy('end_time','desc')->first();
-                    if($collectEquipmentRecord){
-                        if (($platformConfig['rest_duration'] * 60) > (time()-$collectEquipmentRecord['end_time'])){
-                            continue;
-                        }
-                    }
-
-                    if (isset($collectEquipmentRecordCount[$collectEquipment['id']])){
-                        if ($platformConfig['day_number'] <= $collectEquipmentRecordCount[$collectEquipment['id']]){
-                            continue;
-                        }
-                    }
-                }
-                //分配设备
-                $start_page = $page;
-                $end_page = $page + $pageNumber - 1;
-                $data = [
-                    'collect_task_id'       => $collectTask['id'],
-                    'collect_equipment_id'  => $collectEquipment['id'],
-                    'collect_equipment_account_id'  => $collectEquipment['collect_equipment_account_id'],
-                    'collect_region_id'     => $collectEquipment['collect_region_id'],
-                    'company_id'            => $collectTask['company_id'],
-                    'platform'              => $collectTask['platform'],
-                    'product_name'          => $collectTask['product_name'],
-                    'product_specs'         => $collectTask['product_specs'],
-                    'product_brand'         => $collectTask['product_brand'],
-                    'sampling_cycle'        => $collectTask['sampling_cycle'],
-                    'sampling_start_time'   => $collectTask['sampling_start_time'],
-                    'sampling_end_time'     => $collectTask['sampling_end_time'],
-                    'minimum_order_quantity'=> $collectTask['minimum_order_quantity'],
-                    'count'                 => $platformConfig['page_size'] * $pageNumber,
-                    'start_page'            => $start_page,
-                    'end_page'              => $end_page,
-                    'status'                => 1,
-                    'duration'              => $platformConfig['duration'],
-                ];
-                $res = $CollectTaskAllocateModel->add($data);
-                if (!$res){
-                    Log::info('collect-task-allocate','添加采集任务分配失败');
-                }
-                //修改设备占用状态
-                $res = $CollectEquipmentModel->edit($collectEquipment['id'],['task_status'=>1]);
-                if (!$res){
-                    Log::info('collect-task-allocate','修改设备占用状态失败');
-                }
-                $allocateNumber++;
-                if ($allocateNumber >= ($collectTask['max_equipment_number'] - $collectTask['equipment_number'])){
-                    break;
-                }
-                $page = $end_page + 1;
-            }
-            //修改任务状态
-            $res = $CollectTaskModel->edit($collectTask['id'],['status'=>1,'allocate_status'=>1,'equipment_number'=>($allocateNumber+$collectTask['equipment_number'])]);
-            if (!$res){
-                Log::info('collect-task-allocate','修改任务状态失败');
-            }
-            Log::info('collect-task-allocate','分配成功');
-        }
-        Log::info('collect-task-allocate','分配结束');
-        return true;
-    }
-
-}
+<?php
+
+namespace App\Console\Commands;
+
+use App\Facades\Servers\Logs\Log;
+use App\Models\CollectProduct;
+use App\Models\CollectEquipment;
+use App\Models\CollectTask;
+use App\Models\CollectTaskRecord;
+use App\Models\CollectTaskAllocate;
+use App\Models\CollectPlatformConfig;
+use Carbon\Carbon;
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\DB;
+
+class CollectTaskAllocateCommand extends Command
+{
+    protected $signature = 'collect-task-allocate';
+
+    protected $description = '定时分配采集任务设备';
+    public function __construct()
+    {
+        parent::__construct();
+    }
+    public function handle()
+    {
+        Log::info('collect-task-allocate','分配采集任务开始');
+        $time               = time();
+        $day = date("Y-m-d",strtotime("-1 day"));
+        $timestamp = strtotime($day);
+        $collectTaskList = CollectTask::query()
+            ->where('insert_time','>=',$timestamp)
+            ->whereIn('status',[0])
+            #->whereIn('allocate_status',[0,1])
+            ->orderBy('allocate_status', 'desc')
+            ->get()
+            ->toArray();
+        if(!$collectTaskList){
+            Log::info('collect-task-allocate','暂无待分配任务,分配结束:'.$timestamp);
+            return 0;
+        }
+        $result = $this->allocate($collectTaskList);
+        if ($result){
+            Log::info('collect-task-allocate','分配成功');
+        }
+        return $result;
+    }
+    public function allocate($collectTaskList)
+    {
+        $CollectTaskAllocateModel   = new CollectTaskAllocate();
+        $CollectEquipmentModel      = new CollectEquipment();
+        $CollectTaskModel           = new CollectTask();
+        Log::info('collect-task-allocate','分配采集任务开始');
+        foreach ($collectTaskList as $collectTask){
+            $page                   = 1;
+            $CollectPlatformConfigModel = new CollectPlatformConfig();
+            $platformConfig         = $CollectPlatformConfigModel->getOne($collectTask['platform']);
+            if (!$platformConfig){
+                Log::info('collect-task-allocate','暂无配置平台参数,分配结束');
+                continue;
+            }
+            //设备每次执行能采集页数
+            $pageNumber             = ceil((($platformConfig['duration']*$platformConfig['minute_size'])/$platformConfig['page_size']));
+            //获取任务已分配的最大页数
+            $maxPage               = CollectTaskAllocate::query()
+                ->where('collect_task_id','=',$collectTask['id'])
+                ->select(Db::raw('max(end_page) as max_page'))
+                ->first();
+            if ($maxPage){
+                $page               = $maxPage['max_page'] + 1;
+            }
+            //查询可用设备
+            $collectEquipmentList   = CollectEquipment::query()
+                ->join('collect_equipment_account','collect_equipment_account.collect_equipment_id','=','collect_equipment.id')
+                ->where([['collect_equipment.status','=',0],
+                    ['collect_equipment.task_status','=',0],
+                    ['collect_equipment_account.status','=',0],
+                    ['collect_equipment_account.platform','=',$collectTask['platform']],
+                    ['collect_equipment_account.region_id','=',$collectTask['region_id']],
+                ])
+                ->select('collect_equipment.*','collect_equipment_account.id as collect_equipment_account_id','collect_equipment_account.collect_region_id','collect_equipment_account.username','collect_equipment_account.password')
+                ->get()
+                ->toArray();
+            if (!$collectEquipmentList){
+                Log::info('collect-task-allocate','暂无可使用设备,分配结束');
+                continue;
+            }
+            //查询设备当日的使用次数
+            $collectEquipmentIds = array_column($collectEquipmentList,'id');
+            $collectEquipmentRecordCount = CollectTaskRecord::query()
+                ->whereIn('collect_equipment_id',$collectEquipmentIds)
+                ->where([['start_time','>=',strtotime(date('Y-m-d'))],
+                    ['start_time','<=',strtotime(date('Y-m-d',strtotime('+1 day')))],
+                    ['platform','=',$collectTask['platform']]])
+                ->groupBy('collect_equipment_id')
+                ->select('collect_equipment_id',DB::raw('count(*) as count'))
+                ->get()
+                ->toArray();
+            //重组使用次数,设备id作为键
+            if ($collectEquipmentRecordCount){
+                $collectEquipmentRecordCount = array_column($collectEquipmentRecordCount,'count','collect_equipment_id');
+            }
+            //分配设备数量
+            $allocateNumber = 0;
+            foreach ($collectEquipmentList as $collectEquipment){
+                if ($platformConfig){
+                    //查询设备最后执行时间
+                    $collectEquipmentRecord = CollectTaskRecord::query()->where([['collect_equipment_id','=',$collectEquipment['id']]])->select('end_time')->orderBy('end_time','desc')->first();
+                    if($collectEquipmentRecord){
+                        if (($platformConfig['rest_duration'] * 60) > (time()-$collectEquipmentRecord['end_time'])){
+                            continue;
+                        }
+                    }
+
+                    if (isset($collectEquipmentRecordCount[$collectEquipment['id']])){
+                        if ($platformConfig['day_number'] <= $collectEquipmentRecordCount[$collectEquipment['id']]){
+                            continue;
+                        }
+                    }
+                }
+                //分配设备
+                $start_page = $page;
+                $end_page = $page + $pageNumber - 1;
+                $data = [
+                    'collect_task_id'       => $collectTask['id'],
+                    'collect_equipment_id'  => $collectEquipment['id'],
+                    'collect_equipment_account_id'  => $collectEquipment['collect_equipment_account_id'],
+                    'collect_region_id'     => $collectEquipment['collect_region_id'],
+                    'company_id'            => $collectTask['company_id'],
+                    'platform'              => $collectTask['platform'],
+                    'product_name'          => $collectTask['product_name'],
+                    'product_specs'         => $collectTask['product_specs'],
+                    'product_brand'         => $collectTask['product_brand'],
+                    'sampling_cycle'        => $collectTask['sampling_cycle'],
+                    'sampling_start_time'   => $collectTask['sampling_start_time'],
+                    'sampling_end_time'     => $collectTask['sampling_end_time'],
+                    'minimum_order_quantity'=> $collectTask['minimum_order_quantity'],
+                    'product_keyword'       => $collectTask['product_keyword'],
+                    'count'                 => $platformConfig['page_size'] * $pageNumber,
+                    'start_page'            => $start_page,
+                    'end_page'              => $end_page,
+                    'status'                => 1,
+                    'duration'              => $platformConfig['duration'],
+                ];
+                $res = $CollectTaskAllocateModel->add($data);
+                if (!$res){
+                    Log::info('collect-task-allocate','添加采集任务分配失败');
+                }
+                //修改设备占用状态
+                $res = $CollectEquipmentModel->edit($collectEquipment['id'],['task_status'=>1]);
+                if (!$res){
+                    Log::info('collect-task-allocate','修改设备占用状态失败');
+                }
+                $allocateNumber++;
+                if ($allocateNumber >= ($collectTask['max_equipment_number'] - $collectTask['equipment_number'])){
+                    break;
+                }
+                $page = $end_page + 1;
+            }
+            //修改任务状态
+            $res = $CollectTaskModel->edit($collectTask['id'],['status'=>1,'allocate_status'=>1,'equipment_number'=>($allocateNumber+$collectTask['equipment_number'])]);
+            if (!$res){
+                Log::info('collect-task-allocate','修改任务状态失败');
+            }
+            Log::info('collect-task-allocate','分配成功');
+        }
+        Log::info('collect-task-allocate','分配结束');
+        return true;
+    }
+
+}

+ 184 - 172
app/Console/Commands/CollectTaskCommand.php

@@ -1,172 +1,184 @@
-<?php
-
-namespace App\Console\Commands;
-
-use App\Facades\Servers\Logs\Log;
-use App\Models\CollectProduct;
-use App\Models\CollectEquipment;
-use App\Models\CollectTask;
-use App\Models\CollectTaskAllocate;
-use App\Models\CollectRegion;
-use Carbon\Carbon;
-use Illuminate\Console\Command;
-
-class CollectTaskCommand extends Command
-{
-    protected $signature = 'collect-task';
-
-    protected $description = '定时分配采集任务设备';
-    public function __construct()
-    {
-        parent::__construct();
-    }
-    public function handle()
-    {
-        Log::info('collect-task','分配采集任务开始');
-        $CollectTaskModel   = new CollectTask();
-        $endTime            = strtotime(date('Y-m-d',time())) + 86400;
-        $time               = time();
-        $week               = date('w');
-        $map                = [
-            ['status','=',0],
-            ['sampling_start_time','<=',$time],
-        ];
-        $collectProductList = CollectProduct::query()
-            ->where($map)
-            ->where(function ($query) use ($time) {
-                $query->where('sampling_end_time', '>=', $time)
-                    ->orWhere('sampling_end_time', 0);
-            })
-            ->get()
-            ->toArray();
-        if ($collectProductList){
-            $region         =   [];
-            $region = CollectRegion::query()->value('id');
-            foreach ($collectProductList as $collectProduct){
-                if ($collectProduct['sampling_cycle']){
-                    $weekArray = explode(',',$collectProduct['sampling_cycle']);
-                    if (!in_array($week,$weekArray)){
-                        continue;
-                    }
-                    //查询任务最新执行时间
-                    $collectTask = $CollectTaskModel::query()->where([['collect_product_id','=',$collectProduct['id']]])->select('insert_time')->orderBy('insert_time','desc')->first();
-                    if($collectTask){
-                        if (date('Y-m-d',time()) == date('Y-m-d',$collectTask['insert_time'])){
-                            continue;
-                        }
-                    }
-                }
-                if (!$collectProduct['platform']){
-                    continue;
-                }
-                $data           =  [];
-                $platforms      =   explode(',',$collectProduct['platform']);
-                if ($collectProduct['round_number'] > 1 && $collectProduct['round_number_config']){
-                    $data = $this->collectTask($collectProduct,$platforms,$region,$collectProduct['round_number_config']);
-                }else{
-                    $data =  $this->collectTask($collectProduct,$platforms,$region);
-                }
-
-                //添加到任务
-                $res = $CollectTaskModel::query()->insert($data);
-                if (!$res){
-                    Log::info('collect-task','添加采集任务失败');
-                }
-            }
-        }else{
-            Log::info('collect-task','暂无采集任务');
-        }
-        Log::info('collect-task','分配采集任务结束');
-        return 0;
-    }
-    public function collectTask($collectProduct,$platforms,$region,$roundNumberConfig = null){
-        $data = [];
-        if ($roundNumberConfig){
-            $roundNumberConfig = json_decode($roundNumberConfig,true);
-            foreach ($roundNumberConfig as $roundNumber){
-                foreach ($platforms as $platform){
-                    if ($collectProduct['region'] > 0 && $region){
-                        foreach ($region as $regionId){
-                            $data[]           = [
-                                'collect_product_id'    => $collectProduct['id'],
-                                'platform'              => $platform,
-                                'product_name'          => $collectProduct['product_name'] ?? '',
-                                'product_specs'         => $collectProduct['product_specs'] ?? '',
-                                'product_brand'         => $collectProduct['product_brand'] ?? '',
-                                'company_id'            => $collectProduct['company_id'],
-                                'sampling_cycle'        => $collectProduct['sampling_cycle'],
-                                'sampling_start_time'   => $collectProduct['sampling_start_time'],
-                                'sampling_end_time'     => $collectProduct['sampling_end_time'],
-                                'max_equipment_number'  => 1,
-                                'status'                => 0,
-                                'insert_time'           => time(),
-                                'region_id'             => $regionId,
-                                'round_start_time'             => $roundNumber['round_start_time'],
-                                'round_end_time'             => $roundNumber['round_end_time'],
-                            ];
-                        }
-                    }else{
-                        $data[]           = [
-                            'collect_product_id'    => $collectProduct['id'],
-                            'platform'              => $platform,
-                            'product_name'          => $collectProduct['product_name'] ?? '',
-                            'product_specs'         => $collectProduct['product_specs'] ?? '',
-                            'product_brand'         => $collectProduct['product_brand'] ?? '',
-                            'company_id'            => $collectProduct['company_id'],
-                            'sampling_cycle'        => $collectProduct['sampling_cycle'],
-                            'sampling_start_time'   => $collectProduct['sampling_start_time'],
-                            'sampling_end_time'     => $collectProduct['sampling_end_time'],
-                            'max_equipment_number'  => 1,
-                            'status'                => 0,
-                            'insert_time'           => time(),
-                            'region_id'             => $collectProduct['region'],
-                            'round_start_time'             => $roundNumber['round_start_time'],
-                            'round_end_time'             => $roundNumber['round_end_time'],
-                        ];
-                    }
-
-                }
-            }
-        }else{
-            foreach ($platforms as $platform){
-                if ($collectProduct['region'] > 0 && $region){
-                    foreach ($region as $regionId){
-                        $data[]           = [
-                            'collect_product_id'    => $collectProduct['id'],
-                            'platform'              => $platform,
-                            'product_name'          => $collectProduct['product_name'] ?? '',
-                            'product_specs'         => $collectProduct['product_specs'] ?? '',
-                            'product_brand'         => $collectProduct['product_brand'] ?? '',
-                            'company_id'            => $collectProduct['company_id'],
-                            'sampling_cycle'        => $collectProduct['sampling_cycle'],
-                            'sampling_start_time'   => $collectProduct['sampling_start_time'],
-                            'sampling_end_time'     => $collectProduct['sampling_end_time'],
-                            'max_equipment_number'  => 1,
-                            'status'                => 0,
-                            'insert_time'           => time(),
-                            'region_id'             => $regionId,
-                        ];
-                    }
-                }else{
-                    $data[]           = [
-                        'collect_product_id'    => $collectProduct['id'],
-                        'platform'              => $platform,
-                        'product_name'          => $collectProduct['product_name'] ?? '',
-                        'product_specs'         => $collectProduct['product_specs'] ?? '',
-                        'product_brand'         => $collectProduct['product_brand'] ?? '',
-                        'company_id'            => $collectProduct['company_id'],
-                        'sampling_cycle'        => $collectProduct['sampling_cycle'],
-                        'sampling_start_time'   => $collectProduct['sampling_start_time'],
-                        'sampling_end_time'     => $collectProduct['sampling_end_time'],
-                        'max_equipment_number'  => 1,
-                        'status'                => 0,
-                        'insert_time'           => time(),
-                        'region_id'             => $collectProduct['region'],
-                    ];
-                }
-
-            }
-        }
-        return $data;
-    }
-}
+<?php
+
+namespace App\Console\Commands;
+
+use App\Facades\Servers\Logs\Log;
+use App\Models\CollectProduct;
+use App\Models\CollectEquipment;
+use App\Models\CollectTask;
+use App\Models\CollectTaskAllocate;
+use App\Models\CollectRegion;
+use Carbon\Carbon;
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\DB;
+
+class CollectTaskCommand extends Command
+{
+    protected $signature = 'collect-task';
+
+    protected $description = '定时分配采集任务设备';
+    public function __construct()
+    {
+        parent::__construct();
+    }
+    public function handle()
+    {
+        Log::info('collect-task','分配采集任务开始');
+        $CollectTaskModel   = new CollectTask();
+        $endTime            = strtotime(date('Y-m-d',time())) + 86400;
+        $time               = time();
+        $week               = date('w');
+        if ($week == 0){
+            $week = 7;
+        }
+        $map                = [
+            ['status','=',0],
+            ['sampling_start_time','<=',$time],
+        ];
+        $collectProductList = CollectProduct::query()
+            ->leftJoin('collect_product_keyword','collect_product.id','=','collect_product_keyword.collect_product_id')
+            ->where($map)
+            ->where(function ($query) use ($time) {
+                $query->where('collect_product.sampling_end_time', '>=', $time)
+                    ->orWhere('collect_product.sampling_end_time', 0);
+            })
+            ->select(
+                'collect_product.*',
+                DB::raw('GROUP_CONCAT(retrieve_collect_product_keyword.keyword SEPARATOR ",") as product_keyword')
+            )
+            ->groupBy('collect_product.id')
+            ->get()
+            ->toArray();
+        if ($collectProductList){
+            $region         =   [];
+            $region = CollectRegion::query()->value('id');
+            foreach ($collectProductList as $collectProduct){
+                if ($collectProduct['sampling_cycle']){
+                    $weekArray = explode(',',$collectProduct['sampling_cycle']);
+                    if (!in_array($week,$weekArray)){
+                        continue;
+                    }
+                    //查询任务最新执行时间
+                    $collectTask = $CollectTaskModel::query()->where([['collect_product_id','=',$collectProduct['id']]])->select('insert_time')->orderBy('insert_time','desc')->first();
+                    if($collectTask){
+                        if (date('Y-m-d',time()) == date('Y-m-d',$collectTask['insert_time'])){
+                            continue;
+                        }
+                    }
+                }
+                if (!$collectProduct['platform']){
+                    continue;
+                }
+                $data           =  [];
+                $platforms      =   explode(',',$collectProduct['platform']);
+                if ($collectProduct['round_number'] > 1 && $collectProduct['round_number_config']){
+                    $data = $this->collectTask($collectProduct,$platforms,$region,$collectProduct['round_number_config']);
+                }else{
+                    $data =  $this->collectTask($collectProduct,$platforms,$region);
+                }
+
+                //添加到任务
+                $res = $CollectTaskModel::query()->insert($data);
+                if (!$res){
+                    Log::info('collect-task','添加采集任务失败');
+                }
+            }
+        }else{
+            Log::info('collect-task','暂无采集任务');
+        }
+        Log::info('collect-task','分配采集任务结束');
+        return 0;
+    }
+    public function collectTask($collectProduct,$platforms,$region,$roundNumberConfig = null){
+        $data = [];
+        if ($roundNumberConfig){
+            $roundNumberConfig = json_decode($roundNumberConfig,true);
+            foreach ($roundNumberConfig as $roundNumber){
+                foreach ($platforms as $platform){
+                    if ($collectProduct['region'] > 0 && $region){
+                        foreach ($region as $regionId){
+                            $data[]           = [
+                                'collect_product_id'    => $collectProduct['id'],
+                                'platform'              => $platform,
+                                'product_name'          => $collectProduct['product_name'] ?? '',
+                                'product_specs'         => $collectProduct['product_specs'] ?? '',
+                                'product_brand'         => $collectProduct['product_brand'] ?? '',
+                                'company_id'            => $collectProduct['company_id'],
+                                'sampling_cycle'        => $collectProduct['sampling_cycle'],
+                                'sampling_start_time'   => $collectProduct['sampling_start_time'],
+                                'sampling_end_time'     => $collectProduct['sampling_end_time'],
+                                'max_equipment_number'  => 1,
+                                'status'                => 0,
+                                'insert_time'           => time(),
+                                'region_id'             => $regionId,
+                                'round_start_time'             => $roundNumber['round_start_time'],
+                                'round_end_time'             => $roundNumber['round_end_time'],
+                            ];
+                        }
+                    }else{
+                        $data[]           = [
+                            'collect_product_id'    => $collectProduct['id'],
+                            'platform'              => $platform,
+                            'product_name'          => $collectProduct['product_name'] ?? '',
+                            'product_specs'         => $collectProduct['product_specs'] ?? '',
+                            'product_brand'         => $collectProduct['product_brand'] ?? '',
+                            'company_id'            => $collectProduct['company_id'],
+                            'sampling_cycle'        => $collectProduct['sampling_cycle'],
+                            'sampling_start_time'   => $collectProduct['sampling_start_time'],
+                            'sampling_end_time'     => $collectProduct['sampling_end_time'],
+                            'max_equipment_number'  => 1,
+                            'status'                => 0,
+                            'insert_time'           => time(),
+                            'region_id'             => $collectProduct['region'],
+                            'round_start_time'             => $roundNumber['round_start_time'],
+                            'round_end_time'             => $roundNumber['round_end_time'],
+                        ];
+                    }
+
+                }
+            }
+        }else{
+            foreach ($platforms as $platform){
+                if ($collectProduct['region'] > 0 && $region){
+                    foreach ($region as $regionId){
+                        $data[]           = [
+                            'collect_product_id'    => $collectProduct['id'],
+                            'platform'              => $platform,
+                            'product_name'          => $collectProduct['product_name'] ?? '',
+                            'product_specs'         => $collectProduct['product_specs'] ?? '',
+                            'product_brand'         => $collectProduct['product_brand'] ?? '',
+                            'company_id'            => $collectProduct['company_id'],
+                            'sampling_cycle'        => $collectProduct['sampling_cycle'],
+                            'sampling_start_time'   => $collectProduct['sampling_start_time'],
+                            'sampling_end_time'     => $collectProduct['sampling_end_time'],
+                            'product_keyword'       => $collectProduct['product_keyword'],
+                            'max_equipment_number'  => 1,
+                            'status'                => 0,
+                            'insert_time'           => time(),
+                            'region_id'             => $regionId,
+                        ];
+                    }
+                }else{
+                    $data[]           = [
+                        'collect_product_id'    => $collectProduct['id'],
+                        'platform'              => $platform,
+                        'product_name'          => $collectProduct['product_name'] ?? '',
+                        'product_specs'         => $collectProduct['product_specs'] ?? '',
+                        'product_brand'         => $collectProduct['product_brand'] ?? '',
+                        'company_id'            => $collectProduct['company_id'],
+                        'sampling_cycle'        => $collectProduct['sampling_cycle'],
+                        'sampling_start_time'   => $collectProduct['sampling_start_time'],
+                        'sampling_end_time'     => $collectProduct['sampling_end_time'],
+                        'product_keyword'       => $collectProduct['product_keyword'],
+                        'max_equipment_number'  => 1,
+                        'status'                => 0,
+                        'insert_time'           => time(),
+                        'region_id'             => $collectProduct['region'],
+                    ];
+                }
+
+            }
+        }
+        return $data;
+    }
+}