logService = $log; $this->logService->menuTitle = 'event_calendar'; // 默认超级管理员修改 $this->user_id = DB::table('admin_users')->where('username', 'Admin') ->value('id'); } /** * Execute the console command. */ public function handle() { $now_times = time(); $now_time = date("Y-m-d H:i:s", $now_times); // 结束活动,调整为默认模式 $where = [ ['status', '=', 1] ]; $runRes = EventCalendar::query()->where($where)->orderBy('created_at') ->first(); $start = true; // 数据存在,且结束时间到了,结束时间 if ($runRes) { $end_time = $runRes['end_time']; $run_id = $runRes['id']; $is_manual = $runRes['is_manual']; if ($end_time && strtotime($end_time) <= $now_times) { $this->updateStatus($run_id, 2); } elseif ($is_manual == 1) { // 手动开始的不切换模式 $start = false; } } // 启动 新模式 if ($start) { $where = [ ['status', '=', 0] ]; $res = EventCalendar::query()->where($where)->where(function ($query) use ($now_time) { $query->whereRaw( "'{$now_time}' BETWEEN start_time AND end_time" ); })->orderBy('start_time') ->first(['id']); $EventCalendarService = (new EventCalendarService($this->logService)); if ($res) { // 新活动运行 直接关闭旧活动 $new_id = $res['id']; if ($runRes && $runRes['id'] != $new_id) { $EventCalendarService->updateStatus($run_id, $this->user_id, 2); } $EventCalendarService->updateStatus($new_id, $this->user_id, 1, true); } else { // 如果不存在新活动模式,撤回默认模式 $pattern_id = EventCalendarService::getTargetModeId(); if ($pattern_id) { // 更新车位类型 $EventCalendarService->syncUpdateSpaceType($pattern_id); // 记录日志 AdminNoticeService::addChangeModeNotice($pattern_id, $this->user_id); } } } } }