| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | <?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("转移广告数据成功.");    }}
 |