Notice.php 2.5 KB
<?php
/**
 * @remark :
 * @name   :Notice.php
 * @author :lyh
 * @method :post
 * @time   :2024/3/6 16:01
 */

namespace App\Console\Commands\Notice;

use App\Models\Com\KeywordVideoTaskLog;
use App\Models\Domain\DomainInfo;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

/**
 * @remark :通知C端生成界面
 * @name   :Notice
 * @author :lyh
 * @method :post
 * @time   :2024/3/6 16:01
 */
class Notice extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'notice_c';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '通知C端生成界面';

    /**
     * @remark :通知C端生成界面
     * @name   :handle
     * @author :lyh
     * @method :post
     * @time   :2023/11/20 15:13
     */
    public function handle(){
        $yesterday = date('Y-m-d', strtotime('yesterday'));
        $keywordVideoModel = new KeywordVideoTaskLog();
        $list = $keywordVideoModel->select('project_id')
            ->groupBy('project_id')->whereBetween('created_at', [$yesterday.' 00:00:00',$yesterday.' 23:59:59'])->get()->toArray();
        $project_arr = [];
        if(empty($list)){
            echo date('Y-m-d H:i:s') . '无需通知' . PHP_EOL;
            return false;
        }
        foreach ($list as $k => $v){
            $project_arr[] = $v['project_id'];
        }
        $domainModel = new DomainInfo();
        $domainList = $domainModel->formatQuery(['project_id'=>['in',$project_arr]])->get()->toArray();
        if(empty($domainList)){
            echo date('Y-m-d H:i:s') . '无域名:'.json_encode($domainList) . PHP_EOL;
            return false;
        }
        foreach ($domainList as $v1){
            //TODO::通知C端
            @file_put_contents(storage_path('logs/notice_c'.'.log'), var_export($v1['domain'], true) . PHP_EOL, FILE_APPEND);
            $this->curlDelRoute($v1['domain'],$v1['project_id']);
        }
        return true;
    }

    /**
     * @remark :删除路由通知C端
     * @name   :curlDelRoute
     * @author :lyh
     * @method :post
     * @time   :2023/11/30 14:43
     */
    public function curlDelRoute($domain,$project_id){
        if (strpos($domain, 'https://') === false) {
            $domain = 'https://' . $domain . '/';
        }
        $url = $domain.'api/update_page/?project_id='.$project_id.'&route=6';
        shell_exec('curl -k "'.$url.'"');
        return true;
    }
}