<?php

namespace app\api\command;

use app\common\service\OrderService;
use think\console\Command;
use think\console\Input;
use think\console\Output;

class Order extends Command
{
    protected function configure()
    {
        $this->setName('Order')->setDescription("订单相关定时任务");
    }

    protected function execute(Input $input, Output $output)
    {
        /* 永不超时 */
//        ini_set('max_execution_time', 0);

        // 记录开始运行的时间
        $GLOBALS['_beginTime'] = microtime(TRUE);
        $output->writeln('定时任务开始执行：' . date('Y-m-d H:i:s', time()));

        $output->writeln("开始匹配订单:");
        (new OrderService())->checkOrderStatus();
        $output->writeln("订单匹配运行结束");
        $output->writeln("");

        $output->writeln("开始重置订单:");
        (new OrderService())->resetOrderStatus();
        $output->writeln("重置订单结束");
        $output->writeln("");

        $output->writeln("开始补充回调:");
        (new OrderService())->resetCallBack();
        $output->writeln("回调结束");
        $output->writeln("");


        /*** 这里写计划任务列表集 END ***/
        $time_total = round(microtime(true) - $GLOBALS['_beginTime'], 4);//计算耗时
        $output->writeln('定时任务执行结束：' . date('Y-m-d H:i:s', time()) . '； 耗时：' . $time_total . '秒');
    }
}