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(); } } } }