From 327df6ae83ee1d3cc61dd4589bf03e2217f40d4d Mon Sep 17 00:00:00 2001 From: colly <576734462@qq.com> Date: Mon, 07 Aug 2017 15:01:12 +0800 Subject: [PATCH] 修改上传及添加聚合函数 --- Yfs/Domain/Data.php | 39 +++++++++++++++++++ Yfs/Api/User.php | 2 Yfs/Api/Data.php | 37 ++++++++++++++++++ Library/Mongo/Lite.php | 15 +++++++ Yfs/Model/Base.php | 3 + 5 files changed, 95 insertions(+), 1 deletions(-) diff --git a/Library/Mongo/Lite.php b/Library/Mongo/Lite.php index 9d16b53..243b077 100644 --- a/Library/Mongo/Lite.php +++ b/Library/Mongo/Lite.php @@ -374,6 +374,21 @@ } /** + * ������ + * @param [type] $colName [description] + * @param [type] $params [description] + * @return [type] [description] + */ + public function aggregate($colName, $params){ + $col = $this->_getCol($colName); + // ������������ '_id' ������ + //$query = $this->_parseId($query); + $result = $col->aggregate($params); + + return $result['result']; + } + + /** * ��������������������� * * @param string $colName ��������� diff --git a/Yfs/Api/Data.php b/Yfs/Api/Data.php index 05d742f..3ccdf4e 100644 --- a/Yfs/Api/Data.php +++ b/Yfs/Api/Data.php @@ -10,6 +10,18 @@ 'upload' => array( 'data' => array('name' => 'data', 'type' => 'string' ,'require' => true, 'desc' => '������������'), ), + 'getUserDataList' => array( + 'user_id' => array( + 'name' => 'user_id', 'type' => 'string', 'require' => true, 'desc' => '������id' + ), + 'start_time' => array( + 'name' => 'start_time', 'type' => 'string', 'require' => true, 'desc' => '������������' + ), + 'end_time' => array( + 'name' => 'end_time', 'type' => 'string', 'require' => true, 'desc' => '������������' + ) + ), + ); } @@ -35,4 +47,29 @@ return $rs; } + /** + * ������������ + * @desc ������������ + * @return string user_id ������id + * @return string start_time ������������ + * @return string end_time ������������ + */ + public function getUserDataList(){ + $rs = array('code' => 0, 'msg' => '', 'info' => array()); + $data_service = new Domain_Data(); + $data_list = $data_service->getUserDataList($this->user_id, $this->start_time, $this->end_time); + if($data_list){ + $rs['msg'] = '������������������'; + $rs['info'] = $data_list; + } + else{print_r($data_lsit); + $rs['code'] = 1; + $rs['msg'] = '������������������'; + } + return $rs; + } + + + + } diff --git a/Yfs/Api/User.php b/Yfs/Api/User.php index 0fe23f6..1f73228 100644 --- a/Yfs/Api/User.php +++ b/Yfs/Api/User.php @@ -156,7 +156,7 @@ if($result == 0){ $user_service = new Domain_User(); $result = $user_service->resetPwd($this->phone, $this->password); - if($reslt == 0){ + if($result == 0){ $rs['msg'] = '������������������'; } elseif($result == 1){ diff --git a/Yfs/Domain/Data.php b/Yfs/Domain/Data.php index c5851ec..8a447f1 100644 --- a/Yfs/Domain/Data.php +++ b/Yfs/Domain/Data.php @@ -22,6 +22,7 @@ foreach ($data['data'] as $value) { $arr['value'] = $value['value']; $arr['create_time'] = $value['time']; + $arr['date'] = date('Y-m-d', strtotime($value)); $this->model->add($arr); if(isset($arr['_id'])) unset($arr['_id']); @@ -32,6 +33,44 @@ } + public function getList(){ + return $this->model->getList(); + } + + /** + * ��������������������������������������� + * @param [type] $user_id [description] + * @param [type] $start_time [description] + * @param [type] $end_time [description] + * @return [type] [description] + */ + public function getUserDataList($user_id, $start_time, $end_time){ + $result = $this->model->aggregate( + array( + array( + '$match' => array('create_time' => array('$gte' => $start_time.' 00:00:00', '$lte' => $end_time.' 23:59:59'), 'user_id' => $user_id) + ), + array( + '$group' => array('_id' => '$date', 'day' => array('$avg' => '$value')) + ), + array( + '$project' => array('_id' => 0, 'date'=> '$_id', 'day' => 1) + ) + ) + ); + + print_r($result); + die(); + return $this->model->getList(array('user_id' => $user_id, 'create_time' => array('$gte' => $start_time, '$lte' => $end_time))); + } + + + public function updateTime($data){ + $id = $data['_id']; + unset($data['_id']); + return $this->model->update($data, array('_id' => $id)); + } + } diff --git a/Yfs/Model/Base.php b/Yfs/Model/Base.php index 58de6e3..c4c6f7d 100644 --- a/Yfs/Model/Base.php +++ b/Yfs/Model/Base.php @@ -50,4 +50,7 @@ return $this->db->update($this->table, $data, $query); } + public function aggregate($params){ + return $this->db->aggregate($this->table, $params); + } } -- Gitblit v1.8.0