TransferConsultant.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. namespace App\Console\Commands\Transfer;
  3. use App\Models\Admin\AdminUser;
  4. use App\Models\CompanyConsultant;
  5. use App\Models\ComplaintConsultant;
  6. use App\Transfer\Consultant;
  7. use App\Transfer\ConsultantComplaint;
  8. use App\Transfer\Member;
  9. use Illuminate\Console\Command;
  10. use Illuminate\Support\Facades\DB;
  11. use Illuminate\Support\Facades\Hash;
  12. class TransferConsultant extends Command
  13. {
  14. /**
  15. * The name and signature of the console command.
  16. *
  17. * @var string
  18. */
  19. protected $signature = 'aix:transfer-consultant';
  20. /**
  21. * The console command description.
  22. *
  23. * @var string
  24. */
  25. protected $description = '转移旧系统顾问数据';
  26. /**
  27. * Create a new command instance.
  28. *
  29. * @return void
  30. */
  31. public function __construct()
  32. {
  33. parent::__construct();
  34. }
  35. /**
  36. * Execute the console command.
  37. *
  38. * @return mixed
  39. */
  40. public function handle()
  41. {
  42. $this->info("清除顾问数据表:consultant");
  43. DB::delete("delete from consultant");
  44. $this->info("清除企业顾问数据表:company_consultant");
  45. DB::delete("delete from company_consultant");
  46. $this->info("清除顾问消息数据表:complaint_consultant");
  47. DB::delete("delete from complaint_consultant");
  48. $this->info("开始转移企业顾问数据...");
  49. $total = Member::where('utype', 1)->count();
  50. $bar = $this->output->createProgressBar($total);
  51. Member::where('utype', 1)->orderBy('uid','asc')->chunk(500, function ($members) use($bar) {
  52. $member_array=[];
  53. foreach ($members as $member){
  54. $this->handleMember($member, $member_array);
  55. }
  56. if ($member_array){
  57. CompanyConsultant::insert($member_array);
  58. }
  59. $bar->advance(500);
  60. });
  61. $bar->finish();
  62. $this->line('完成!');
  63. $this->info('开始转移顾问数据...');
  64. $total = Consultant::count();
  65. $bar = $this->output->createProgressBar($total);
  66. Consultant::orderBy('id','asc')->chunk(500, function ($Consultants) use ($bar) {
  67. $consultant_array=[];
  68. foreach ($Consultants as $consultant){
  69. $this->handleConsultant($consultant, $consultant_array);
  70. }
  71. if($consultant_array){
  72. \App\Models\Consultant::insert($consultant_array);
  73. }
  74. $bar->advance(500);
  75. });
  76. $bar->finish();
  77. $this->line('完成!');
  78. $this->info('开始转移顾问消息数据...');
  79. $total = ConsultantComplaint::count();
  80. $bar = $this->output->createProgressBar($total);
  81. ConsultantComplaint::orderBy('id', 'asc')->chunk(500,function ($consultantComplaints) use ($bar){
  82. $consultantComplaint_array=[];
  83. foreach ($consultantComplaints as $consultantComplaint){
  84. $this->handleConsultantComplaint($consultantComplaint, $consultantComplaint_array);
  85. }
  86. if($consultantComplaint_array){
  87. ComplaintConsultant::insert($consultantComplaint_array);
  88. }
  89. $bar->advance(500);
  90. });
  91. $bar->finish();
  92. $this->line('完成!');
  93. $this->info('转移顾问数据成功!');
  94. }
  95. public function handleMember($member, &$member_array)
  96. {
  97. if($member->consultant){
  98. $data['consultant_id'] = $member->consultant;
  99. $data['company_id'] = $member->uid;
  100. $data['admin_users_id'] = $member->consultants ? $member->consultants->adminid : 0;
  101. $data['consultant_name'] = $member->consultants ? $member->consultants->name : '';
  102. $data['created_at'] = date('Y-m-d H:i:s', $member->reg_time);
  103. $data['updated_at'] = date('Y-m-d H:i:s', $member->reg_time);
  104. $member_array[] = $data;
  105. }
  106. }
  107. public function handleConsultant($consultant, &$consultant_array)
  108. {
  109. $data['id']=$consultant->id;
  110. $data['name']=$consultant->name;
  111. $data['mobile']=$consultant->mobile;
  112. $data['telephone']=$consultant->tel;
  113. $data['qq']=$consultant->qq;
  114. $data['admin_users_id']=$consultant->adminid;
  115. $data['avatar']='old/avatar/'.$consultant->pic;
  116. $consultant_array[]= $data;
  117. }
  118. public function handleConsultantComplaint($consultantComplaint, &$consultantComplaint_array)
  119. {
  120. $data['uid']=$consultantComplaint->uid;
  121. $data['consultant_id']=$consultantComplaint->consultant_id;
  122. if($consultantComplaint->audit==1){
  123. $audit = 0;
  124. }elseif ($consultantComplaint->audit==2){
  125. $audit = 1;
  126. }else{
  127. $audit = 2;
  128. }
  129. $data['status']=$audit;
  130. $data['notes']=$consultantComplaint->notes;
  131. $data['created_at']=date('Y-m-d H:i:s', $consultantComplaint->addtime);
  132. $data['updated_at']=date('Y-m-d H:i:s', $consultantComplaint->addtime);
  133. $consultantComplaint_array[]= $data;
  134. }
  135. }