| | |
| | | //DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers')); |
| | | $this->model = new Model_DataDaily(); |
| | | $this->data_three_hourly_model = new Model_DataThreeHourly(); |
| | | $this->data_hourly_model = new Model_DataHourly(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public function getUserDataAvg($user_id, $start_time, $end_time){ |
| | | |
| | | if($start_time == $end_time){ |
| | | $result = $this->data_three_hourly_model->get(array('date' => $start_time)); |
| | | if($result){ |
| | | $sum = 0; |
| | | for($i = 1; $i <= 8; $i++){ |
| | | $sum += $result['time_slot_'.$i]; |
| | | } |
| | | // if($start_time == $end_time){ |
| | | // $result = $this->data_hourly_model->get(array('date' => $start_time)); |
| | | // if($result){ |
| | | // $sum = 0; |
| | | // for($i = 1; $i <= 8; $i++){ |
| | | // $sum += $result['time_slot_'.$i]; |
| | | // } |
| | | |
| | | $result[0]['day_avg'] = $sum/8; |
| | | } |
| | | else{ |
| | | $result[0]['day_avg'] = 0; |
| | | } |
| | | // $result[0]['day_avg'] = $sum/8; |
| | | // } |
| | | // else{ |
| | | // $result[0]['day_avg'] = 0; |
| | | // } |
| | | |
| | | } |
| | | else{ |
| | | $result = $this->model->aggregate( |
| | | // } |
| | | // else{ |
| | | $result = $this->data_hourly_model->aggregate( |
| | | array( |
| | | array( |
| | | '$match' => array('date' => array('$gte' => $start_time, '$lte' => $end_time), 'user_id' => $user_id) |
| | | ), |
| | | array( |
| | | '$group' => array('_id' => '$user_id', 'day_avg' => array('$avg' => '$day_avg')) |
| | | '$group' => array('_id' => '$user_id', 'day_avg' => array('$avg' => '$value')) |
| | | ), |
| | | array( |
| | | '$project' => array('_id' => 0, 'day_avg' => 1) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | //} |
| | | |
| | | return isset($result[0]['day_avg'])?$result[0]['day_avg']:0; |
| | | return isset($result[0]['day_avg'])?floatval(substr($result[0]['day_avg'], 0, 5)):0; |
| | | } |
| | | |
| | | /** |