$value) { $statusArr[$key] = __('admin.' . $value); } return $statusArr; } // 创建 public function createModel(array $data) { try { DB::beginTransaction(); $model = Parking::query()->create([ 'name' => $data['name'], 'open_time' => $data['open_time'], 'close_time' => $data['close_time'], 'address' => $data['address'], 'created_at' => get_datetime() ]); $this->logService->logCreated($model, 'parking_management.create'); $this->saveTranslation( $model->id, $data['name'], $data['en_name'] ?? '', $data['tw_name'] ?? '', 3 ); DB::commit(); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } // 创建 public function updateModel(array $data, $id) { try { DB::beginTransaction(); $model = Parking::query()->findOrFail($id); $oldValue = $model->toArray(); $update = [ 'name' => $data['name'], 'open_time' => $data['open_time'], 'close_time' => $data['close_time'], 'address' => $data['address'], 'status' => $data['status'] ?? 1, 'updated_at' => get_datetime() ]; $model->update($update); $this->logService->logUpdated( $model, $oldValue, 'parking_management.update' ); $this->saveTranslation( $id, $data['name'], $data['en_name'] ?? '', $data['tw_name'] ?? '', 3 ); DB::commit(); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } public function deleteModel(int $id): bool { try { DB::beginTransaction(); $model = Parking::query()->findOrFail($id); $this->logService->logDeleted( $model, 'parking_management.delete' ); $model->delete(); AdminTranslationService::syncDelete($id, 3); DB::commit(); return true; } catch (Exception $e) { DB::rollBack(); throw $e; } } public function getParkingCount($parking_id) { $count = 0; $floorIds = AdminFloor::query()->where('building_floor', $parking_id) ->pluck('id'); if ($floorIds) { return ParkingSpace::query()->whereIn('floor_id', $floorIds)->count( ); } return $count; } }