Browse Source

绘制地图优化3

master
wanghongjun 3 days ago
parent
commit
029474a711
  1. 2
      app/Http/Controllers/Admin/ParkingElectronicMapController.php
  2. 69
      app/Services/ParkingElectronicMapService.php

2
app/Http/Controllers/Admin/ParkingElectronicMapController.php

@ -131,8 +131,8 @@ class ParkingElectronicMapController extends BaseController
} }
foreach ($saveData as $item) { foreach ($saveData as $item) {
$this->saveValidator($item, 1); $this->saveValidator($item, 1);
$this->service->saveModel($item);
} }
$this->service->saveModel($saveData);
return $this->responseService->success([], __('admin.save_succeeded')); return $this->responseService->success([], __('admin.save_succeeded'));
} catch (Exception $e) { } catch (Exception $e) {
$m_prefix = __('admin.save_failed'); $m_prefix = __('admin.save_failed');

69
app/Services/ParkingElectronicMapService.php

@ -5,6 +5,8 @@ namespace App\Services;
use App\Models\AdminFloor; use App\Models\AdminFloor;
use App\Models\ParkingElectronicMap; use App\Models\ParkingElectronicMap;
use App\Models\ParkingSpace; use App\Models\ParkingSpace;
use Exception;
use Illuminate\Support\Facades\DB;
class ParkingElectronicMapService extends BaseService class ParkingElectronicMapService extends BaseService
{ {
@ -20,34 +22,49 @@ class ParkingElectronicMapService extends BaseService
$this->logService->menuTitle = 'draw_map'; $this->logService->menuTitle = 'draw_map';
} }
public function saveModel(array $data) /**
* @param array $dataArray
* @return bool
* @throws Exception
*/
public function saveModel(array $dataArray): bool
{ {
$floor_id = $data['floor_id']; try {
$space_id = $data['parking_space_id']; DB::beginTransaction();
foreach ($dataArray as $data) {
$floor_id = $data['floor_id'];
$space_id = $data['parking_space_id'];
$saveData = $where = [ $saveData = $where = [
'floor_id' => $floor_id, 'floor_id' => $floor_id,
'space_id' => $space_id 'space_id' => $space_id
]; ];
$res = ParkingElectronicMap::query()->where($where)->first(); $res = ParkingElectronicMap::query()->where($where)->first();
$saveData['width'] = $data['width'] ?? '0'; $saveData['width'] = $data['width'] ?? '0';
$saveData['height'] = $data['height'] ?? '0'; $saveData['height'] = $data['height'] ?? '0';
$saveData['coordinate_x'] = $data['coordinate_x'] ?? ''; $saveData['coordinate_x'] = $data['coordinate_x'] ?? '';
$saveData['coordinate_y'] = $data['coordinate_y'] ?? ''; $saveData['coordinate_y'] = $data['coordinate_y'] ?? '';
$saveData['min_width'] = $data['min_width'] ?? ''; $saveData['min_width'] = $data['min_width'] ?? '';
$saveData['min_height'] = $data['min_height'] ?? ''; $saveData['min_height'] = $data['min_height'] ?? '';
$saveData['keep_aspect_ratio'] = $data['keep_aspect_ratio'] ?? '0'; $saveData['keep_aspect_ratio'] = $data['keep_aspect_ratio'] ?? '0';
$saveData['aspect_ratio'] = $data['aspect_ratio'] ?? ''; $saveData['aspect_ratio'] = $data['aspect_ratio'] ?? '';
if ($res) { if ($res) {
$saveData['update_at'] = get_datetime(); $saveData['update_at'] = get_datetime();
$model = ParkingElectronicMap::query()->findOrFail($res['id']); $model = ParkingElectronicMap::query()->findOrFail($res['id']);
$oldValues = $model->toArray(); $oldValues = $model->toArray();
$model->update($saveData); $model->update($saveData);
$this->logService->logUpdated($model, $oldValues, 'map.save'); $this->logService->logUpdated($model, $oldValues, 'map.save');
} else { } else {
$saveData['create_at'] = get_datetime(); $saveData['create_at'] = get_datetime();
$model = ParkingElectronicMap::query()->create($saveData); $model = ParkingElectronicMap::query()->create($saveData);
$this->logService->logCreated($model, 'map.save'); $this->logService->logCreated($model, 'map.save');
}
}
DB::commit();
return true;
} catch (Exception $e) {
DB::rollBack();
throw $e;
} }
} }

Loading…
Cancel
Save