Browse Source

车牌号码添加、导入优化

master
wanghongjun 2 weeks ago
parent
commit
8fc4c9fadc
  1. 32
      app/Imports/ParkingLicensePlateImport.php
  2. 31
      app/Services/ParkingLicensePlateService.php

32
app/Imports/ParkingLicensePlateImport.php

@ -50,22 +50,28 @@ class ParkingLicensePlateImport implements ToModel
$this->error[] = $error_str;
return;
}
$where = [
'number' => $number,
'space_type_id' => $this->parkingSpaceType
];
if (ParkingLicensePlate::query()->where($where)
->exists()
) {
$license = ParkingLicensePlate::query()->whereRaw(
'BINARY `number` = ?',
[$number]
)->first();
if ($license && $license['space_type_id']) {
$this->error[] = imports_error($this->index, 'import37');
return;
}
$model = ParkingLicensePlate::query()->create([
'number' => $number,
'space_type_id' => $this->parkingSpaceType,
'created_at' => get_datetime()
]);
$this->logService->logCreated($model, 'license_plate.create');
if ($license) {
$licensePlateService->updateData(
$license['id'],
$number,
$this->parkingSpaceType
);
} else {
$model = ParkingLicensePlate::query()->create([
'number' => $number,
'space_type_id' => $this->parkingSpaceType,
'created_at' => get_datetime()
]);
$this->logService->logCreated($model, 'license_plate.create');
}
}
public function errorArr(): array

31
app/Services/ParkingLicensePlateService.php

@ -49,15 +49,22 @@ class ParkingLicensePlateService
*/
public function createData($data)
{
if (ParkingLicensePlate::query()->whereRaw(
$license = ParkingLicensePlate::query()->whereRaw(
'BINARY `number` = ?',
[$data['number']]
)
->exists()
) {
)->first();
if ($license && $license['space_type_id']) {
throw new Exception(__('service.license_plate.number_exists'));
}
return $this->createNumber($data['number'], $data['space_type_id']);
if ($license) {
return $this->updateData(
$license['id'],
$data['number'],
$data['space_type_id']
);
} else {
return $this->createNumber($data['number'], $data['space_type_id']);
}
}
public function createNumber($number, $space_type_id = 0)
@ -81,6 +88,20 @@ class ParkingLicensePlateService
return $id;
}
public function updateData($id, $number, $space_type_id)
{
$update = [
'number' => $number,
'space_type_id' => $space_type_id,
'updated_at' => date("Y-m-d H:i:s", time())
];
$model = ParkingLicensePlate::query()->findOrFail($id);
$oldValues = $model->toArray();
$model->update($update);
$this->logService->logUpdated($model, $oldValues, 'license_plate.update');
return $model;
}
/**
* @param array $data
* @param int $id

Loading…
Cancel
Save