From 98c4aaeaf8e7d0d26481c9ec66fa32dbc34c713d Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq.com> Date: Tue, 18 Aug 2026 11:22:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=9C=E8=BD=A6=E5=8E=86=E5=8F=B2=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Exports/ParkingAccessRecordExport.php | 33 ++++++++++++++----- .../Admin/ParkingAccessRecordController.php | 20 +++++------ 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/app/Exports/ParkingAccessRecordExport.php b/app/Exports/ParkingAccessRecordExport.php index b79b16d..ba96ae9 100644 --- a/app/Exports/ParkingAccessRecordExport.php +++ b/app/Exports/ParkingAccessRecordExport.php @@ -83,24 +83,39 @@ class ParkingAccessRecordExport implements FromArray, WithHeadings if (isset($parents['status']) && is_numeric($parents['status'])) { $query->where('status', $parents['status']); } + $is_enter = 0; + $is_leave = 0; + $start_enter_time = ''; + $end_enter_time = ''; + $start_leave_time = ''; + $end_leave_time = ''; if (isset($parents['start_enter_time']) && isset($parents['end_enter_time'])) { if ($parents['start_enter_time'] && $parents['end_enter_time']) { + $is_enter = $parents['start_enter_time'] != $parents['end_enter_time'] ? 1: 2; $start_enter_time = strtotime($parents['start_enter_time'] . ' 00:00:00'); $end_enter_time = strtotime($parents['end_enter_time']. ' 23:59:59'); - $query->whereBetween( - 'enter_time', - [$start_enter_time, $end_enter_time] - ); } } if (isset($parents['start_leave_time']) && isset($parents['end_leave_time'])) { if ($parents['start_leave_time'] && $parents['end_leave_time']) { + $is_leave = $parents['start_leave_time'] != $parents['end_leave_time'] ? 1: 2; $start_leave_time = strtotime($parents['start_leave_time'] . ' 00:00:00'); - $end_leave_time = strtotime($parents['end_leave_time']. ' 23:59:59'); - $query->whereBetween( - 'enter_time', - [$start_leave_time, $end_leave_time] - ); + $end_leave_time = strtotime($parents['end_leave_time'] . ' 23:59:59'); + } + } + if ($is_enter == 2 && $is_leave == 2) { + $query->where( + 'enter_time','>=', $start_enter_time + ); + $query->where( + 'leave_time','<=', $end_leave_time + ); + } else { + if ($is_enter) { + $query->whereBetween('enter_time', [$start_enter_time, $end_enter_time]); + } + if ($is_leave) { + $query->whereBetween('leave_time', [$start_leave_time, $end_leave_time]); } } $columns = [ diff --git a/app/Http/Controllers/Admin/ParkingAccessRecordController.php b/app/Http/Controllers/Admin/ParkingAccessRecordController.php index f25c966..a271e4f 100644 --- a/app/Http/Controllers/Admin/ParkingAccessRecordController.php +++ b/app/Http/Controllers/Admin/ParkingAccessRecordController.php @@ -117,10 +117,10 @@ class ParkingAccessRecordController extends BaseController $is_enter = 0; $is_leave = 0; - $start_leave_times = ''; - $end_leave_times = ''; $start_enter_times = ''; $end_enter_times = ''; + $start_leave_times = ''; + $end_leave_times = ''; if ($request->has('start_enter_time') && $request->has( 'end_enter_time' @@ -130,8 +130,8 @@ class ParkingAccessRecordController extends BaseController $end_enter_time = $request->input('end_enter_time'); if ($start_enter_time && $end_enter_time) { $is_enter = $start_enter_time != $end_enter_time ? 1 : 2; - $start_leave_times = strtotime($start_enter_time . ' 00:00:00'); - $end_leave_times = strtotime($end_enter_time . ' 23:59:59'); + $start_enter_times = strtotime($start_enter_time . ' 00:00:00'); + $end_enter_times = strtotime($end_enter_time . ' 23:59:59'); } } @@ -144,24 +144,24 @@ class ParkingAccessRecordController extends BaseController $end_leave_time = $request->input('end_leave_time'); if ($start_leave_time && $end_leave_time) { $is_leave = $start_leave_time != $end_leave_time ? 1 : 2; - $start_enter_times = strtotime($start_leave_time . ' 00:00:00'); - $end_enter_times = strtotime($end_leave_time . ' 23:59:59'); + $start_leave_times = strtotime($start_leave_time . ' 00:00:00'); + $end_leave_times = strtotime($end_leave_time . ' 23:59:59'); } } if ($is_enter == 2 && $is_leave == 2) { $query->where( - 'enter_time','>=', $start_leave_times + 'enter_time','>=', $start_enter_times ); $query->where( - 'leave_time','<=', $end_enter_times + 'leave_time','<=', $end_leave_times ); } else { if ($is_enter) { - $query->whereBetween('enter_time', [$start_leave_times, $end_leave_times]); + $query->whereBetween('enter_time', [$start_enter_times, $end_enter_times]); } if ($is_leave) { - $query->whereBetween('leave_time', [$start_enter_times, $end_enter_times]); + $query->whereBetween('leave_time', [$start_leave_times, $end_leave_times]); } }