Example #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $bar = $this->output->createProgressBar(Fio::count());
     Fio::chunk(2000, function ($rows) use($bar) {
         $bar->advance(2000);
         $firstNames = [];
         $lastNames = [];
         $middleNames = [];
         foreach ($rows as $row) {
             // рабиваем фио на составляющие
             $row['name'] = explode(' ', $row['name']);
             $row['nameRU'] = explode(' ', $row['nameRU']);
             if (count($row['name']) != 3 || count($row['nameRU']) != 3) {
                 continue;
             }
             $firstNames[] = ['nameUA' => $row['name'][1], 'nameRU' => $row['nameRU'][1]];
             $lastNames[] = ['nameUA' => $row['name'][0], 'nameRU' => $row['nameRU'][0]];
             $middleNames[] = ['nameUA' => $row['name'][2], 'nameRU' => $row['nameRU'][2]];
         }
         DB::insert("INSERT IGNORE INTO `first_names` (`nameUA`, `nameRU`) VALUES {$this->_implodeValues($firstNames)} ON DUPLICATE KEY UPDATE c=c+1");
         DB::insert("INSERT IGNORE INTO `last_names` (`nameUA`, `nameRU`) VALUES {$this->_implodeValues($lastNames)} ON DUPLICATE KEY UPDATE c=c+1");
         DB::insert("INSERT IGNORE INTO `middle_names` (`nameUA`, `nameRU`) VALUES {$this->_implodeValues($middleNames)} ON DUPLICATE KEY UPDATE c=c+1");
     });
 }