Example #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();
             }
         }
     }
 }
Example #2
0
 public function updateStationStatus()
 {
     $model = new StationStatus();
     $model->station_id = $this->request['id'];
     $model->request_string = $this->request['data'];
     $model->time_update = time();
     $model->save();
 }
Example #3
0
 public function actionDelete($id)
 {
     $id = Yii::$app->request->get('id');
     if ($id > 0) {
         // delete equipment status
         DcEquipmentStatus::deleteAll(['station_id' => $id]);
         // delete sensor status
         SensorStatus::deleteAll(['station_id' => $id]);
         // delete dc equipment status
         DcEquipmentStatus::deleteAll(['station_id' => $id]);
         // delete power status
         PowerStatus::deleteAll(['station_id' => $id]);
         // delete station status
         StationStatus::deleteAll(['station_id' => $id]);
         // delete station status controller
         StationStatusHandler::deleteAll(['station_id' => $id]);
         // delete warning
         $warnings = Warning::findAll(['station_id' => $id]);
         if (!empty($warnings)) {
             foreach ($warnings as $w) {
                 Yii::$app->db->createCommand()->delete('warning_picture', ['warning_id' => $w['id']])->execute();
             }
         }
         Warning::deleteAll(['station_id' => $id]);
         // delete station
         Station::deleteAll(['id' => $id]);
         //write log action
         Log::logControl(Yii::$app->user->id, Log::ACTION_DELETE_STATION, $id);
     }
     return $this->redirect(['index']);
 }