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(); } } } }
public function updateStationStatus() { $model = new StationStatus(); $model->station_id = $this->request['id']; $model->request_string = $this->request['data']; $model->time_update = time(); $model->save(); }
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']); }