From 5b00b28782f2c773aa9b63ac61584b70a366526c Mon Sep 17 00:00:00 2001
From: colly_wyx <wangyixiong_007@163.com>
Date: Fri, 30 Mar 2018 16:59:44 +0800
Subject: [PATCH] 更新
---
application/library/Service/Daily.php | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 51 insertions(+), 1 deletions(-)
diff --git a/application/library/Service/Daily.php b/application/library/Service/Daily.php
index cec26f9..bdaa784 100644
--- a/application/library/Service/Daily.php
+++ b/application/library/Service/Daily.php
@@ -4,6 +4,7 @@
public function __construct(){
$this->daily_model = new DailyModel();
+ $this->hourly_model = new HourlyModel();
}
public function summary($day){
@@ -25,14 +26,63 @@
$time = date('Y-m-d H:i:s');
foreach ($datas as $data) {
$param['user_id'] = $data['user_id'];
- $param['day_avg'] = substr($data['day_avg'], 0, 5);
+ $param['day_avg'] = floatval(substr($data['day_avg'], 0, 5));
$param['date'] = $day;
$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);
+
return true;
}
else{
--
Gitblit v1.8.0