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