colly_wyx
2018-04-17 62d6bc507aec5c330bc698e81ad90cc2a130dd93
更新接口
2 files added
2 files modified
144 ■■■■■ changed files
application/library/Service/Daily.php 48 ●●●●● patch | view | raw | blame | history
application/library/Service/DataThreeHourly.php 66 ●●●●● patch | view | raw | blame | history
application/models/DataThreeHourly.php 7 ●●●●● patch | view | raw | blame | history
application/modules/Public/controllers/Data.php 23 ●●●●● patch | view | raw | blame | history
application/library/Service/Daily.php
@@ -31,54 +31,6 @@
                $param['create_time'] = $time;
                $this->daily_model->add($param);
                unset($param);
                for($i = 1; $i <= 8; $i ++){
                    if($i == 1){
                        $start_hour = '00:00:00';
                        $end_hour = '02:59:59';
                    }
                    elseif($i == 8){
                        $start_hour = '21:00:00';
                        $end_hour = '23:59:59';
                    }
                    else{
                        $hour = ($i - 1)*3;
                        $start_hour = $hour.':00:00';
                        $end_hour = ($hour + 2).':59:59';
                        if($hour < 10 ){
                            $start_hour = '0'.$start_hour;
                        }
                        if($hour + 2 < 10){
                            $end_hour = '0'.$end_hour;
                        }
                    }
                    $hourly_datas = $data_model->aggregate(
                        array(
                            array(
                                '$match' => array('create_time' => array('$gte' => $day.' '.$start_hour, '$lte' => $day.' '.$end_hour))
                            ),
                            array(
                                '$group' => array('_id' => '$user_id', 'avg' => array('$avg' => '$value'))
                            ),
                            array(
                                '$project' => array('_id' => 0, 'user_id' => '$_id', 'avg' => 1)
                            )
                        )
                    );
                    if($hourly_datas){
                        foreach ($hourly_datas as $hourly_data) {
                            $param['user_id'] = $hourly_data['user_id'];
                            $param['hour_avg'] = floatval(substr($hourly_data['avg'], 0, 5));
                            $param['date'] = $day;
                            $param['start_hour'] = $start_hour;
                            $param['end_hour'] = $end_hour;
                            $param['time_level'] = $i;
                            $param['create_time'] = $time;
                            $this->hourly_model->add($param);
                            unset($param);
                        }
                    }
                }
            }
            $dailyLog_service = new Service_DailyLog();
            $dailyLog_service->addLog($day);
application/library/Service/DataThreeHourly.php
New file
@@ -0,0 +1,66 @@
<?php
class Service_Data_Three_Hourly extends System_Service_Base{
    public function __construct(){
        $this->data_three_hourly_model = new DataThreeHourlyModel();
    }
    public function isSummary($day, $time_level){
        $result = $this->data_three_hourly_model->get(array('day' => $day, 'time_level' => $time_level));
        if($result){
            return true;
        }
        else{
            return false;
        }
    }
    public function summary($day, $time_level){
        if($time_level > 0 && $time_level <= 8){
            $hourly_model = new DataHourlyModel();
            $hour = ($time_level - 1)*3;
            $start_hour = $hour.':00:00';
            $end_hour = ($hour + 2).':00:00';
            if($hour < 10 ){
                $start_hour = '0'.$start_hour;
            }
            if($hour + 2 < 10){
                $end_hour = '0'.$end_hour;
            }
            $hourly_datas = $hourly_model->aggregate(
                array(
                    array(
                        '$match' => array('create_time' => array('$gte' => $day.' '.$start_hour, '$lte' => $day.' '.$end_hour))
                    ),
                    array(
                        '$group' => array('_id' => '$user_id', 'avg' => array('$avg' => '$value'))
                    ),
                    array(
                        '$project' => array('_id' => 0, 'user_id' => '$_id', 'avg' => 1)
                    )
                )
            );
            if($hourly_datas){
                foreach ($hourly_datas as $hourly_data) {
                    $param['user_id'] = $hourly_data['user_id'];
                    $param['hour_avg'] = floatval(substr($hourly_data['avg'], 0, 5));
                    $param['date'] = $day;
                    $param['start_hour'] = $start_hour;
                    $param['end_hour'] = $end_hour;
                    $param['time_level'] = $time_level;
                    $param['create_time'] = date('Y-m-d');
                    $this->data_three_hourly_model->add($param);
                    unset($param);
                }
            }
        }
        else{
            return false;
        }
    }
}
application/models/DataThreeHourly.php
New file
@@ -0,0 +1,7 @@
<?php
class DataThreeHourlyModel extends System_Model_Base{
    public $table = "data_three_hourly";
}
application/modules/Public/controllers/Data.php
@@ -32,6 +32,27 @@
            die();
        }
    }
        public function ThreeHourlyAction(){
            $data_three_hourly_service = new Service_DataThreeHourly();
            $day = $this->get('day', date('Y-m-d'));
            echo $day;
            if(!$data_three_hourly_service->isSummary($day)){
                if($data_three_hourly_service->summary($day)){
                    echo "汇总成功";
                }
                else{
                    echo "汇总失败";
                }
            }
            else{
                echo '当前时间已经汇总过了';
            }
            die();
        }