| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: wuzhenke
 
-  * Date: 2019/2/14
 
-  * Time: 13:39
 
-  */
 
- namespace App\Jobs\Cron;
 
- use App\Models\Jobs;
 
- use App\Repositories\JobsRepository;
 
- use App\Repositories\PromotionRepository;
 
- 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;
 
- use mysql_xdevapi\Exception;
 
- class ClearPromotionJob implements ShouldQueue
 
- {
 
-     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 
-     /**
 
-      * ClearPromotionJob constructor.
 
-      */
 
-     public function __construct()
 
-     {
 
-     }
 
-     public function handle(PromotionRepository $promotionRepository, JobsRepository $jobsRepository)
 
-     {
 
-         //职位推广
 
-         $condition[] = ['endtime','<',time()];
 
-         $list = $promotionRepository->findWhere($condition);
 
-         if ($list->isNotEmpty()) {
 
-             $stick_arr = [];
 
-             $emergency_arr = [];
 
-             foreach ($list as $key => $val) {
 
-                 if ($val['ptype'] ==1) {
 
-                     $stick_arr[] = $val['jobid'];
 
-                 } else {
 
-                     $emergency_arr[] = $val['jobid'];
 
-                 }
 
-             }
 
-             //使用事务原因是,职位的状态没改变,推广的却删掉了,不好排查
 
-             DB::beginTransaction();
 
-             try{
 
-                 if ($stick_arr) {
 
-                     if (!$jobsRepository->modifyData($stick_arr, ['stick'=>0,'stime'=>0])) {
 
-                         Log::error('清除过期职位置顶失败'.json_encode($stick_arr));
 
-                         throw new \Exception("error");
 
-                     }
 
-                     foreach ($stick_arr as $key => $val) {
 
-                         event_search_update(Jobs::class, (string)$val, 'update');
 
-                     }
 
-                 }
 
-                 if ($emergency_arr) {
 
-                     if (!$jobsRepository->modifyData($emergency_arr, ['emergency'=>0])) {
 
-                         Log::error('清除过期职位紧急失败'.json_encode($emergency_arr));
 
-                         throw new \Exception("");
 
-                     }
 
-                     foreach ($emergency_arr as $key => $val) {
 
-                         event_search_update(Jobs::class, (string)$val, 'update');
 
-                     }
 
-                 }
 
-                 if (!$promotionRepository->deleteWhere($condition)) {
 
-                     Log::error('清除职位推广失败'.json_encode($condition));
 
-                     throw new \Exception("");
 
-                 }
 
-                 DB::commit();
 
-             }catch (\Exception $exception){
 
-                 DB::rollback();
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |