RemainDay.php 2.0 KB
<?php

namespace App\Console\Commands;

use App\Helper\Arr;
use App\Models\Product\Category;
use App\Models\Product\Product;
use App\Models\Project\OnlineCheck;
use App\Models\Project\Project;
use App\Models\RankData\RankData as GoogleRankModel;
use App\Models\RouteMap\RouteMap;
use GuzzleHttp\Client;
use GuzzleHttp\Promise\Utils;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;

/**
 * 剩余服务时长
 * Class Traffic
 * @package App\Console\Commands
 * @author zbj
 * @date 2023/5/18
 */
class RemainDay extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'remain_day';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '网站服务剩余时长';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * @return bool
     */
    public function handle()
    {
        $list = Project::whereIn('type', ['2,3,4'])->get();
        foreach ($list as $item){
            if($item['type'] == 3){
                //排名达标天数
                $compliance_day = GoogleRankModel::where(['project_id' => $item['id'], 'lang' => ''])->value('compliance_day') ?: 0;
                $remain_day = $item['deploy_build']['service_duration'] - $compliance_day;
            }else{
                //审核上线后开始
                $check_time = OnlineCheck::where('project_id', $item['id'])->where('status', 1)->value('created_at') ?: '';
                if($check_time){
                    $remain_day = $item['deploy_build']['service_duration'];
                }else{
                    $diff = time() - strtotime($check_time);
                    $remain_day = floor($diff / (60 * 60 * 24));
                }
            }
            $item->remain_day = $remain_day > 0 ? $remain_day : 0;
            $item->save();
        }
    }
}