Пример #1
0
 public function actionIndex()
 {
     $stations = Station::find()->all();
     if (!empty($stations)) {
         foreach ($stations as $station) {
             $lastTime = 0;
             $lastStatus = StationStatus::find()->where(['station_id' => $station['id'], 'received' => StationStatus::STATUS_RECEIVED, 'status' => StationStatus::STATUS_OK])->orderBy('time_update DESC')->one();
             if ($lastStatus) {
                 $lastTime = $lastStatus['time_update'];
             }
             $currentTime = time();
             if ($lastTime > 0 && $lastTime >= $currentTime - self::LIMIT_DURATION) {
                 $status = Station::STATUS_CONNECTED;
             } else {
                 $status = Station::STATUS_LOST;
             }
             if ($status != $station['status']) {
                 Yii::$app->db->createCommand()->update('station', ['status' => $status, 'updated_at' => time()], ['id' => $station['id']])->execute();
             }
         }
     }
 }
Пример #2
0
 public function actionStatus($id)
 {
     $model = $this->findModel($id);
     $parseData['model'] = $model;
     $parseData['dataProvider'] = new ActiveDataProvider(['query' => StationStatus::find()->where(['station_id' => $id])->orderBy('time_update DESC')]);
     $this->setDetailLeftMenu($id);
     return $this->render('status', $parseData);
 }