WaterLevel.php 2.6 KB
<?php

namespace app\api\validate\cloudapi;

use think\Validate;

/**
 * 水位验证器
 * Class WaterLevel
 * @package app\api\validate\cloudapi
 */
class WaterLevel extends Validate
{
    protected $rule =   [
        //查询字段
        'page|页码'  => 'require|integer|egt:1',
        'limit|每页数据条数' => 'require|integer|between:1,100',
        'device_code|设备编号' => 'require|checkStartEndTime',
        'start_time' => 'integer|gt:0',
        'end_time' => 'integer|gt:0',
        'sort|排序方式' => 'in:ASC,DESC',

        //设备字段
        'deviceId|设备编号' => 'require|max:50',//设备全局id(千寻硬件key、匠星数据key)
        'apiKey|匠星设备编号' => 'require|max:50',//设备key(匠星设备全局id)
        'qxDataKey|千寻数据key' => 'require|max:50',//千寻数据key
        'name|设备名称' => 'require|max:50',//设备名称
        'reservoir_id|水库ID' => 'require|integer',//水库
        'longitude|经度' => 'require|number|max:255',//经度
        'latitude|纬度' => 'require|number|max:255',//纬度
        'company_type|设备商' => 'require|in:1,2,3,4,5',//设备商:1=千寻,2=匠星,3=山洪防办,4=雄越,5=水文局
    ];

    protected $message  =   [

    ];

    protected $scene = [
        // 查询数据
        'query'  =>  ['page','limit','device_code','start_time','end_time','sort'],
        // 添加数据
        'add'  =>  [
            'reservoir_id|水库ID' => 'require|integer|egt:1',//水库ID
            'number|设备编号' => 'require',//设备编号
            'water_level|库水位' => 'require|number',//库水位
            'reporttime|时间(毫秒)' => 'require|integer|length:13',//采集时间
        ],
        // 添加设备-设备商(厂商不同验证字段也不同):1=千寻,2=匠星,3=山洪防办,4=雄越,5=水文局
        'device1'  =>  ['deviceId','qxDataKey','name','reservoir_id','longitude','latitude','company_type'],
        'device2'  =>  ['deviceId','apiKey','name','reservoir_id','longitude','latitude','company_type'],
        'device3'  =>  ['deviceId','name','reservoir_id','longitude','latitude','company_type'],
        'device4'  =>  ['deviceId','name','reservoir_id','longitude','latitude','company_type'],
        'device5'  =>  ['deviceId','name','reservoir_id','longitude','latitude','company_type'],
    ];

    /**
     * 验证起始时间和结束时间
     */
    protected function checkStartEndTime($value,$rule,$data){
        if (empty($data['start_time']) && empty($data['end_time'])){
            return '起始时间与结束时间不能同时为空';
        }
        return true;
    }
}