logger = $logger; } public function configure() { parent::configure(); $this->setDescription('结束订单并处理相关记录'); } public function handle() { // 获取需要处理的订单ID列表 // $currentTime = time(); $currentTime = date('Y-m-d H:i:s'); $orderIds = Order::where('status', 6) ->where('edtime', '<=', $currentTime) ->pluck('id') ->toArray(); $this->info('需要处理的订单ID列表:' . implode(', ', $orderIds)); foreach ($orderIds as $orderId) { $data = ['id' => $orderId]; $this->processOrder($data); } } private function processOrder(array $data) { $order = Order::where('id', $data['id'])->first(); if (empty($order)) { $this->logger->warning("没有找到订单ID: {$data['id']}"); return; } Db::beginTransaction(); try { $order->status = 7; $order->ad_status = 7; $order->save(); // 获取 order_ad 表中的记录 OrderAd::where('order_id', $data['id']) ->update(['status' => 7]); // 在ad表中删除相同pid的数据 Ad::where('order_id', $data['id'])->delete(); Db::commit(); } catch (\Exception $e) { Db::rollBack(); $this->logger->error("处理订单ID: {$data['id']} 时发生错误: " . $e->getMessage()); } } }