ClearExpiredJobsJob.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wuzhenke
  5. * Date: 2019/2/14
  6. * Time: 10:03
  7. */
  8. namespace App\Jobs\Cron;
  9. use App\Models\Company;
  10. use App\Models\Jobs;
  11. use App\Repositories\CompanyRepository;
  12. use App\Repositories\JobsRepository;
  13. use Illuminate\Bus\Queueable;
  14. use Illuminate\Contracts\Queue\ShouldQueue;
  15. use Illuminate\Foundation\Bus\Dispatchable;
  16. use Illuminate\Queue\InteractsWithQueue;
  17. use Illuminate\Queue\SerializesModels;
  18. use Illuminate\Support\Facades\DB;
  19. use Illuminate\Support\Facades\Log;
  20. class ClearExpiredJobsJob implements ShouldQueue
  21. {
  22. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  23. /**
  24. * Create a new job instance.
  25. *
  26. * @return void
  27. */
  28. public function __construct()
  29. {
  30. //
  31. }
  32. public function handle(JobsRepository $jobsRepository, CompanyRepository $companyRepository)
  33. {
  34. $condition = [
  35. ['deadline','<', time()],
  36. ['audit','=',1],
  37. ['display','=',1],
  38. ['valid','=',1],
  39. ['deadline','!=', 0], //不需要0的
  40. ];
  41. $list = $jobsRepository->findWhere($condition);
  42. $job_id = [];
  43. $company_ids = [];
  44. if ($list->isNotEmpty()) {
  45. foreach ($list as $key => $val) {
  46. $job_id[] = $val['id'];
  47. $company_ids[]=$val['company_id'];
  48. }
  49. if (!empty($job_id)) {
  50. if (!$jobsRepository->closeJobs($job_id)) {
  51. Log::error('过期职位关闭失败!');
  52. }
  53. Log::debug("职位过期:", $job_id);
  54. $condition = [['whereIn','id', $job_id]];
  55. event_search_update(Jobs::class, $condition, 'update');
  56. $company_condition = [['whereIn','id', $company_ids]];
  57. event_search_update(Company::class, $company_condition, 'update');
  58. }
  59. }
  60. }
  61. }