addArgument('name', InputArgument::OPTIONAL, 'Name description'); } /** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output): int { try { Log::info("未支付订单删除开始"); // 获取3小时前的时间 $threeHoursAgo = date('Y-m-d H:i:s', strtotime('-3 hours')); // 开启事务确保数据一致性 DatabaseRoute::transactionXa(function () use ($threeHoursAgo, $output) { $deletedOrders = DatabaseRoute::deleteAllDbDirect('orders', function ($query) use ($threeHoursAgo) { return $query->where('create_time', '<=', $threeHoursAgo) ->where('status', '<>', 1); }); Log::info("删除了 {$deletedOrders} 条未支付订单"); $deletedPayments = DatabaseRoute::deleteAllDbDirect('pay_details', function ($query) use ($threeHoursAgo) { return $query->where('create_time', '<=', $threeHoursAgo) ->where('state', '<>', 1); }); Log::info("删除了 {$deletedPayments} 条未支付支付记录"); $output->writeln("清理完成: 删除 {$deletedOrders} 个订单, {$deletedPayments} 个支付记录"); }); } catch (\Exception $e) { Log::error("未支付订单清理失败: " . $e->getMessage()); $output->writeln("清理失败: " . $e->getMessage() . ""); return 1; // 返回错误码 } // 返回成功码 $output->writeln(0); return self::SUCCESS; } }