UpdateBuildConfiguration.php 5.4 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\Column;
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 handles(){
        //查询当前的所有项目都开启可视化
        $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 handle(){
        $projectModel = new Project();
        $list = $projectModel->list(['delete_status'=>0],'id',['id'],'asc');
        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($v['id']);
            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($project_id){
        $detailModel = new Detail();
        $lists = $detailModel->list();
        if(empty($lists)){
            echo date('Y-m-d H:i:s') . '需要处理的项目:'.$project_id . PHP_EOL;
        }
//        Detail::truncate();
//        Column::truncate();
//        $c = new Column();
//        $c->addReturnId(['column_name'=>'product detail']);
//        $productModel = new Product();
//        $page = 1;
//        while (true){
//            $lists = $productModel->lists([],$page,1,['id','content','describe']);
//            $detailModel = new Detail();
//            if(!empty($lists['list'])){
//                foreach ($lists['list'] as $k => $v){
//                    echo date('Y-m-d H:i:s') . '产品id:'.$v['id'] . PHP_EOL;
//                    if(!empty($v['content'])){
//                        $data = [
//                            'product_id'=>$v['id'],
//                            'column_id'=>1,
//                            'text_type'=>1,
//                            'title'=>'product detail',
//                            'sort'=>1,
//                            'content'=>json_encode(['content'=>$v['content'] ?? ''],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
//                            'created_at'=>date('Y-m-d H:i:s'),
//                            'updated_at'=>date('Y-m-d H:i:s')
//                        ];
//                        $detailModel->insert($data);
//                    }
//                    if(!empty($v['describe'])){
//                        foreach ($v['describe'] as $key => $value){
//                            if(isset($value['title']) && ($value['title'] == null)){
//                                $value['title'] = '';
//                            }
//                            if(isset($value['text']) && ($value['text'] == null)){
//                                $value['text'] = '';
//                            }
//                            if(empty($value['title'])){
//                                continue;
//                            }
//                            //添加切换栏
//                            $c = new Column();
//                            $id = $c->addReturnId(['column_name'=>$value['title'],'product_id'=>$v['id']]);
//                            $dataS = [
//                                'product_id'=>$v['id'],
//                                'column_id'=>$id,
//                                'text_type'=>1,
//                                'title'=>$value['title'] ?? '',
//                                'sort'=>$key + 1,
//                                'content'=>json_encode(['content'=>$value['text'] ?? ''],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
//                                'created_at'=>date('Y-m-d H:i:s'),
//                                'updated_at'=>date('Y-m-d H:i:s')
//                            ];
//                            $detailModel->insert($dataS);
//                        }
//                    }
//                }
//            }else{
//                break;
//                return false;
//            }
//            $page++;
//        }
        return true;
    }

}