<?php

namespace crmeb\subscribes;

use app\admin\model\system\SystemAttachment;
use app\models\auction\Auction;
use app\models\auction\AuctionOrder;
use app\models\auction\AuctionProduct;
use app\models\auction\AuctionTime;
use app\models\store\StoreBargainUser;
use app\models\store\StoreOrder;
use app\models\store\StorePink;
use app\models\user\User;
use app\models\user\UserToken;
use think\facade\Db;

/**
 * 定时任务类
 * Class TaskSubscribe
 * @package crmeb\subscribes
 */
class TaskSubscribe
{
    public function handle()
    {

    }

    /**
     * 2秒钟执行的方法
     */
    public function onTask_2()
    {

    }

    /**
     * 6秒钟执行的方法
     */
    public function onTask_6()
    {
    }

    /**
     * 10秒钟执行的方法
     */
    public function onTask_10()
    {
    }

    /**
     * 30秒钟执行的方法
     */
    public function onTask_30()
    {
        try {
            Db::startTrans();
            StoreBargainUser::startBargainUserStatus();//批量修改砍价状态为 砍价失败
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }
        try {
            Db::startTrans();
            StoreOrder::orderUnpaidCancel();//订单未支付默认取消
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }
        try {
            Db::startTrans();
            StoreOrder::startTakeOrder();//7天自动收货
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }
        try {
            Db::startTrans();
            StorePink::statusPink();//拼团到期修改状态
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }

        try {
            Db::startTrans();
            AuctionOrder::deduction();//订单一个小时内未上传扣除预约卷
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }

        try {
            Db::startTrans();
            AuctionOrder::th();//退回预约卷
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }
//        Auction::is_new(); // 更新新人

        try {
            Db::startTrans();
            AuctionOrder::goods();//自动放货
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }
        try {
            Db::startTrans();
            User::thaw();//解冻
            Db::commit();
        } catch (\Exception $e) {
            Db::rollback();
        }
    }

    /**
     * 60秒钟执行的方法
     */
    public function onTask_60()
    {
        AuctionOrder::auction_time();
        Auction::frequency(); // 更新场次
        AuctionProduct::off_the_shelf(); // 下架未出售商品
    }

    /**
     * 180秒钟执行的方法
     */
    public function onTask_180()
    {
    }

    /**
     * 300秒钟执行的方法
     */
    public function onTask_300()
    {
        UserToken::delToken();//删除一天前的过期token
        SystemAttachment::emptyYesterdayAttachment();//清除昨日海报
        StoreOrder::sendTen();//10分钟未付款发送通知
    }
}