| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | <?phpnamespace 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;    }    }
 |