TemplateLabel.php 3.3 KB
<?php
/**
 * @remark :
 * @name   :TemplateLabel.php
 * @author :lyh
 * @method :post
 * @time   :2024/6/3 11:33
 */

namespace App\Console\Commands\TemplateLabel;

use App\Models\Template\Template;
use App\Models\Template\TemplateModule;
use Illuminate\Console\Command;
use App\Models\Template\TemplateLabel as TemplateLabelModel;

class TemplateLabel extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'template_label';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '设置label';

    /**
     * @remark :执行脚本
     * @name   :handle
     * @author :lyh
     * @method :post
     * @time   :2024/6/3 11:35
     */
    public function handle(){
        //获取最近7天模版的记录
        $start_time = now()->subDays(90)->startOfDay()->toDateString();
        $end_time = now()->startOfDay()->toDateString();
        $this->setTemplateModule($start_time,$end_time);
        $this->setTemplate($start_time,$end_time);
        return true;
    }

    /**
     * @remark :公共模块
     * @name   :setTemplate
     * @author :lyh
     * @method :post
     * @time   :2024/6/3 15:56
     */
    public function setTemplate($start_time,$end_time){
        $templateModel = new Template();
        $info = $templateModel->list(['created_at'=>['between',[$start_time,$end_time]],'test_model'=>0],'id',['id']);
        if(empty($info)){
            return true;
        }else{
            //清除当前所有最新标签
            $labelModel = new TemplateLabelModel();
            $labelModel->del(['name'=>'最新','type'=>1]);
            $data = [];
            foreach ($info as $k => $v){
                $data[] = [
                    'name'=>'最新',
                    'type'=>1,
                    'template_id'=>$v['id'],
                    'manager_id'=>0,
                    'created_at'=>date('Y-m-d H:i:s'),
                    'updated_at'=>date('Y-m-d H:i:s')
                ];
            }
            //设置为最新
            $labelModel->insert($data);
        }
        return true;
    }

    /**
     * @remark :左侧模块
     * @name   :templateModule
     * @author :lyh
     * @method :post
     * @time   :2024/6/3 15:54
     */
    public function setTemplateModule($start_time,$end_time){
        $templateModuleModel = new TemplateModule();
        $moduleInfo = $templateModuleModel->list(['created_at'=>['between',[$start_time,$end_time]],'test_model'=>0],'id',['id']);
        if(empty($moduleInfo)){
            return true;
        }else{
            //清除当前所有最新标签
            $labelModel = new TemplateLabelModel();
            $labelModel->del(['name'=>'最新','type'=>2]);
            $moduleData = [];
            foreach ($moduleInfo as $k => $v){
                $moduleData[] = [
                    'name'=>'最新',
                    'type'=>2,
                    'template_id'=>$v['id'],
                    'manager_id'=>0,
                    'created_at'=>date('Y-m-d H:i:s'),
                    'updated_at'=>date('Y-m-d H:i:s')
                ];
            }
            //设置为最新
            $labelModel->insert($moduleData);
        }
        return true;
    }
}