From 066fffc3e2d8107df55dd41d4d50dbe5b69886b1 Mon Sep 17 00:00:00 2001 From: colly_wyx <wangyixiong_007@163.com> Date: Sat, 28 Apr 2018 10:22:40 +0800 Subject: [PATCH] 解决上传原始数据接口bug --- Yfs/Domain/DataDaily.php | 52 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 45 insertions(+), 7 deletions(-) diff --git a/Yfs/Domain/DataDaily.php b/Yfs/Domain/DataDaily.php index 3074457..9bcfc23 100644 --- a/Yfs/Domain/DataDaily.php +++ b/Yfs/Domain/DataDaily.php @@ -7,6 +7,7 @@ public function __construct(){ //DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers')); $this->model = new Model_DataDaily(); + $this->hourly_model = new Model_DataHourly(); } /** @@ -19,18 +20,55 @@ public function getUserDataList($user_id, $start_time, $end_time){ $start_time = strtotime($start_time); $end_time = strtotime($end_time); - $diff_days = ($end_time - $start_time) / 86400; - $total_days = $diff_days + 1;//��������������������� - $step = ($total_days - $total_days % 7) / 7; - $days_arr= array(); - for($i = 0; $i < 7*$step ; $i+=$step){ - $days_arr[] = date('Y-m-d', strtotime('+'.$i.' day', $start_time)); + if($end_time > $start_time){ + $diff_days = ($end_time - $start_time) / 86400; + $total_days = $diff_days + 1;//��������������������� + //$step = ($total_days - $total_days % 7) / 7; + $days_arr= array(); + for($i = 0; $i < $total_days ; $i+=1){ + $days_arr[] = date('Y-m-d', strtotime('+'.$i.' day', $start_time)); + } + $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr))); } - $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr))); + else{ + $result = $this->hourly_model->getList(array('user_id' => $user_id, 'date' => date('Y-m-d', $start_time)), array(), array('time_level' => 1)); + } + return $result; } /** + * ������������������������������������������ + * @param [type] $user_id [description] + * @param [type] $start_time [description] + * @param [type] $end_time [description] + * @return [type] [description] + */ + public function getUserDataAvg($user_id, $start_time, $end_time){ + + // if($start_time == $end_time){ + // $result = $this->model->get(array('date' => $start_time)); + // } + // else{ + $result = $this->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')) + ), + array( + '$project' => array('_id' => 0, 'day_avg' => 1) + ) + ) + ); + //} + + return isset($result[0]['day_avg'])?$result[0]['day_avg']:0; + } + + /** * ������������ * @param [type] $start_time [description] * @param [type] $end_time [description] -- Gitblit v1.8.0