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
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;
|
|
}
|
|
}
|
|
|