Raindp.php 6.1 KB
<?php

namespace app\api\controller\shanhaijing;

use app\common\controller\Api;
use think\Db;
use think\exception\PDOException;

/**
 * 
 */
class Raindp extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    public function TodaysRain($id = null){
        $rain = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->field('total_rainfall')->order('createtime desc')->find();
        $this->success('成功',$rain);
    }
    
    public function Allrain($id = null){
        $rainall = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->field('total_rainfall')->select();
        $this->success('成功',$rainall);
    }
    
    public function Allrain24hours($id = null){
        $daytime = date('Y-m-d');
        $daytime1 = date('Y-m-d',strtotime("$daytime - 1 day"));
        $rainall = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[$daytime1,$daytime])->field('total_rainfall')->select();
        $this->success('成功',$rainall);
    }
    
    public function Allrain7days($id = null){
        $daytime = date('Y-m-d');
        $daytime1 = date('Y-m-d',strtotime("$daytime - 7 day"));
        $rainall = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[$daytime1,$daytime])->field('total_rainfall')->select();
        $this->success('成功',$rainall);
    }
    
    public function Allrainamonth($id = null){
        $daytime = date('Y-m-d');
        $daytime1 = date('Y-m-d',strtotime("$daytime - 30 day"));
        $rainall = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[$daytime1,$daytime])->field('total_rainfall')->select();
        $this->success('成功',$rainall);
    }
    
    public function Todaywaterlevel($id = null){
        $rainall = Db::name('reservoir_rain_water_level')->where('reservoir_id',$id)->where('createtime','between time',[$daytime1,$daytime])->field('total_rainfall')->select();
        $this->success('成功',$rainall);
    }
    
    public function Trendwaterlevel($id = null){
        $daytime = date('Y-m-d');
        $daytime1 = date('Y-m-d',strtotime("$daytime + 1 day"));
        $onetime = date('Y-m-d');
        $endtime = date('Y-m-d',strtotime("$onetime - 1 day"));
        $time  = [];
        $warter = [];
        for($i = 0 ;$i<7;$i++){
            $daytime1 = date('Y-m-d',strtotime("$daytime1 - 1 day"));
            $timeobj = [
                    "time" => $daytime1
                ];
            $time[] = $timeobj;
            $daywarter = Db::name('reservoir_rain_water_level')->where('reservoir_id',$id)->where('createtime','between time',[$endtime,$onetime])->order('reporttime desc')->field('water_level')->find();
            $onetime = date('Y-m-d',strtotime("$onetime - 1 day"));
            $endtime = date('Y-m-d',strtotime("$endtime - 1 day"));
            $warter[] = $daywarter;
        }
        $data = [
            'time' => $time,
            'warter' => $warter
            ];
        $this->success('成功',$data);
    }
    
    //降水环比
    public function PrecipitationFrom($id = null){
        $jtime = date('Y-m-d');
        //24小时环比增长
        $hours24z = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 1 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->order('createtime desc')->field('total_rainfall')->find();
        $hours24f = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 1 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->field('total_rainfall')->find();
        $hours24b = $hours24z['total_rainfall'] - $hours24f['total_rainfall'];
        //7天环比增长
        $day7z = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 7 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->order('createtime desc')->field('total_rainfall')->find();
        $day7f = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 7 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->field('total_rainfall')->find();
        $day7b = $day7z['total_rainfall'] - $day7f['total_rainfall'];
        //30天环比增长
        $day30z = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 30 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->order('createtime desc')->field('total_rainfall')->find();
        $day30f = Db::name('reservoir_rain_rainfall')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 30 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->field('total_rainfall')->find();
        $day30b = $day30z['total_rainfall'] - $day30f['total_rainfall'];
        $data = [
            'hours24' => $hours24b,
            'day7' => $day30b,
            'day30' => $day30b
        ];
        $this->success('成功1',$data);
    }
    
    
    public function Warteravg($id = null){
        $jtime = date('Y-m-d');
        //24小时环比增长
        $hours24b = Db::name('reservoir_rain_water_level')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 1 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->avg('water_level');
        //7天环比增长
        $day7b = Db::name('reservoir_rain_water_level')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 7 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->avg('water_level');
        //30天环比增长
        $day30b = Db::name('reservoir_rain_water_level')->where('reservoir_id',$id)->where('createtime','between time',[date('Y-m-d',strtotime("$jtime - 30 day")),date('Y-m-d',strtotime("$jtime + 1 day"))])->avg('water_level');
        $data = [
            'hours24' => $hours24b,
            'day7' => $day30b,
            'day30' => $day30b
        ];
        $this->success('成功1',$data);
    }
    
    
}