You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
<?php
|
|
|
|
namespace App\Exports;
|
|
|
|
use App\Models\ParkingCamera;
|
|
use App\Services\OperationLogService;
|
|
use App\Services\ParkingCameraService;
|
|
use Maatwebsite\Excel\Concerns\FromArray;
|
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
|
|
class ParkingCameraExport implements FromArray, WithHeadings
|
|
{
|
|
public function array(): array
|
|
{
|
|
$data = [];
|
|
$index = 1;
|
|
ParkingCamera::all()->each(
|
|
function ($item) use (&$data, &$index) {
|
|
$oldItem = (new ParkingCameraService(
|
|
new OperationLogService()
|
|
))->optionItems($item);
|
|
$data[] = [
|
|
'id' => $index,
|
|
'floor' => $oldItem['floor'],
|
|
'number' => $oldItem['number'],
|
|
'camera_ip' => $oldItem['camera_ip'],
|
|
'parking_space_count' => $oldItem['parking_space_count'],
|
|
'parking_space_numbers' => $oldItem['parking_space_numbers'],
|
|
'is_control_lights' => $oldItem['is_control_lights'],
|
|
'type' => $oldItem['type'],
|
|
'status' => $oldItem['status'],
|
|
'updated_at' => $oldItem['updated_at']
|
|
];
|
|
$index += 1;
|
|
}
|
|
);
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function headings(): array
|
|
{
|
|
return [
|
|
__('exports.global.index'),
|
|
__('exports.parking_space.floor'),
|
|
__('exports.parking_camera.number'),
|
|
__('exports.parking_camera.camera_ip'),
|
|
__('exports.parking_camera.parking_space_count'),
|
|
__('exports.parking_camera.parking_space_numbers'),
|
|
__('exports.parking_camera.is_control_lights'),
|
|
__('exports.parking_camera.type'),
|
|
__('exports.parking_camera.status'),
|
|
__('exports.parking_camera.updated_at')
|
|
];
|
|
}
|
|
}
|
|
|