public function saveDataPairs($params) { if ($this->prepared_pairs) { $bucket_size = $this->_findFeatureConstantValue('bucket_size', $params['sensor_features']); $total = count($this->prepared_pairs); for ($i = 0; $i < $total; $i++) { $pair = $this->prepared_pairs[$i]; $measuring_timestamp = date('Y-m-d H:i:s', isset($pair['measuring_timestamp']) ? $pair['measuring_timestamp'] : $this->incoming_measuring_timestamp); $criteria = new CDbCriteria(); $criteria->compare('DATE_FORMAT(measuring_timestamp, "%Y-%m-%d %H:%i:%s")', $measuring_timestamp); $criteria->compare('sensor_id', $params['sensor']->station_sensor_id); $sensor_data = SensorDataMinute::model()->find($criteria); if (!$sensor_data || $sensor_data->is_tmp || $params['rewrite_prev_values']) { if (!$sensor_data) { $sensor_data = new SensorDataMinute(); } $sensor_data->sensor_id = $params['sensor']->station_sensor_id; $sensor_data->station_id = $params['sensor']->station_id; $sensor_data->sensor_value = $pair['value']; $sensor_data->metric_id = $pair['metric_id']; $sensor_data->sensor_feature_normalized_value = $pair['normilized_value']; $sensor_data->bucket_size = $bucket_size; $sensor_data->listener_log_id = $params['listener_log_id']; $sensor_data->measuring_timestamp = $measuring_timestamp; $sensor_data->battery_voltage = $params['battery_voltage']; $sensor_data->is_tmp = 0; $sensor_data->save(); } } } }
public function saveDataPairs($params) { if ($this->prepared_pairs) { foreach ($params['sensor_features'] as $key => $value) { if ($value['feature_code'] == 'bucket_size') { $bucket_size = $value['feature_constant_value']; } } foreach ($this->prepared_pairs as $key => $pair) { $measuring_timestamp = date('Y-m-d H:i:s', isset($pair['measuring_timestamp']) ? $pair['measuring_timestamp'] : $this->incoming_measuring_timestamp); $criteria = new CDbCriteria(); $criteria->compare('DATE_FORMAT(measuring_timestamp, "%Y-%m-%d %H:%i:%s")', $measuring_timestamp); $criteria->compare('sensor_id', $params['sensor']->station_sensor_id); $sensor_data = SensorDataMinute::model()->find($criteria); if (!$sensor_data || $sensor_data->is_tmp || $params['rewrite_prev_values']) { if (!$sensor_data) { $sensor_data = new SensorDataMinute(); } $sensor_data->sensor_id = $params['sensor']->station_sensor_id; $sensor_data->station_id = $params['sensor']->station_id; $sensor_data->sensor_value = $pair['value']; $sensor_data->metric_id = $pair['metric_id']; $sensor_data->sensor_feature_normalized_value = $pair['normilized_value']; $sensor_data->bucket_size = $bucket_size; $sensor_data->listener_log_id = $params['listener_log_id']; $sensor_data->measuring_timestamp = $measuring_timestamp; $sensor_data->battery_voltage = $params['battery_voltage']; $sensor_data->is_tmp = 0; $sensor_data->save(); } } } }
private function logRainMessage() { $parts = str_getcsv($this->message_obj->message); $date = explode('/', $parts[0]); $time = explode(':', $parts[1]); $measuring_timestamp = mktime($time[0], $time[1], 0, $date[1], $date[2], '20' . $date[0]); $criteria = new CDbCriteria(); $criteria->condition = "DATE_FORMAT(measuring_timestamp, '%Y-%m-%d %H:%i:%s') = :measuring_timestamp AND sensor_id = :sensor_id"; $criteria->params = array(':measuring_timestamp' => date('Y-m-d H:i:s', $measuring_timestamp), ':sensor_id' => $this->_sensor->station_sensor_id); $sensor_data = SensorDataMinute::model()->find($criteria); if (!$sensor_data || $sensor_data->is_tmp || $this->message_obj->rewrite_prev_values) { if (!$sensor_data) { $sensor_data = new SensorDataMinute(); $sensor_data->sensor_id = $this->_sensor->station_sensor_id; $sensor_data->station_id = $this->message_obj->station_id; } $sensor_data->sensor_value = $parts[3]; $sensor_data->bucket_size = $this->_sensor->bucket_size; $sensor_data->listener_log_id = $this->message_obj->log_id; $sensor_data->measuring_timestamp = date('Y-m-d H:i:s', $measuring_timestamp); $sensor_data->battery_voltage = $parts[2]; $sensor_data->is_tmp = 0; $sensor_data->save(); } }