| <?php | 
|   | 
| class Service_DataThreeHourly extends System_Service_Base{ | 
|   | 
|     public function __construct(){ | 
|         $this->data_three_hourly_model = new DataThreeHourlyModel(); | 
|     } | 
|   | 
|     public function isSummary($day, $time_level){ | 
|         $result = $this->data_three_hourly_model->get(array('day' => $day, 'time_level' => $time_level)); | 
|         if($result){ | 
|             return true; | 
|         } | 
|         else{ | 
|             return false; | 
|         } | 
|     } | 
|   | 
|     public function summary($day, $time_level){ | 
|         if($time_level > 0 && $time_level <= 8){ | 
|             $hourly_model = new HourlyModel(); | 
|             $hour = ($time_level - 1)*3;             | 
|             $start_hour = $hour.':05:00'; | 
|             $end_hour = ($hour + 3).':05:00'; | 
|             if($hour < 10 ){ | 
|                 $start_hour = '0'.$start_hour; | 
|             } | 
|             if($hour + 2 < 10){ | 
|                 $end_hour = '0'.$end_hour; | 
|             } | 
|                 echo $start_hour.'---'.$end_hour; | 
|             $hourly_datas = $hourly_model->aggregate( | 
|                 array( | 
|                     array( | 
|                         '$match' => array('create_time' => array('$gte' => $day.' '.$start_hour, '$lt' => $day.' '.$end_hour)) | 
|                     ), | 
|                     array( | 
|                         '$group' => array('_id' => '$user_id', 'avg' => array('$avg' => '$value')) | 
|                     ), | 
|                     array( | 
|                         '$project' => array('_id' => 0, 'user_id' => '$_id', 'avg' => 1) | 
|                     ) | 
|                 )     | 
|             ); | 
|             if($hourly_datas){ | 
|                 foreach ($hourly_datas as $hourly_data) { | 
|                     $param['user_id'] = $hourly_data['user_id']; | 
|                     $param['hour_avg'] = floatval(substr($hourly_data['avg'], 0, 5)); | 
|                     $param['date'] = $day; | 
|                     $param['start_hour'] = $start_hour; | 
|                     $param['end_hour'] = $end_hour; | 
|                     $param['time_level'] = $time_level; | 
|                     $param['create_time'] = date('Y-m-d'); | 
|                     $this->data_three_hourly_model->add($param); | 
|                     unset($param); | 
|                 } | 
|             } | 
|         } | 
|         else{ | 
|             return false; | 
|         } | 
|          | 
|     } | 
|   | 
|   | 
| } |