From 78981c784ebe0fda3d1ff20cabe4e21bed2e6549 Mon Sep 17 00:00:00 2001 From: colly <576734462@qq.com> Date: Mon, 07 Aug 2017 17:13:16 +0800 Subject: [PATCH] 数据获取接口完成 --- Yfs/Domain/Data.php | 36 +---------- Yfs/Model/DataDaily.php | 8 ++ Yfs/Api/Data.php | 31 ++++++++-- Yfs/Model/Base.php | 7 ++ Yfs/Domain/DataDaily.php | 55 ++++++++++++++++++ 5 files changed, 99 insertions(+), 38 deletions(-) diff --git a/Yfs/Api/Data.php b/Yfs/Api/Data.php index 3ccdf4e..6e104ea 100644 --- a/Yfs/Api/Data.php +++ b/Yfs/Api/Data.php @@ -56,19 +56,36 @@ */ 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; + $data_daily_service = new Domain_DataDaily(); + if($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($data_list){ + $rs['msg'] = '������������������'; + $rs['info'] = $data_list; + } + else{ + $rs['code'] = 1; + $rs['msg'] = '������������������'; + } } - else{print_r($data_lsit); + else{ $rs['code'] = 1; - $rs['msg'] = '������������������'; + $rs['msg'] = '���������������������������������������������������������������������������7���'; } return $rs; } + //public function updateTime(){ + // $data_service = new Domain_Data(); + // $datas = $data_service->getList(); + // foreach ($datas as $value) { + // $data['_id'] = $value['_id']; + // $data['date'] = date('Y-m-d', strtotime($value['create_time'])); + // $data_service->updateTime($data); + // } + + // } + diff --git a/Yfs/Domain/Data.php b/Yfs/Domain/Data.php index 8a447f1..60a685f 100644 --- a/Yfs/Domain/Data.php +++ b/Yfs/Domain/Data.php @@ -37,39 +37,13 @@ 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)); - } + //public function updateTime($data){ + // $id = $data['_id']; + // unset($data['_id']); + // return $this->model->update($data, array('_id' => $id)); + //} diff --git a/Yfs/Domain/DataDaily.php b/Yfs/Domain/DataDaily.php new file mode 100644 index 0000000..3074457 --- /dev/null +++ b/Yfs/Domain/DataDaily.php @@ -0,0 +1,55 @@ +<?php +/** + * ��������������� + */ +class Domain_DataDaily { + + public function __construct(){ + //DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers')); + $this->model = new Model_DataDaily(); + } + + /** + * ��������������������������������������� + * @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){ + $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)); + } + $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr))); + return $result; + } + + /** + * ������������ + * @param [type] $start_time [description] + * @param [type] $end_time [description] + * @return [type] [description] + */ + public function checkTime($start_time, $end_time){ + $start_time = strtotime($start_time); + $end_time = strtotime($end_time); + if($start_time > $end_time){ + return false; + } + $diff_days = ($end_time - $start_time) / 86400; + $total_days = $diff_days + 1;//��������������������� + if($total_days < 7){ + return false; + } + return true; + } + + + +} diff --git a/Yfs/Model/Base.php b/Yfs/Model/Base.php index c4c6f7d..2b904a2 100644 --- a/Yfs/Model/Base.php +++ b/Yfs/Model/Base.php @@ -46,6 +46,13 @@ return $this->db->insert($this->table, $data); } + /** + * [add description] + */ + public function save($data){ + return $this->db->insert($this->table, $data); + } + public function update($data, $query){ return $this->db->update($this->table, $data, $query); } diff --git a/Yfs/Model/DataDaily.php b/Yfs/Model/DataDaily.php new file mode 100644 index 0000000..686847d --- /dev/null +++ b/Yfs/Model/DataDaily.php @@ -0,0 +1,8 @@ +<?php + +class Model_DataDaily extends Model_Base{ + + public $table = 'data_daily'; + + +} -- Gitblit v1.8.0