<?php /** * Created by PhpStorm. * User: wuzhenke * Date: 2019/2/14 * Time: 10:03 */ namespace App\Jobs\Cron; use App\Models\Company; use App\Models\Jobs; use App\Repositories\CompanyRepository; use App\Repositories\JobsRepository; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; class ClearExpiredJobsJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { // } public function handle(JobsRepository $jobsRepository, CompanyRepository $companyRepository) { $condition = [ ['deadline','<', time()], ['audit','=',1], ['display','=',1], ['valid','=',1], ['deadline','!=', 0], //不需要0的 ]; $list = $jobsRepository->findWhere($condition); $job_id = []; $company_ids = []; if ($list->isNotEmpty()) { foreach ($list as $key => $val) { $job_id[] = $val['id']; $company_ids[]=$val['company_id']; } if (!empty($job_id)) { if (!$jobsRepository->closeJobs($job_id)) { Log::error('过期职位关闭失败!'); } Log::debug("职位过期:", $job_id); $condition = [['whereIn','id', $job_id]]; event_search_update(Jobs::class, $condition, 'update'); $company_condition = [['whereIn','id', $company_ids]]; event_search_update(Company::class, $company_condition, 'update'); } } } }