ADTransfer.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: TangKe
  5. * Date: 2019/6/9
  6. * Time: 10:17
  7. */
  8. namespace App\Console\Commands\Transfer;
  9. use App\Transfer\CompanyProfile;
  10. use Illuminate\Console\Command;
  11. use App\Transfer\Ad;
  12. use App\Transfer\AdCategory;
  13. use App\Models\SubsiteAd;
  14. use App\Models\Ad as newAd;
  15. use App\Models\AdCategory as newAdCate;
  16. class ADTransfer extends Command
  17. {
  18. protected $signature = 'aix:transfer-ad';
  19. protected $description = 'add the transfer-ad data';
  20. /**
  21. * ArticleCommand constructor.
  22. */
  23. public function __construct()
  24. {
  25. parent::__construct();
  26. }
  27. public function handle() {
  28. //强制删除广告表数据
  29. newAd::truncate();
  30. newAdCate::truncate();
  31. SubsiteAd::truncate();
  32. // 导入广告分类
  33. $this->info("开始转移 adCategory 数据...");
  34. $total = AdCategory::count();
  35. $bar=$this->output->createProgressBar($total);
  36. AdCategory::where(['theme'=>'default'])->orderBy('id', 'asc')->chunk(10, function ($categorys) use ($bar) {
  37. $categorysData = [];
  38. foreach ($categorys as $key => $val) {
  39. //$categorysData['id'] = $val->id;
  40. $categorysData[$key]['category_name'] = $val->categoryname;
  41. $categorysData[$key]['theme'] = $val->theme;
  42. $categorysData[$key]['org'] = $val->org;
  43. $categorysData[$key]['alias'] = str_replace("QS_","AIX_",$val->alias);
  44. $categorysData[$key]['type_id'] = $val->type_id;
  45. $categorysData[$key]['is_float'] = $val->float;
  46. $categorysData[$key]['float_left'] = $val->floating_left;
  47. $categorysData[$key]['float_right'] = $val->floating_right;
  48. $categorysData[$key]['float_top'] = $val->floating_top;
  49. $categorysData[$key]['width'] = $val->width;
  50. $categorysData[$key]['height'] = $val->height;
  51. $categorysData[$key]['admin_set'] = $val->admin_set;
  52. $categorysData[$key]['ad_num'] = $val->ad_num;
  53. $categorysData[$key]['subsite_id'] = $val->subsite_id;
  54. $categorysData[$key]['created_at'] = date('Y-m-d H:i:s', time());
  55. $categorysData[$key]['updated_at'] = date('Y-m-d H:i:s', time());
  56. }
  57. if ($categorysData) {
  58. newAdCate::insert($categorysData);
  59. }
  60. $bar->advance(10);
  61. });
  62. $bar->finish();
  63. $this->line(" 完成!");
  64. $this->info("转移广告分类数据成功.");
  65. //导入广告
  66. $this->info("开始转移 ads 数据...");
  67. $total = Ad::count();
  68. $bar=$this->output->createProgressBar($total);
  69. Ad::chunk(20, function ($ads) use ($bar) {
  70. $adsData = [];
  71. $subsiteAdData = [];
  72. foreach ($ads as $key=>$val) {
  73. $addtime = date('Y-m-d H:i:s', $val->addtime);
  74. $adsData[$key]['id'] = $val->id;
  75. $adsData[$key]['theme'] = $val->theme;
  76. $adsData[$key]['alias'] = str_replace("QS_","AIX_",$val->alias);
  77. $adsData[$key]['is_display'] = $val->is_display;
  78. $adsData[$key]['category_id'] = newAdCate::where('alias',$adsData[$key]['alias'])->value('id');
  79. $adsData[$key]['type_id'] = $val->type_id;
  80. $adsData[$key]['title'] = $val->title;
  81. $adsData[$key]['note'] = $val->note ? $val->note :'';
  82. $adsData[$key]['list_order'] = $val->show_order;
  83. $adsData[$key]['started_at'] = $val->starttime;
  84. $adsData[$key]['ended_at'] = $val->deadline ? $val->deadline : 0;
  85. $adsData[$key]['content'] = 'old/ads/'.$val->content;
  86. $adsData[$key]['text_color'] = $val->text_color;
  87. $adsData[$key]['subsite_id'] = $val->subsite_id;
  88. $adsData[$key]['uid'] = isset($uid) ? $uid : 0;
  89. $adsData[$key]['created_at'] = $addtime;
  90. $adsData[$key]['updated_at'] = $addtime;
  91. $adsData[$key]['explain'] = $val->explain;
  92. $subsiteAdData[$key]['ad_id'] = $val->id;
  93. $subsiteAdData[$key]['subsite_id'] = $val->subsite_id;
  94. $subsiteAdData[$key]['created_at'] = $addtime;
  95. $subsiteAdData[$key]['updated_at'] = $addtime;
  96. }
  97. if ($adsData) {
  98. newAd::insert($adsData);
  99. }
  100. if ($subsiteAdData) {
  101. SubsiteAd::insert($subsiteAdData);
  102. }
  103. $bar->advance(20);
  104. });
  105. $bar->finish();
  106. $this->line(" 完成!");
  107. $this->info("转移广告数据成功.");
  108. }
  109. }