message_data = $message_data; } /** * Execute the job. * * @return void */ public function handle() { $ViolationProductModel = new ViolationProductModel(); $company_id = $this->message_data['company_id']; $map_one = []; $map_one[] = ['process_violation_product.company_id', '=', $company_id]; $map_one[] = ['process_violation_product.online_posting_count', '>', 0]; $map_two = []; $map_two[] = ['process_violation_product.company_id', '=', $company_id]; $map_two[] = ['process_violation_product.continuous_listing_count', '>', 0]; $page = isset($this->message_data['page']) ? $this->message_data['page'] : 1; $limit = isset($this->message_data['limit']) ? $this->message_data['limit'] : 10; DB::beginTransaction(); try { $filed =['process_violation_product.*','scrape_data.collect_config_info']; $result = $ViolationProductModel->leftJoin('scrape_data', 'process_violation_product.source_id', '=', 'scrape_data.id') ->Orwhere($map_one)->Orwhere($map_two)->orderBy('process_violation_product.scrape_date', 'asc')->paginate($limit,$filed, 'page', $page)->toarray(); $select_product_datas = $result['data']; $last_page = $result['last_page']; if (empty($select_product_datas)) { return true; } else { if ($page < $last_page) { //继续执行下一页 $this->message_data['page'] = $page + 1; $this->message_data['limit'] = $limit; ViolationProductOnlineStatisticsjobs::dispatch($this->message_data); } foreach ($result['data'] as $key => $product_data) { $update_data = []; $select_data = $ViolationProductModel->handleCountData($product_data); if(isset($select_data['online_posting_count']) && $select_data['online_posting_count'] > 1){ $update_data['online_posting_count'] = $select_data['online_posting_count']; //累计挂网次数 } if(isset($select_data['continuous_listing_count']) && $select_data['continuous_listing_count'] > 1){ $update_data['continuous_listing_count'] = $select_data['continuous_listing_count'];//连续挂网次数 } if (!empty($update_data) && count($update_data) > 0) { $ViolationProductModel->where('id', $product_data['id'])->update($update_data); } } } DB::commit(); // 成功处理... } catch (\Exception $e) { DB::rollBack(); Log::info('job_error', '数据回填-禁止商品挂网统计数据回填队列失败', ['data' => $this->message_data, 'error' => $e->getMessage()]); } } public function failed(\Throwable $exception) { Log::info('job_error', '数据回填-禁止商品挂网统计数据回填队列完全失败', ['data' => $this->message_data, 'error' => $exception->getMessage()]); } }