From 38d32cf992f9d5aa822bab85281b509a269bf113 Mon Sep 17 00:00:00 2001 From: colly_wyx <wangyixiong_007@163.com> Date: Thu, 29 Mar 2018 17:20:51 +0800 Subject: [PATCH] 增加平均值及状态 --- Yfs/Api/Data.php | 15 ++++++++++++++- Yfs/Domain/DataDaily.php | 31 +++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletions(-) diff --git a/Yfs/Api/Data.php b/Yfs/Api/Data.php index 36c1ee3..8b0a200 100644 --- a/Yfs/Api/Data.php +++ b/Yfs/Api/Data.php @@ -60,8 +60,21 @@ if($this->start_time == $this->end_time || $data_daily_service->checkTime($this->start_time, $this->end_time)){ $result = $data_daily_service->getUserDataList($this->user_id, $this->start_time, $this->end_time); if($result){ + $res_avg = $data_daily_service->getUserDataAvg($this->user_id, $this->start_time, $this->end_time); + if($res_avg < 0.25){ + $res_status = '������'; + } + elseif($res_avg >= 0.25 && $res_avg < 0.8){ + $res_status = '������'; + } + elseif($res_avg >= 8 && $res_avg < 2){ + $res_status = '������'; + } + else{ + $res_status = '������'; + } $rs['msg'] = '������������������'; - $rs['info'] = $result; + $rs['info'] = array('data' => $result, 'avg' => $res_avg, 'status' => $res_status); } else{ $rs['msg'] = '������������'; diff --git a/Yfs/Domain/DataDaily.php b/Yfs/Domain/DataDaily.php index 57cf6f7..6f19bd8 100644 --- a/Yfs/Domain/DataDaily.php +++ b/Yfs/Domain/DataDaily.php @@ -38,6 +38,37 @@ } /** + * ������������������������������������������ + * @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', 'avg' => array('$avg' => '$day_avg')) + ), + array( + '$project' => array('_id' => 0, 'avg' => 1) + ) + ) + ); + } + return $result[0]['avg']; + } + + /** * ������������ * @param [type] $start_time [description] * @param [type] $end_time [description] -- Gitblit v1.8.0