56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | 
 | ||
|  | namespace app\common\command; | ||
|  | 
 | ||
|  | 
 | ||
|  | use app\common\enum\OrderEnum; | ||
|  | use app\common\model\order\Order; | ||
|  | use app\common\server\ConfigServer; | ||
|  | use think\console\Command; | ||
|  | use think\console\Input; | ||
|  | use think\console\Output; | ||
|  | use think\facade\Log; | ||
|  | 
 | ||
|  | class OrderFinish extends Command | ||
|  | { | ||
|  |     protected function configure() | ||
|  |     { | ||
|  |         $this->setName('order_finish') | ||
|  |             ->setDescription('自动确认收货(待收货订单)'); | ||
|  |     } | ||
|  | 
 | ||
|  |     protected function execute(Input $input, Output $output) | ||
|  |     { | ||
|  |         try { | ||
|  |             $time = time(); | ||
|  |             $config = ConfigServer::get('transaction', 'order_auto_receipt_days', 0); | ||
|  |             if ($config == 0) { | ||
|  |                 return true; | ||
|  |             } | ||
|  | 
 | ||
|  |             $finish_limit = $config * 24 * 60 * 60; | ||
|  |             $model = new Order(); | ||
|  |             $orders = $model->field(true)->where([ | ||
|  |                 ['order_status', '=', OrderEnum::ORDER_STATUS_GOODS], | ||
|  |                 ['pay_status', '=', OrderEnum::PAY_STATUS_PAID], | ||
|  |                 ['del', '=', 0] | ||
|  |             ])->whereRaw("shipping_time+$finish_limit < $time") | ||
|  |               ->select()->toArray(); | ||
|  | 
 | ||
|  |             foreach ($orders as $order) { | ||
|  |                 $model->where(['id' => $order['id']]) | ||
|  |                     ->update([ | ||
|  |                         'order_status'      => OrderEnum::ORDER_STATUS_COMPLETE, | ||
|  |                         'update_time'       => $time, | ||
|  |                         'confirm_take_time' => $time, | ||
|  |                     ]); | ||
|  |             } | ||
|  | 
 | ||
|  |             return true; | ||
|  |         } catch (\Exception $e) { | ||
|  |             Log::write('自动确认收货异常:'.$e->getMessage()); | ||
|  |             return false; | ||
|  |         } | ||
|  |     } | ||
|  | } |