停车场管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

50 lines
1.2 KiB

<?php
namespace App\Imports;
use App\Models\ParkingLicensePlate;
use App\Services\OperationLogService;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class ParkingLicensePlateImport implements ToModel, WithHeadingRow
{
/**
* @var OperationLogService
*/
private OperationLogService $logService;
public function __construct()
{
$this->logService = new OperationLogService();
}
/**
* @param array $row
* @return ParkingLicensePlate
*/
public function model(array $row): ParkingLicensePlate
{
$data = [];
foreach ($row as $value) {
$data[] = $value;
}
$where = [
'number' => $data[0],
'space_type_id' => $data[1]
];
if (!ParkingLicensePlate::query()->where($where)
->exists()
) {
$model = new ParkingLicensePlate([
'number' => $data[0],
'space_type_id' => $data[1],
'created_at' => get_datetime()
]);
$this->logService->logCreated($model, '创建车牌号码');
return $model;
}
return new ParkingLicensePlate();
}
}