|
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin; |
|
|
|
use App\Http\Controllers\Controller; |
|
|
|
use App\Models\AdminVipAccessRecord; |
|
|
|
use App\Models\AdminVipList; |
|
|
|
use App\Models\ParkingSpaceType; |
|
|
|
use App\Services\ApiResponseService; |
|
|
|
use Exception; |
|
|
|
use Illuminate\Http\JsonResponse; |
|
|
|
@ -34,24 +35,30 @@ class VipAccessRecordController extends Controller |
|
|
|
|
|
|
|
if ($request->has('space')) { |
|
|
|
$space = $request->input('space'); |
|
|
|
$query->where('parking_space_id', 'like', "%{$space}%"); |
|
|
|
if (!empty($space)) { |
|
|
|
$query->where('parking_space_id', 'like', "%{$space}%"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if ($request->has('space_number')) { |
|
|
|
// $space_number = $request->input('space_number'); |
|
|
|
if ($request->exists('space_number')) { |
|
|
|
$space_number = $request->input('space_number'); |
|
|
|
if (!empty($space_number)) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if ($request->has('license')) { |
|
|
|
$license = $request->input('license'); |
|
|
|
$vipIds = AdminVipList::query()->where( |
|
|
|
'license', |
|
|
|
'like', |
|
|
|
"%{$license}%" |
|
|
|
)->pluck('id'); |
|
|
|
if ($vipIds) { |
|
|
|
$query->whereIn('vip_list_id', $vipIds); |
|
|
|
} else { |
|
|
|
$query->where('id', 0); |
|
|
|
if (!empty($license)) { |
|
|
|
$vipIds = AdminVipList::query()->where( |
|
|
|
'license', |
|
|
|
'like', |
|
|
|
"%{$license}%" |
|
|
|
)->pluck('id'); |
|
|
|
if ($vipIds) { |
|
|
|
$query->whereIn('vip_list_id', $vipIds); |
|
|
|
} else { |
|
|
|
$query->where('id', 0); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -62,10 +69,12 @@ class VipAccessRecordController extends Controller |
|
|
|
) { |
|
|
|
$enter_start_time = $request->input('enter_start_time'); |
|
|
|
$enter_end_time = $request->input('enter_end_time'); |
|
|
|
$query->whereBetween( |
|
|
|
'enter_time', |
|
|
|
[$enter_start_time, $enter_end_time] |
|
|
|
); |
|
|
|
if (!empty($enter_start_time) && !empty($enter_end_time)) { |
|
|
|
$query->whereBetween( |
|
|
|
'enter_time', |
|
|
|
[$enter_start_time, $enter_end_time] |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if ($request->has('leave_start_time') |
|
|
|
@ -75,10 +84,12 @@ class VipAccessRecordController extends Controller |
|
|
|
) { |
|
|
|
$leave_start_time = $request->input('leave_start_time'); |
|
|
|
$leave_end_time = $request->input('leave_end_time'); |
|
|
|
$query->whereBetween( |
|
|
|
'enter_time', |
|
|
|
[$leave_start_time, $leave_end_time] |
|
|
|
); |
|
|
|
if (!empty($leave_start_time) && !empty($leave_end_time)) { |
|
|
|
$query->whereBetween( |
|
|
|
'enter_time', |
|
|
|
[$leave_start_time, $leave_end_time] |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 分页 |
|
|
|
@ -88,11 +99,7 @@ class VipAccessRecordController extends Controller |
|
|
|
$total = $query->count(); |
|
|
|
$items = $query->latest()->forPage($page, $perPage)->get()->each( |
|
|
|
function ($item) { |
|
|
|
$item['license_number'] = AdminVipList::query()->where( |
|
|
|
'id', |
|
|
|
$item['vip_list_id'] |
|
|
|
)->value('license'); |
|
|
|
return $item; |
|
|
|
return $this->optionItem($item); |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
@ -110,4 +117,36 @@ class VipAccessRecordController extends Controller |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected function optionItem(array $item): array |
|
|
|
{ |
|
|
|
$item['license_number'] = AdminVipList::query()->where( |
|
|
|
'id', |
|
|
|
$item['vip_list_id'] |
|
|
|
)->value('license'); |
|
|
|
$item['space_type'] = ParkingSpaceType::query()->where( |
|
|
|
'id', |
|
|
|
$item |
|
|
|
['parking_space_id'] |
|
|
|
)->value('name'); |
|
|
|
$item['space_number'] = ""; |
|
|
|
unset( |
|
|
|
$item['vip_list_id'], |
|
|
|
$item['parking_space_id'], |
|
|
|
$item['parking_number_id'] |
|
|
|
); |
|
|
|
return $item; |
|
|
|
} |
|
|
|
|
|
|
|
public function show(string $id): JsonResponse |
|
|
|
{ |
|
|
|
try { |
|
|
|
$data = AdminVipAccessRecord::query()->find($id)->toArray(); |
|
|
|
return $this->responseService->success($this->optionItem($data)); |
|
|
|
} catch (Exception $e) { |
|
|
|
return $this->responseService->systemError( |
|
|
|
__('exception.get_data_failed') . ':' . $e->getMessage() |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|