application/library/Service/Daily.php | ●●●●● patch | view | raw | blame | history | |
application/library/Service/DataThreeHourly.php | ●●●●● patch | view | raw | blame | history | |
application/models/DataThreeHourly.php | ●●●●● patch | view | raw | blame | history | |
application/modules/Public/controllers/Data.php | ●●●●● patch | view | raw | blame | history |
application/library/Service/Daily.php
@@ -31,54 +31,6 @@ $param['create_time'] = $time; $this->daily_model->add($param); unset($param); for($i = 1; $i <= 8; $i ++){ if($i == 1){ $start_hour = '00:00:00'; $end_hour = '02:59:59'; } elseif($i == 8){ $start_hour = '21:00:00'; $end_hour = '23:59:59'; } else{ $hour = ($i - 1)*3; $start_hour = $hour.':00:00'; $end_hour = ($hour + 2).':59:59'; if($hour < 10 ){ $start_hour = '0'.$start_hour; } if($hour + 2 < 10){ $end_hour = '0'.$end_hour; } } $hourly_datas = $data_model->aggregate( array( array( '$match' => array('create_time' => array('$gte' => $day.' '.$start_hour, '$lte' => $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'] = $i; $param['create_time'] = $time; $this->hourly_model->add($param); unset($param); } } } } $dailyLog_service = new Service_DailyLog(); $dailyLog_service->addLog($day); application/library/Service/DataThreeHourly.php
New file @@ -0,0 +1,66 @@ <?php class Service_Data_Three_Hourly 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 DataHourlyModel(); $hour = ($time_level - 1)*3; $start_hour = $hour.':00:00'; $end_hour = ($hour + 2).':00:00'; if($hour < 10 ){ $start_hour = '0'.$start_hour; } if($hour + 2 < 10){ $end_hour = '0'.$end_hour; } $hourly_datas = $hourly_model->aggregate( array( array( '$match' => array('create_time' => array('$gte' => $day.' '.$start_hour, '$lte' => $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; } } } application/models/DataThreeHourly.php
New file @@ -0,0 +1,7 @@ <?php class DataThreeHourlyModel extends System_Model_Base{ public $table = "data_three_hourly"; } application/modules/Public/controllers/Data.php
@@ -32,6 +32,27 @@ die(); } } public function ThreeHourlyAction(){ $data_three_hourly_service = new Service_DataThreeHourly(); $day = $this->get('day', date('Y-m-d')); echo $day; if(!$data_three_hourly_service->isSummary($day)){ if($data_three_hourly_service->summary($day)){ echo "汇总成功"; } else{ echo "汇总失败"; } } else{ echo '当前时间已经汇总过了'; } die(); }