From 62d6bc507aec5c330bc698e81ad90cc2a130dd93 Mon Sep 17 00:00:00 2001 From: colly_wyx <wangyixiong_007@163.com> Date: Tue, 17 Apr 2018 15:24:20 +0800 Subject: [PATCH] 更新接口 --- application/library/Service/Daily.php | 48 ---------------- application/models/DataThreeHourly.php | 7 ++ application/library/Service/DataThreeHourly.php | 66 ++++++++++++++++++++++ application/modules/Public/controllers/Data.php | 23 +++++++ 4 files changed, 95 insertions(+), 49 deletions(-) diff --git a/application/library/Service/Daily.php b/application/library/Service/Daily.php index 5717e37..d4c8a38 100644 --- a/application/library/Service/Daily.php +++ b/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); diff --git a/application/library/Service/DataThreeHourly.php b/application/library/Service/DataThreeHourly.php new file mode 100644 index 0000000..ad81827 --- /dev/null +++ b/application/library/Service/DataThreeHourly.php @@ -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; + } + + } + + +} \ No newline at end of file diff --git a/application/models/DataThreeHourly.php b/application/models/DataThreeHourly.php new file mode 100644 index 0000000..57585bd --- /dev/null +++ b/application/models/DataThreeHourly.php @@ -0,0 +1,7 @@ +<?php + +class DataThreeHourlyModel extends System_Model_Base{ + + public $table = "data_three_hourly"; + +} \ No newline at end of file diff --git a/application/modules/Public/controllers/Data.php b/application/modules/Public/controllers/Data.php index 2d2ab5b..e2bc821 100644 --- a/application/modules/Public/controllers/Data.php +++ b/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(); + + } + + \ No newline at end of file -- Gitblit v1.8.0