Browse Source

预约统计优化5

master
wanghongjun 2 days ago
parent
commit
72931ad511
  1. 14
      app/Http/Controllers/Admin/ParkingReservationController.php
  2. 8
      app/Models/EventCalendar.php

14
app/Http/Controllers/Admin/ParkingReservationController.php

@ -339,14 +339,22 @@ class ParkingReservationController extends BaseController
$w = date('w', strtotime($date)); $w = date('w', strtotime($date));
$week_str = __service("reservation.week{$w}"); $week_str = __service("reservation.week{$w}");
$patternId = EventCalendar::getDatePatternId($date); $patternId = EventCalendar::getDatePatternId(
$date,
$now_date == $date
);
$space_set_name = ''; $space_set_name = '';
$member_type_list = []; $member_type_list = [];
$space_type_ids = $query->pluck('space_type_id')->toArray(); $space_type_ids = $query->pluck('space_type_id')->toArray();
if ($patternId) { if ($patternId) {
$space_set_name = ParkingPattern::getName($patternId); $space_set_name = ParkingPattern::getName($patternId);
$member_type_list = ParkingSpaceType::getData(); $pattern_space_type_ids
$counts = $space_type_ids ? array_count_values($space_type_ids) : []; = ParkingPatternSpace::getParkingSpaceTypeIds($patternId);
$member_type_list = ParkingSpaceType::getData(
$pattern_space_type_ids
);
$counts = $space_type_ids ? array_count_values($space_type_ids)
: [];
foreach ($member_type_list as &$item) { foreach ($member_type_list as &$item) {
$item['count'] = $counts[$item['id']] ?? 0; $item['count'] = $counts[$item['id']] ?? 0;
unset($item['id']); unset($item['id']);

8
app/Models/EventCalendar.php

@ -39,10 +39,14 @@ class EventCalendar extends Model
return date('Y-m-d H:i', strtotime($value)); return date('Y-m-d H:i', strtotime($value));
} }
public static function getDatePatternId($date) public static function getDatePatternId($date, $is_now_date)
{ {
$date .= date(" H:i:s", time()); $date .= date(" H:i:s", time());
return self::query()->whereIn('status', [0, 1])->where( $statusArr = [0,1];
if (!$is_now_date) {
$statusArr[] = 2;
}
return self::query()->whereIn('status', $statusArr)->where(
function ($query) use ($date) { function ($query) use ($date) {
$query->whereRaw( $query->whereRaw(
"'{$date}' BETWEEN start_time AND end_time" "'{$date}' BETWEEN start_time AND end_time"

Loading…
Cancel
Save