colly_wyx
2018-03-29 38d32cf992f9d5aa822bab85281b509a269bf113
增加平均值及状态
2 files modified
46 ■■■■■ changed files
Yfs/Api/Data.php 15 ●●●●● patch | view | raw | blame | history
Yfs/Domain/DataDaily.php 31 ●●●●● patch | view | raw | blame | history
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'] = '没有数据';
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]