Screenapi.php 4.7 KB
<?php
/**
 * Created by PhpStorm.
 * User: pcl
 * Date: 2022/5/30
 * Time: 11:12
 */

namespace app\api\controller;

use think\Db;
use app\common\controller\Api;
use app\common\model\User;

/**
 * 水库总大屏
 * 0530新增接口
 *
 */
class Screenapi extends Api
{
    protected $noNeedLogin = '*';
    protected $noNeedRight = '*';

    public function _initialize()
    {
        parent::_initialize();
    }

    /**
     * 底部分类名称
     *
     */
    public function getCatName()
    {
        $arr = [
            '0' => ['id' => 1, 'name' => '全部'],
            '1' => ['id' => 2, 'name' => '摄像头'],
            '2' => ['id' => 3, 'name' => '雨量计'],
            '3' => ['id' => 4, 'name' => '北斗位移'],
            '4' => ['id' => 5, 'name' => '水库'],
            '5' => ['id' => 6, 'name' => '志愿者'],
            '6' => ['id' => 7, 'name' => '待办'],
        ];

        $this->success('获取成功', $arr);
    }

    /***
     * 获得海康监控的列表
     * 监控经纬度和视频地址
     */
    public function gethkDecList()
    {
        $wh['latitude'] = ['>', '0'];
        $list = Db::name('reservoir_hkws_hardware')
            ->alias('h')
            ->join('reservoir_list r', 'h.reservoir_id=r.id')
            ->order('h.reservoir_id', 'asc')
            ->where($wh)
            ->field('h.id,h.reservoir_id,h.name,h.type_child_name, h.scode,h.image,h.intercom_occupancy_userid,h.longitude,h.latitude,r.name as reservoir_name,video_type')
            ->select();
        foreach ($list as $k => $v) {
            $list[$k]['image'] = setQiniuFileUrl($v['image']);
            $list[$k]['indexCode'] = $v['scode'];
        }
        $this->success('获取成功', $list);
    }

    /**
     * 雨水情监测
     * 雨量计列表
     */
    public function equpTypeList()
    {
        $list = Db::name('reservoir_equipment')
            ->alias('h')
            ->join('reservoir_list r', 'h.reservoir_id=r.id')
            ->where(['type' => '5'])
            ->order('h.reservoir_id', 'asc')
            ->field('h.id,h.reservoir_id,h.name,h.status,h.longitude,h.latitude,r.name as reservoir_name')
            ->select();
        foreach ($list as $k => $v) {
            $list[$k]['longitude'] = str_replace("\r\n", "", $v['longitude']);
            $list[$k]['latitude'] = str_replace("\r\n", "", $v['latitude']);
            //当前降水量
            $now_rainfall = Db::name('reservoir_rain_rainfall')
                ->where(['reservoir_id' => $v['reservoir_id']])
                ->order('id', 'desc')
                ->value('total_rainfall');
            $list[$k]['now_rainfall'] = $now_rainfall ? $now_rainfall : 0;
            //累计降水量
            $star_time = date('Ymd', strtotime('-12 month', time()));
            $wh['reservoir_id'] = ['=', $v['reservoir_id']];
            $wh['daytime'] = ['>', $star_time];
            $all_rainfall = Db::name('reservoir_rainfall_ctday')
                ->where($wh)
                ->sum('total_rainfall');
            $list[$k]['all_rainfall'] = $all_rainfall ? $all_rainfall : 0;
            //当前库水位
            $water_level = Db::name('reservoir_warning_waterlevel')
                ->where(['reservoir_id' => $v['reservoir_id']])
                ->value('value');
            $list[$k]['all_rainfall'] = $water_level ? $water_level : 0;
            //当前库容量
            $kurong = Db::name('warterdata_capacityof')
                ->where(['warterdata' => $water_level])
                ->value('CapacityOf');
            $list[$k]['kurong'] = $kurong ? $kurong : 0;
        }
        $this->success('获取成功', $list);
    }

    /***
     * 位移设备列表
     *
     */
    public function displaceList()
    {
        $list = Db::name('reservoir_equipment')
            ->alias('h')
            ->join('reservoir_list r', 'h.reservoir_id=r.id')
            ->where(['type' => '6'])
            ->order('h.reservoir_id', 'asc')
            ->field('h.id,h.reservoir_id,h.name,h.status,h.longitude,h.latitude,r.name as reservoir_name')
            ->select();
        foreach ($list as $k => $v) {
            $list[$k]['longitude'] = str_replace("\r\n", "", $v['longitude']);
            $list[$k]['latitude'] = str_replace("\r\n", "", $v['latitude']);
            //当前最新1条数据
            $newinfo = Db::name('reservoir_dam_displacement')
                ->where(['reservoir_id' => $v['reservoir_id']])
                ->find();
            $list[$k]['xx'] = $newinfo['horizontal'];
            $list[$k]['yy'] = $newinfo['horizontalY'];
            $list[$k]['zz'] = $newinfo['vertical'];
        }
        $this->success('获取成功', $list);
    }

    /**
     * 待办列表
     */
    public function noticeList()
    {

    }


}