123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- namespace App\Console\Commands\Transfer;
- use App\Models\Admin\AdminUser;
- use App\Models\CompanyConsultant;
- use App\Models\ComplaintConsultant;
- use App\Transfer\Consultant;
- use App\Transfer\ConsultantComplaint;
- use App\Transfer\Member;
- use Illuminate\Console\Command;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- class TransferConsultant extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'aix:transfer-consultant';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '转移旧系统顾问数据';
-
- /**
- * Create a new command instance.
- *
- * @return void
- */
- public function __construct()
- {
- parent::__construct();
- }
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $this->info("清除顾问数据表:consultant");
- DB::delete("delete from consultant");
- $this->info("清除企业顾问数据表:company_consultant");
- DB::delete("delete from company_consultant");
- $this->info("清除顾问消息数据表:complaint_consultant");
- DB::delete("delete from complaint_consultant");
-
- $this->info("开始转移企业顾问数据...");
- $total = Member::where('utype', 1)->count();
- $bar = $this->output->createProgressBar($total);
-
- Member::where('utype', 1)->orderBy('uid','asc')->chunk(500, function ($members) use($bar) {
- $member_array=[];
- foreach ($members as $member){
- $this->handleMember($member, $member_array);
- }
- if ($member_array){
- CompanyConsultant::insert($member_array);
- }
- $bar->advance(500);
- });
- $bar->finish();
- $this->line('完成!');
-
-
- $this->info('开始转移顾问数据...');
- $total = Consultant::count();
- $bar = $this->output->createProgressBar($total);
-
- Consultant::orderBy('id','asc')->chunk(500, function ($Consultants) use ($bar) {
- $consultant_array=[];
- foreach ($Consultants as $consultant){
- $this->handleConsultant($consultant, $consultant_array);
- }
- if($consultant_array){
- \App\Models\Consultant::insert($consultant_array);
- }
- $bar->advance(500);
- });
- $bar->finish();
- $this->line('完成!');
-
-
- $this->info('开始转移顾问消息数据...');
- $total = ConsultantComplaint::count();
- $bar = $this->output->createProgressBar($total);
- ConsultantComplaint::orderBy('id', 'asc')->chunk(500,function ($consultantComplaints) use ($bar){
- $consultantComplaint_array=[];
- foreach ($consultantComplaints as $consultantComplaint){
- $this->handleConsultantComplaint($consultantComplaint, $consultantComplaint_array);
- }
- if($consultantComplaint_array){
- ComplaintConsultant::insert($consultantComplaint_array);
- }
- $bar->advance(500);
- });
- $bar->finish();
- $this->line('完成!');
- $this->info('转移顾问数据成功!');
- }
-
- public function handleMember($member, &$member_array)
- {
- if($member->consultant){
- $data['consultant_id'] = $member->consultant;
- $data['company_id'] = $member->uid;
- $data['admin_users_id'] = $member->consultants ? $member->consultants->adminid : 0;
- $data['consultant_name'] = $member->consultants ? $member->consultants->name : '';
- $data['created_at'] = date('Y-m-d H:i:s', $member->reg_time);
- $data['updated_at'] = date('Y-m-d H:i:s', $member->reg_time);
- $member_array[] = $data;
- }
- }
-
- public function handleConsultant($consultant, &$consultant_array)
- {
- $data['id']=$consultant->id;
- $data['name']=$consultant->name;
- $data['mobile']=$consultant->mobile;
- $data['telephone']=$consultant->tel;
- $data['qq']=$consultant->qq;
- $data['admin_users_id']=$consultant->adminid;
- $data['avatar']='old/avatar/'.$consultant->pic;
- $consultant_array[]= $data;
- }
-
- public function handleConsultantComplaint($consultantComplaint, &$consultantComplaint_array)
- {
- $data['uid']=$consultantComplaint->uid;
- $data['consultant_id']=$consultantComplaint->consultant_id;
- if($consultantComplaint->audit==1){
- $audit = 0;
- }elseif ($consultantComplaint->audit==2){
- $audit = 1;
- }else{
- $audit = 2;
- }
- $data['status']=$audit;
- $data['notes']=$consultantComplaint->notes;
- $data['created_at']=date('Y-m-d H:i:s', $consultantComplaint->addtime);
- $data['updated_at']=date('Y-m-d H:i:s', $consultantComplaint->addtime);
- $consultantComplaint_array[]= $data;
- }
-
- }
|