停车场管理系统
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
1.9 KiB

<?php
namespace App\Services;
use App\Models\Parking;
use App\Models\ParkingChannel;
use App\Models\ParkingLicensePlate;
use App\Models\ParkingReservation;
use App\Models\ParkingSpaceType;
class ParkingGateControlService extends BaseService
{
protected string $menuTitle = 'gate_control';
public static array $typeArr = [
1 => 'automatic',
2 => 'manual'
];
/**
* @return array|string[]
*/
public function getType(): array
{
$typeArr = self::$typeArr;
foreach ($typeArr as $key => $value) {
$typeArr[$key] = __service($this->menuTitle . '.' . $value);
}
return $typeArr;
}
public function getItem($item)
{
$typeArr = $this->getType();
$date = date("Y-m-d", strtotime($item['enter_at']));
$item['reserve_id'] = ParkingReservation::query()->where(
'license_plate_id',
$item['license_plate_id']
)->where('date', $date)->value('reserve_id');
$item['member_type'] = ParkingSpaceType::getName($item['member_type']);
$item['license_plate'] = ParkingLicensePlate::getNumber($item['license_plate_id']);
$ParkingChannel = ParkingChannel::getFirst($item['channel_id']);
$item['channel'] = '';
$item['parking'] = '';
if ($ParkingChannel) {
$item['channel'] = $ParkingChannel['name'];
$item['parking'] = Parking::getName($ParkingChannel['parking_id']);
}
$item['enter_type_str'] = $typeArr[$item['enter_type']];
$item['leave_type_str'] = $typeArr[$item['leave_type']] ?? '';
$item['dwell_time'] = get_time_difference_str($item['enter_at'], $item['leave_at']);
$item['enter_img'] = get_image_url($item['enter_img']);
$item['leave_img'] = get_image_url($item['leave_img']);
unset($item['license_plate_id'], $item['channel_id']);
return $item;
}
}