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; $this->error[] = $error_str;
return; return;
} }
$where = [ $license = ParkingLicensePlate::query()->whereRaw(
'number' => $number, 'BINARY `number` = ?',
'space_type_id' => $this->parkingSpaceType [$number]
]; )->first();
if (ParkingLicensePlate::query()->where($where) if ($license && $license['space_type_id']) {
->exists()
) {
$this->error[] = imports_error($this->index, 'import37'); $this->error[] = imports_error($this->index, 'import37');
return; return;
} }
$model = ParkingLicensePlate::query()->create([ if ($license) {
'number' => $number, $licensePlateService->updateData(
'space_type_id' => $this->parkingSpaceType, $license['id'],
'created_at' => get_datetime() $number,
]); $this->parkingSpaceType
$this->logService->logCreated($model, 'license_plate.create'); );
} 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 public function errorArr(): array

31
app/Services/ParkingLicensePlateService.php

@ -49,15 +49,22 @@ class ParkingLicensePlateService
*/ */
public function createData($data) public function createData($data)
{ {
if (ParkingLicensePlate::query()->whereRaw( $license = ParkingLicensePlate::query()->whereRaw(
'BINARY `number` = ?', 'BINARY `number` = ?',
[$data['number']] [$data['number']]
) )->first();
->exists() if ($license && $license['space_type_id']) {
) {
throw new Exception(__('service.license_plate.number_exists')); 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) public function createNumber($number, $space_type_id = 0)
@ -81,6 +88,20 @@ class ParkingLicensePlateService
return $id; 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 array $data
* @param int $id * @param int $id

Loading…
Cancel
Save