diff --git a/app/Http/Controllers/Admin/VipAccessRecordController.php b/app/Http/Controllers/Admin/VipAccessRecordController.php index 93e3828..6d2885d 100644 --- a/app/Http/Controllers/Admin/VipAccessRecordController.php +++ b/app/Http/Controllers/Admin/VipAccessRecordController.php @@ -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() + ); + } + } } diff --git a/routes/admin/api.php b/routes/admin/api.php index de26e8b..2b649ef 100644 --- a/routes/admin/api.php +++ b/routes/admin/api.php @@ -4,6 +4,7 @@ use App\Http\Controllers\Admin\AuthController; use App\Http\Controllers\Admin\ConfigController; use App\Http\Controllers\Admin\FloorController; use App\Http\Controllers\Admin\IndexController; +use App\Http\Controllers\Admin\VipAccessRecordController; use App\Http\Controllers\Admin\VipListController; use App\Http\Controllers\Admin\OperationLogController; use App\Http\Controllers\Admin\ParkingLicensePlateController; @@ -44,6 +45,9 @@ Route::group(['prefix' => 'admin'], function () { Route::apiResource('vipList', VipListController::class); Route::get('vip_list/rule', [VipListController::class, 'rule']); Route::post('vip_list/import', [VipListController::class, 'import']); + // VIP进出记录 + Route::get('vipAccessRecord', [VipAccessRecordController::class, 'index']); + Route::get('vipAccessRecord/{id}', [VipAccessRecordController::class, 'show']); // 系统日志 Route::get('/operationLog/index', [OperationLogController::class, 'index']);