<?php
/**
 * Created by PhpStorm.
 * User: TangKe
 * Date: 2019/6/9
 * Time: 10:17
 */

namespace App\Console\Commands\Transfer;
use App\Transfer\CompanyProfile;
use Illuminate\Console\Command;
use App\Transfer\Ad;
use App\Transfer\AdCategory;
use App\Models\SubsiteAd;
use App\Models\Ad as newAd;
use App\Models\AdCategory as newAdCate;

class ADTransfer extends Command
{
    protected $signature = 'aix:transfer-ad';

    protected $description = 'add the transfer-ad data';

    /**
     * ArticleCommand constructor.
     */
    public function __construct()
    {
        parent::__construct();
    }


    public function handle() {
        //强制删除广告表数据
        newAd::truncate();
        newAdCate::truncate();
        SubsiteAd::truncate();

        // 导入广告分类
        $this->info("开始转移 adCategory 数据...");
        $total = AdCategory::count();
        $bar=$this->output->createProgressBar($total);
        AdCategory::where(['theme'=>'default'])->orderBy('id', 'asc')->chunk(10, function ($categorys) use ($bar) {
            $categorysData = [];
            foreach ($categorys as $key => $val) {
                //$categorysData['id'] = $val->id;
                $categorysData[$key]['category_name'] = $val->categoryname;
                $categorysData[$key]['theme'] = $val->theme;
                $categorysData[$key]['org'] = $val->org;
                $categorysData[$key]['alias'] = str_replace("QS_","AIX_",$val->alias);
                $categorysData[$key]['type_id'] = $val->type_id;
                $categorysData[$key]['is_float'] = $val->float;
                $categorysData[$key]['float_left'] = $val->floating_left;
                $categorysData[$key]['float_right'] = $val->floating_right;
                $categorysData[$key]['float_top'] = $val->floating_top;
                $categorysData[$key]['width'] = $val->width;
                $categorysData[$key]['height'] = $val->height;
                $categorysData[$key]['admin_set'] = $val->admin_set;
                $categorysData[$key]['ad_num'] = $val->ad_num;
                $categorysData[$key]['subsite_id'] = $val->subsite_id;
                $categorysData[$key]['created_at'] = date('Y-m-d H:i:s', time());
                $categorysData[$key]['updated_at'] = date('Y-m-d H:i:s', time());
            }

            if ($categorysData) {
                newAdCate::insert($categorysData);
            }

            $bar->advance(10);
        });

        $bar->finish();
        $this->line("  完成!");
        $this->info("转移广告分类数据成功.");

        //导入广告
        $this->info("开始转移 ads 数据...");
        $total = Ad::count();
        $bar=$this->output->createProgressBar($total);

        Ad::chunk(20, function ($ads) use ($bar) {
            $adsData = [];
            $subsiteAdData = [];
            foreach ($ads as $key=>$val) {
                $addtime = date('Y-m-d H:i:s', $val->addtime);
                $adsData[$key]['id'] = $val->id;
                $adsData[$key]['theme'] = $val->theme;
                $adsData[$key]['alias'] = str_replace("QS_","AIX_",$val->alias);
                $adsData[$key]['is_display'] = $val->is_display;
                $adsData[$key]['category_id'] = newAdCate::where('alias',$adsData[$key]['alias'])->value('id');
                $adsData[$key]['type_id'] = $val->type_id;
                $adsData[$key]['title'] = $val->title;
                $adsData[$key]['note'] = $val->note ? $val->note :'';
                $adsData[$key]['list_order'] = $val->show_order;
                $adsData[$key]['started_at'] = $val->starttime;
                $adsData[$key]['ended_at'] = $val->deadline ? $val->deadline : 0;
                $adsData[$key]['content'] = 'old/ads/'.$val->content;
                $adsData[$key]['text_color'] = $val->text_color;
                $adsData[$key]['subsite_id'] = $val->subsite_id;
                $adsData[$key]['uid'] = isset($uid) ? $uid : 0;
                $adsData[$key]['created_at'] = $addtime;
                $adsData[$key]['updated_at'] = $addtime;
                $adsData[$key]['explain'] = $val->explain;

                $subsiteAdData[$key]['ad_id'] = $val->id;
                $subsiteAdData[$key]['subsite_id'] = $val->subsite_id;
                $subsiteAdData[$key]['created_at'] = $addtime;
                $subsiteAdData[$key]['updated_at'] = $addtime;
            }

            if ($adsData) {
                newAd::insert($adsData);
            }

            if ($subsiteAdData) {
                SubsiteAd::insert($subsiteAdData);
            }
            $bar->advance(20);
        });
        $bar->finish();
        $this->line("  完成!");
        $this->info("转移广告数据成功.");
    }
}