info('upgrade related.paragraph'); $startTime = time(); // 删除目标数据库中数据 RelatedParagraph::where('book', '>', 0)->delete(); // 打开csv文件并读取数据 $strFileName = config('mint.path.pali_title').'/cs6_para.csv'; if (! file_exists($strFileName)) { return 1; } $inputRow = 0; $fp = fopen($strFileName, 'r'); if (! $fp) { $this->error("can not open csv $strFileName"); Log::error("can not open csv $strFileName"); } $bookTitles = BookTitle::orderBy('sn', 'desc')->get(); while (($data = fgetcsv($fp, 0, ',')) !== false) { if ($inputRow > 0) { if (! empty($this->argument('book'))) { if ($this->argument('book') != $data[0]) { continue; } } // 获取书号 $bookId = 0; foreach ($bookTitles as $bookTitle) { // code... if ((int) $data[0] === $bookTitle->book) { if ((int) $data[1] >= $bookTitle->paragraph) { $bookId = $bookTitle->id; break; } } } $begin = (int) $data[3]; $end = (int) $data[4]; $arrPara = []; for ($i = $begin; $i <= $end; $i++) { $arrPara[] = $i; } foreach ($arrPara as $key => $para) { $newRow = new RelatedParagraph; $newRow->book = $data[0]; $newRow->para = $data[1]; $newRow->book_id = $bookId; $newRow->cs_para = $para; $newRow->book_name = $data[2]; $newRow->save(); } } $inputRow++; if ($inputRow % 1000 == 0) { $this->info($inputRow); } } fclose($fp); $this->info('all done. in '.time() - $startTime.'s'); return 0; } }