UpdateBuildConfiguration.php 2.8 KB
<?php
/**
 * @remark :
 * @name   :UpdateBuildConfiguration.php
 * @author :lyh
 * @method :post
 * @time   :2024/12/11 11:30
 */

namespace App\Console\Commands\Test;

use App\Models\Product\Detail;
use App\Models\Product\Product;
use App\Models\Project\DeployBuild;
use App\Models\Project\Project;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

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

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '更新部署表中-产品-博客-新闻-是否开启可视化';

    /**
     * @remark :执行脚本
     * @name   :handle
     * @author :lyh
     * @method :post
     * @time   :2024/12/11 11:49
     */
    public function handle(){
        //查询当前的所有项目都开启可视化
        $buildModel = new DeployBuild();
        $lists = $buildModel->list();
        foreach ($lists as $k => $v){
            $v['configuration']['is_product'] = $v['configuration']['is_news'] = $v['configuration']['is_blogs'] = $v['configuration']['is_module'] = 1;
            $buildModel->edit(['configuration'=>json_encode($v['configuration'],true)],['id'=>$v['id']]);
            echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
        }
        echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
    }

    /**
     * @remark :清洗产品新描述数据
     * @name   :handles
     * @author :lyh
     * @method :post
     * @time   :2024/12/11 14:33
     */
    public function handles(){
        $projectModel = new Project();
        $list = $projectModel->list(['delete_status'=>0]);
        foreach ($list as $k => $v){
            echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
            ProjectServer::useProject($v['id']);
            $this->getProduct();
            DB::disconnect('custom_mysql');
        }
        echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
    }

    /**
     * @remark :清洗产品新描述
     * @name   :getProduct
     * @author :lyh
     * @method :post
     * @time   :2024/12/11 14:40
     */
    public function getProduct(){
        $productModel = new Product();
        $lists = $productModel->list();
        $detailModel = new Detail();
        foreach ($lists as $k => $v){
            echo date('Y-m-d H:i:s') . '产品id:'.$v['id'] . PHP_EOL;
            $data = [
                'product_id'=>$v['id'],
                'column_id'=>1,
                'text_type'=>1,
                'title'=>'',
                'sort'=>1,
                'content'=>$v['describe']
            ];
            $detailModel->add($data);
        }
    }
}