|
|
|
@ -3,62 +3,46 @@ |
|
|
|
namespace App\Imports; |
|
|
|
|
|
|
|
use App\Models\ParkingLicensePlate; |
|
|
|
use App\Models\ParkingSpaceType; |
|
|
|
use App\Services\ApiResponseService; |
|
|
|
use App\Services\OperationLogService; |
|
|
|
use Illuminate\Http\JsonResponse; |
|
|
|
use Illuminate\Http\Request; |
|
|
|
use Maatwebsite\Excel\Concerns\ToModel; |
|
|
|
use Maatwebsite\Excel\Concerns\WithHeadingRow; |
|
|
|
|
|
|
|
class ParkingLicensePlateImport implements ToModel, WithHeadingRow |
|
|
|
{ |
|
|
|
protected string $parkingSpaceType; |
|
|
|
|
|
|
|
/** |
|
|
|
* @var OperationLogService |
|
|
|
*/ |
|
|
|
private OperationLogService $logService; |
|
|
|
|
|
|
|
public function __construct() |
|
|
|
public function __construct($parking_space_type) |
|
|
|
{ |
|
|
|
$this->logService = new OperationLogService(); |
|
|
|
$this->logService->menuTitle = 'cat_attr'; |
|
|
|
$this->parkingSpaceType = $parking_space_type; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param array $row |
|
|
|
* @return ParkingLicensePlate|JsonResponse |
|
|
|
* @return ParkingLicensePlate |
|
|
|
*/ |
|
|
|
public function model(array $row) |
|
|
|
{ |
|
|
|
$request = new Request(); |
|
|
|
$parking_space_type = $request->post('parking_space_type', ''); |
|
|
|
if (empty($parking_space_type)) { |
|
|
|
return (new ApiResponseService())->businessError( |
|
|
|
__('validation.parking_space.type_id_empty') |
|
|
|
); |
|
|
|
} |
|
|
|
if (!ParkingSpaceType::query()->where('id', $parking_space_type) |
|
|
|
->exists() |
|
|
|
) { |
|
|
|
return (new ApiResponseService())->businessError( |
|
|
|
__('exception.exception_handler.resource') |
|
|
|
); |
|
|
|
} |
|
|
|
$data = []; |
|
|
|
foreach ($row as $value) { |
|
|
|
$data[] = $value; |
|
|
|
} |
|
|
|
$where = [ |
|
|
|
'number' => $data[0], |
|
|
|
'space_type_id' => $parking_space_type |
|
|
|
'space_type_id' => $this->parkingSpaceType |
|
|
|
]; |
|
|
|
if (!ParkingLicensePlate::query()->where($where) |
|
|
|
->exists() |
|
|
|
) { |
|
|
|
$model = new ParkingLicensePlate([ |
|
|
|
'number' => $data[0], |
|
|
|
'space_type_id' => $data[1], |
|
|
|
'space_type_id' => $this->parkingSpaceType, |
|
|
|
'created_at' => get_datetime() |
|
|
|
]); |
|
|
|
$this->logService->logCreated($model, 'license_plate.create'); |
|
|
|
|