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(collect_product_keyword.keyword SEPARATOR ", ") as product_keyword') ) ->groupBy('collect_product.id') ->get() ->toArray(); if ($collectProductList){ foreach ($collectProductList as $collectProduct){ if ($collectProduct['sampling_cycle']){ //查询任务最新执行时间 $collectTask = $CollectTaskModel::query()->where([['collect_product_id','=',$collectProduct['id']]])->select('insert_time')->orderBy('insert_time','desc')->first(); if($collectTask){ if (($collectProduct['sampling_cycle']*86400) > ($endTime - $collectTask['insert_time'])){ continue; } } } if (!$collectProduct['platform']){ continue; } $platforms = explode(',',$collectProduct['platform']); $data = []; foreach ($platforms as $platform){ $data[] = [ 'collect_product_id' => $collectProduct['id'], 'platform' => $platform, 'product_name' => $collectProduct['product_name'] ?? '', 'product_specs' => $collectProduct['product_specs'] ?? '', 'product_brand' => $collectProduct['product_brand'] ?? '', 'product_keyword' => $collectProduct['product_keyword'] ?? '', 'company_id' => $collectProduct['company_id'], 'max_equipment_number' => 1, 'status' => 1, 'insert_time' => time(), ]; } //添加到任务 $res = $CollectTaskModel::query()->insert($data); if (!$res){ Log::info('collect-task','添加采集任务失败'); } } }else{ Log::info('collect-task','暂无采集任务'); } Log::info('collect-task','分配采集任务结束'); return 0; } }