<?php
/**
 * Created by PhpStorm.
 * User: zhl
 * Date: 2023/2/7
 * Time: 17:58
 */
namespace App\Console\Commands\Test;


use App\Helper\Arr;
use App\Helper\Translate;
use App\Models\Blog\Blog;
use App\Models\Blog\BlogCategory;
use App\Models\Com\KeywordVideoTask;
use App\Models\Com\KeywordVideoTaskLog;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\Devops\ServerConfig;
use App\Models\Devops\Servers;
use App\Models\Devops\ServersIp;
use App\Models\File\File;
use App\Models\File\File as FileModel;
use App\Models\File\Image;
use App\Models\File\Image as ImageModel;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Models\Product\Keyword;
use App\Models\Product\Product;
use App\Models\Project\DeployOptimize;
use App\Models\Project\MinorLanguages;
use App\Models\Project\Project;
use App\Models\Purchaser\Purchaser;
use App\Models\Purchaser\PurchaserInfo;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BCustomTemplate;
use App\Models\Template\BTemplateCom;
use App\Services\AmazonS3Service;
use App\Services\ProjectServer;
use App\Utils\EncryptUtils;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;


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

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'demo';

    public function handle(){
//        $projectModel = new Project();
//        $list = $projectModel->list(['id'=>1659]);
//        foreach ($list as $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');
//        }
        return $this->savePurchaserInfo();
        echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
    }

    public function getProduct(){
        $productModel = new Product();
        $lists = $productModel->list(['status'=>['!=',2]]);
        if(!empty($lists)){
            foreach ($lists as $v){
                if(!empty($v['route'])){
                    echo date('Y-m-d H:i:s') . 'id :'.$v['id'] . PHP_EOL;
                    $route = RouteMap::setRoute($v['title'], RouteMap::SOURCE_PRODUCT, $v['id'], $v['project_id']);
                    $productModel->edit(['route'=>$route],['id'=>$v['id']]);
                }
            }
        }
    }

    /**
     * @remark :保存供应商详情
     * @name   :savePurchaserInfo
     * @author :lyh
     * @method :post
     * @time   :2024/5/29 16:38
     */
    public function savePurchaserInfo(){
        $purchaserModel = new Purchaser();
        $list = $purchaserModel->list();
        foreach ($list as $val){
            $project_id = $val['project_id'];
            $keyword = $val['keyword'];
            $data = json_decode($val['data'],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
            $purchaserInfoModel = new PurchaserInfo();
            foreach ($data as $k =>$v){
                $v['project_id'] = $project_id;
                $v['keyword'] = $keyword;
                if(!empty($v['email'])){

                }
                $v['email'] = json_encode($v['email'] ?? [],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
                $v['mobile'] = json_encode($v['mobile'] ?? [],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
                $v['social_media'] = json_encode($v['social_media'] ?? [],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
                $v['image'] = str_replace('admin.hagro.cn','fob.ai.cc',$v['image'] ?? '');
                $param = $v;
                $info = $purchaserInfoModel->read(['keyword'=>$keyword,'buyer_id'=>$v['buyer_id'],'project_id'=>$project_id],['id']);

                if($info === false){
                    echo date('Y-m-d H:i:s') . '执行新增 :' . PHP_EOL;
                    $purchaserInfoModel->add($param);
                }else{
                    echo date('Y-m-d H:i:s') . '数据已存在 :'.$info['id'] . PHP_EOL;
                }
            }
        }
        return true;
    }
}