OsmoticPressure.php 4.2 KB
<?php

namespace app\api\controller\cloudapi;

use app\admin\model\reservoir\dam\Isotonic;
use app\admin\model\reservoir\Equipment;
use app\admin\model\reservoir\ReservoirEquipment;
use app\admin\model\reservoir\ReservoirList;
use think\Db;
use think\Loader;

/**
 * 渗压
 * Class OsmoticPressure
 * @package app\api\controller\cloudapi
 */
class OsmoticPressure extends Base
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    //定义验证器类
    protected $validateClass = 'app\api\validate\cloudapi\OsmoticPressure';

    /**
     * 获取渗压计数据
     */
    public function query(){
        $params = $this->request->param();
        //参数验证
        $validate = Loader::validate($this->validateClass);
        if(!$validate->scene('query')->check($params)){
            $this->error($validate->getError());
        }
        $where = [
            'di.equipment_id' => $params['device_code'],
        ];
        if (!empty($params['start_time']) && !empty($params['end_time'])){

            $where['di.createtime'] = ['between',[$params['start_time'], $params['end_time']]];

        }elseif (!empty($params['start_time']) && empty($params['end_time'])){

            $where['di.createtime'] = ['egt', $params['start_time']];

        }elseif (empty($params['start_time']) && !empty($params['end_time'])){

            $where['di.createtime'] = ['elt', $params['end_time']];

        }
        $order = [
            'di.createtime' => 'ASC'
        ];
        if (!empty($params['sort'])){
            $order['di.createtime'] = $params['sort'];
        }
        $field = 'di.value,di.dx_value,di.temp,di.reporttime as report_time';
        $tableName = 'reservoir_dam_isotonic';
        $total = Db::name($tableName)
            ->alias('di')
            ->field($field)
            ->where($where)
            ->count();
        if ($total > 0){
            $list = Db::name($tableName)
                ->alias('di')
                ->field($field)
                ->where($where)
                ->order($order)
                ->page($params['page'], $params['limit'])
                ->select();
        }
        $result = [
            'total' => $total,
            'list' => $list,
        ];
        $this->success('操作成功', $result);
    }

    /**
     * 添加渗压计数据
     */
    public function add(){
        $params = $this->request->param();
        //参数验证
        $validate = Loader::validate($this->validateClass);
        if(!$validate->scene('add')->check($params)){
            $this->error($validate->getError());
        }
        //查询水库是否存在
        $reservoir = ReservoirList::get($params['reservoir_id']);
        if (empty($reservoir)){
            $this->error('水库不存在');
        }
        //查询设备是否存在
        $device = (new Equipment())->where(['deviceId' => $params['equipment_id']])->find();
        if (empty($device)){
            $this->error('设备不存在');
        }
        $params['createtime'] = $params['reporttime'] / 1000;
        $model = new Isotonic();
        $res = $model->allowField(true)->insertGetId($params);
        if ($res){
            $this->success('操作成功');
        }
        $this->error('操作失败');
    }

    /**
     * 添加渗压计设备
     */
    public function device(){
        $params = $this->request->param();
        if (!isset($params['company_type']) || !in_array($params['company_type'], [1,2,3,4,5])){
            $this->error('设备商参数错误');
        }
        $scene = 'device' . $params['company_type'];
        $params['deviceId'] = empty($params['device_code']) ? '' : $params['device_code'];
        //参数验证
        $validate = Loader::validate($this->validateClass);
        if(!$validate->scene($scene)->check($params)){
            $this->error($validate->getError());
        }
        $params['type'] = 3;
        $params['status'] = '1';
        $params['createtime'] = time();
        $params['report_province_office'] = 0;
        $deviceModel = new ReservoirEquipment();
        $res = $deviceModel->allowField(true)->insertGetId($params);
        if ($res){
            $this->success('操作成功');
        }
        $this->error('操作失败');
    }
}