public function feedMain()
 {
     $CaNotes = new NotesCa_controller();
     $start = $this->request->query->get('start');
     $end = $this->request->query->get('end');
     //get local events
     $cacheName = App::$instance->tbId . ".vks.events.calendar.{$start}.{$end}";
     $events = App::$instance->cache->get($cacheName);
     if (!$events) {
         $events = Vks::where('start_date_time', ">=", $start)->where('start_date_time', '<=', $end)->with("connection_codes")->whereIn('status', [VKS_STATUS_PENDING, VKS_STATUS_APPROVED])->get();
         $cachedObj = new CachedObject($events, ['tag.' . $cacheName, "tag." . App::$instance->tbId . ".vks.events.calendar"]);
         App::$instance->cache->set($cacheName, $cachedObj, 3600 * 24 * 3);
     }
     //get events from central server
     if (Auth::isAdmin(App::$instance)) {
         //pull from central
         $getFromCA = Curl::get(ST::routeToCaApi("getVksWasInPeriodForTb/" . App::$instance->tbId . "/" . $start . "/" . $end));
         $getFromCA = json_decode($getFromCA);
         if ($getFromCA && $getFromCA->status == 200) {
             $getFromCA = $getFromCA->data;
         } else {
             $getFromCA = array();
         }
         //add to events container
         foreach ($getFromCA as $CAVks) {
             $CAVks->fromCa = true;
             $CAVks->tbFlag = $CaNotes->checkFlag($CAVks->id);
             $CAVks->isLinked = Vks::where('link_ca_vks_id', $CAVks->id)->count();
             $events[] = $CAVks;
         }
     }
     $events = $this->prepareEvents($events);
     print json_encode($events);
     //output
 }
Beispiel #2
0
$CaNotes = new NotesCa_controller();
if ($now->format('i') % 15 == 0) {
    $events = Vks::where(function ($query) use($now) {
        $query->where('start_date_time', $now)->whereIn('status', [VKS_STATUS_APPROVED]);
    })->where(function ($query) {
        $query->where('flag', 1)->orWhere('record_required', 1);
    })->get(['id', 'start_date_time', 'end_date_time', 'title', 'record_required', 'status', 'approved_by', 'owner_id', 'is_simple', 'flag'])->toArray();
    $CaEventsTmp = CAInsideParticipant::where('attendance_id', App::$instance->tbId)->with(['vks' => function ($query) use($mskTime) {
        $query->where('start_date_time', $mskTime)->whereIn('status', [VKS_STATUS_APPROVED]);
    }])->get(['vks_id']);
    //add to events container
    $CaEvents = [];
    foreach ($CaEventsTmp as $CAVks) {
        if ($CAVks->vks) {
            $CAVks->vks->fromCa = true;
            $CAVks->vks->tbFlag = $CaNotes->checkFlag($CAVks->vks->id);
            $CAVks->vks->start_date_time = $CAVks->vks->start_date_time instanceof DateTime ? $CAVks->vks->start_date_time : date_create($CAVks->vks->start_date_time);
            $CAVks->vks->end_date_time = $CAVks->vks->end_date_time instanceof DateTime ? $CAVks->vks->end_date_time : date_create($CAVks->vks->end_date_time);
            if ($CAVks->vks->tbFlag) {
                $CaEvents[] = $CAVks->vks;
            }
        }
    }
    $events = array_merge($events, $CaEvents);
    //dump($events);
    if (count($events)) {
        foreach ($events as $event) {
            if ($event['start_date_time']->getTimestamp() - $now->getTimestamp() <= 1200) {
                if (isset($event['fromCa'])) {
                    NoticeObs_controller::put("Внимание! до начала важной ВКС в ЦА " . ST::linkToCaVksPage($event['id']) . " осталось менее 20 минут, старт в " . date_create($event['start_date_time'])->format("H:i"), 1);
                } else {