|
|
|
@ -81,17 +81,10 @@ class EventCalendarController extends BaseController |
|
|
|
$statusArr = EventCalendarService::getStatus(); |
|
|
|
$items = $query->latest()->forPage($page, $perPage)->select() |
|
|
|
->get()->each(function ($item) use ($statusArr) { |
|
|
|
$pattern = ParkingPattern::query()->find($item['pattern_id']); |
|
|
|
$item['pattern_name'] = ''; |
|
|
|
$item['show_release'] = 0; |
|
|
|
$item['show_change'] = 0; |
|
|
|
if ($pattern) { |
|
|
|
$item['pattern_name'] = $pattern['name']; |
|
|
|
if ($item['status'] == 1) { |
|
|
|
$item['show_release'] = $pattern['release']; |
|
|
|
$item['show_change'] = $pattern['change']; |
|
|
|
} |
|
|
|
} |
|
|
|
$pattern = ParkingPattern::getPatternInfo($item['pattern_id'], $item['status']); |
|
|
|
$item['pattern_name'] = $pattern['pattern_name']; |
|
|
|
$item['show_release'] = $pattern['show_release']; |
|
|
|
$item['show_change'] = $pattern['show_change']; |
|
|
|
|
|
|
|
$item['admin_username'] = AdminUsers::getUsername( |
|
|
|
$item['admin_user_id'] |
|
|
|
@ -412,4 +405,104 @@ class EventCalendarController extends BaseController |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取日历活动事例 |
|
|
|
* @param Request $request |
|
|
|
* @return JsonResponse |
|
|
|
*/ |
|
|
|
public function calendarList(Request $request): JsonResponse |
|
|
|
{ |
|
|
|
try { |
|
|
|
$year_month = $request->get('year_month', date('Y-m', time())); |
|
|
|
$days = get_year_month_days($year_month); |
|
|
|
$items = []; |
|
|
|
$year_month_times = strtotime($year_month); |
|
|
|
$statusArr = [0, 1]; |
|
|
|
foreach ($days as $day) { |
|
|
|
$date = date("Y-m", $year_month_times) . '-' . $day; |
|
|
|
$count = EventCalendar::query()->whereIn('status', $statusArr) |
|
|
|
->where(function ($query) use ($date) { |
|
|
|
$query->whereRaw( |
|
|
|
"'{$date}' BETWEEN start_time AND end_time" |
|
|
|
) |
|
|
|
->orWhereBetween( |
|
|
|
'start_time', |
|
|
|
[$date . ' 00:00:00', $date . ' 23:59:59'] |
|
|
|
); |
|
|
|
})->count(); |
|
|
|
if ($count > 0) { |
|
|
|
$items[] = $date; |
|
|
|
} |
|
|
|
} |
|
|
|
return $this->responseService->success([ |
|
|
|
'items' => $items, |
|
|
|
]); |
|
|
|
} catch (Exception $e) { |
|
|
|
$m_prefix = __('exception.exception_handler.resource'); |
|
|
|
return $this->responseService->systemError( |
|
|
|
$m_prefix . ':' . $e->getMessage() |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 通过日期查询活动模式 |
|
|
|
* @param Request $request |
|
|
|
* @return JsonResponse |
|
|
|
*/ |
|
|
|
public function calendarDayList(Request $request): JsonResponse |
|
|
|
{ |
|
|
|
try { |
|
|
|
$query = EventCalendar::query(); |
|
|
|
$data = $request->all(); |
|
|
|
$date = $data ['date'] ?? date("Y-m-d", time()); |
|
|
|
$date_times = strtotime($date); |
|
|
|
if (!$date_times) { |
|
|
|
throw new Exception(''); |
|
|
|
} |
|
|
|
|
|
|
|
$start_date = date("Y-m-d", $date_times); |
|
|
|
$start_time = $start_date . ' 00:00:00'; |
|
|
|
$end_time = $start_date . ' 23:59:59'; |
|
|
|
$statusIndexArr = [0, 1]; |
|
|
|
$query->whereIn('status', $statusIndexArr); |
|
|
|
|
|
|
|
$query->where( |
|
|
|
function ($query) use ($start_date, $start_time, $end_time) { |
|
|
|
$query->whereRaw( |
|
|
|
"'{$start_date}' BETWEEN start_time AND end_time" |
|
|
|
) |
|
|
|
->orWhereBetween( |
|
|
|
'start_time', |
|
|
|
[$start_time, $end_time] |
|
|
|
); |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
$columns = ['id', 'pattern_id', 'start_time', 'end_time', 'status']; |
|
|
|
$statusArr = EventCalendarService::getStatus(); |
|
|
|
$total = $query->count(); |
|
|
|
$items = $query->select($columns)->get()->each( |
|
|
|
function ($item) use ($statusArr) { |
|
|
|
$pattern = ParkingPattern::getPatternInfo($item['pattern_id'], $item['status']); |
|
|
|
$item['pattern_name'] = $pattern['pattern_name']; |
|
|
|
$item['show_release'] = $pattern['show_release']; |
|
|
|
$item['show_change'] = $pattern['show_change']; |
|
|
|
$item['status_index'] = $item['status']; |
|
|
|
$item['status'] = $statusArr[$item['status']] ?? ''; |
|
|
|
return $item; |
|
|
|
} |
|
|
|
); |
|
|
|
return $this->responseService->success([ |
|
|
|
'items' => $items, |
|
|
|
'total' => $total |
|
|
|
]); |
|
|
|
} catch (Exception $e) { |
|
|
|
$m_prefix = __('exception.exception_handler.resource'); |
|
|
|
return $this->responseService->systemError( |
|
|
|
$m_prefix . ':' . $e->getMessage() |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|