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

121 lines
3.8 KiB

<?php
namespace App\Services;
use App\Models\AdminUsers;
use App\Models\ParkingLicensePlate;
use App\Models\ParkingManualCorrection;
use App\Models\ParkingSpace;
class ParkingManualCorrectionService extends BaseService
{
protected string $menuTitle = 'manual_correction';
public function createData($data, $user_id)
{
$data = [
'enter_time' => $data['enter_time'],
'space_id' => $data['space_id'],
'old_license_id' => $data['old_license_id'],
'admin_user_id' => $user_id,
'new_license_id' => $data['new_license_id'],
'created_at' => date("Y-m-d H:i:s", time())
];
$model = ParkingManualCorrection::query()->create($data);
$this->logService->logCreated($model, $this->menuTitle . '.create');
$data = $model->toArray();
return $data['id'] ?? 0;
}
public function indexQuery($param)
{
$query = ParkingManualCorrection::query();
if (isset($param['space_number']) && !empty($param['space_number'])) {
$space_ids = ParkingSpace::getId($param['space_number']);
if ($space_ids) {
$query->whereIn('space_id', $space_ids);
} else {
$query->where('id', 0);
}
}
if (isset($param['old_license_place'])
&& !empty($param['old_license_place'])
) {
$old_id_arr = ParkingLicensePlate::getId(
$param['old_license_place']
);
$old_id_arr ? $query->whereIn(
'old_license_id',
$old_id_arr
) : $query->where('id', 0);
}
if (isset($param['start_date'])
&& !empty($param['start_date'])
&& strtotime($param['start_date'])
) {
$start_date = date(
"Y-m-d 00:00:00",
strtotime($param['start_date'])
);
if ($start_date) {
$query->where('created_at', '>=', $start_date);
}
}
if (isset($param['end_date'])
&& !empty($param['end_date'])
&& strtotime($param['end_date'])
) {
$end_date = date(
"Y-m-d 00:00:00",
strtotime($param['end_date'])
);
if ($end_date) {
$query->where('created_at', '<', $end_date);
}
}
if (isset($param['username']) && !empty($param['username'])) {
$ids = AdminUsers::getIds($param['username']);
if ($ids) {
$query->whereIn('admin_user_id', $ids);
} else {
$query->where('id', 0);
}
}
if (isset($param['new_license_place'])
&& !empty($param['new_license_place'])
) {
$new_id_arr = ParkingLicensePlate::getId(
$param['new_license_place']
);
$new_id_arr ? $query->whereIn(
'new_license_id',
$new_id_arr
) : $query->where('id', 0);
}
$query->orderBy('id', 'desc');
return $query;
}
public function getItem($item)
{
$item['space_number'] = ParkingSpace::getNumber($item['space_id']);
$item['old_license_place'] = ParkingLicensePlate::getNumber(
$item['old_license_id']
);
$item['new_license_place'] = ParkingLicensePlate::getNumber(
$item['new_license_id']
);
$item['username'] = AdminUsers::getUsername($item['admin_user_id']);
$item['update_time'] = $item['created_at'];
unset($item['space_id'], $item['old_license_id'], $item['new_license_id'], $item['admin_user_id'], $item['created_at']);
return $item;
}
}