FirstSheetImport.php 2.7 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 导入类 : 导入操作类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Admin\Extensions\Importer
 * @package   App\Admin\Extensions\Importer
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年11月08日14:45:16
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Admin\Extensions\Importer;

use App\Models\System\SystemConfig;
use Illuminate\Support\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithBatchInserts;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Maatwebsite\Excel\Imports\HeadingRowFormatter;

HeadingRowFormatter::
default('none');

/**
 * Class FirstSheetImport
 *
 * @category  App\Admin\Extensions\Importer
 * @package   App\Admin\Extensions\Importer
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年11月08日14:45:16
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class FirstSheetImport implements ToCollection, WithBatchInserts, WithChunkReading, WithHeadingRow, ToModel
{
    private $round;

    public function __construct(int $round)
    {
        $this->round = $round;
    }

    /**
     * @param array $row
     *
     * @return Model|Model[]|null
     */
    public function model(array $row)
    {
//        dump(request()->all());
//        dd($row);
//
//        // 断数据是否
//        $user = SchoolClass::where('mobile', '=', $row['手机'])->first();
//        if ($user) {
//            // 存在返回 null
//            return null;
//        }
//
//        dd($row);
//        // 数据库对应的字段
//        return new DataModel([
//            'name' => $row['姓名'],
//            'gender' => $row['性别'],
//        ]);
    }

    public function collection(Collection $rows)
    {
        $model = app(Color::class);
        $data = TeacherImporter::generateData($rows);
        if ($data && $model) {
            return $model->addAll($data);
        }
    }

    //批量导入1000条
    public function batchSize(): int
    {
        return 1000;
    }

    //以1000条数据基准切割数据
    public function chunkSize(): int
    {
        return 1000;
    }
}