OsmoticPressure.php
4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?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('操作失败');
}
}