setName('order_verification') ->setDescription('系统自动核销服务中订单'); } protected function execute(Input $input, Output $output) { $now = time(); $ableAuto = ConfigService::get('transaction', 'verification_orders',1); $confirmTime = ConfigService::get('transaction', 'verification_orders_times',24) * 60 * 60; if ($ableAuto == YesNoEnum::NO) { return true; } $orders = Order::where([ 'order_status' => OrderEnum::ORDER_STATUS_SERVICE, 'pay_status' => PayEnum::ISPAID ])->whereRaw("create_time+$confirmTime < $now")->select(); if (empty($orders)) { return true; } Db::startTrans(); try { foreach ($orders as $order) { //更新订单状态 Order::update([ 'order_status' => OrderEnum::ORDER_STATUS_FINISH, 'verification_status' => OrderEnum::VERIFICATION, 'finish_time' => time(), ], ['id' => $order['id']]); //添加订单日志 (new OrderLogLogic())->record(OrderLogEnum::TYPE_SYSTEM,OrderLogEnum::SYSTEM_CONFIRM_ORDER,$order['id'],0); } Db::commit(); } catch (\Exception $e) { Db::rollback(); Log::write('订单自动核销失败,失败原因:' . $e->getMessage()); } } }