|
|
@@ -1,218 +0,0 @@
|
|
|
-package dao
|
|
|
-
|
|
|
-import (
|
|
|
- "fmt"
|
|
|
- "strings"
|
|
|
-)
|
|
|
-
|
|
|
-// 工作台
|
|
|
-type CountDevice struct {
|
|
|
- CountNum int `json:"countNum"`
|
|
|
- DeviceType string `json:"deviceType"`
|
|
|
-}
|
|
|
-
|
|
|
-// 获取所有设备的数量
|
|
|
-func GetDeviceCount(tenantId string) ([]CountDevice, error) {
|
|
|
- var result []CountDevice
|
|
|
- var count CountDevice
|
|
|
- Db.Model(&LampPole{}).Select(" count(*) count_num, 'lamppole' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&CameraDevice{}).Select(" count(*) count_num, 'camera' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&Gateway{}).Select(" count(*) count_num, 'gateway' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&LightControl{}).Select(" count(*) count_num, 'control' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&SwitchBox{}).Select(" count(*) count_num, 'box' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&InfoBoard{}).Select(" count(*) count_num, 'board' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&OptoSensor{}).Select(" count(*) count_num, 'sensor' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&Zigbee{}).Select(" count(*) count_num, 'zigbee' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&AlarmTerminal{}).Select(" count(*) count_num, 'terminal' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&Alarm{}).Select(" count(*) count_num, 'alarmserve' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- Db.Model(&IpBroadcast{}).Select(" count(*) count_num, 'ipcast' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted = 0", tenantId).Scan(&count)
|
|
|
- result = append(result, count)
|
|
|
- return result, nil
|
|
|
-}
|
|
|
-
|
|
|
-type CountAlarm struct {
|
|
|
- LastYearAlarm int `json:"lastYearAlarm"`
|
|
|
- LastMonthAlarm int `json:"lastMonthAlarm"`
|
|
|
- Backlog int `json:"backlog"`
|
|
|
-}
|
|
|
-
|
|
|
-func GetAlarmCount(tenantId string) (*CountAlarm, error) {
|
|
|
- var alarm CountAlarm
|
|
|
- return &alarm, nil
|
|
|
-}
|
|
|
-
|
|
|
-type CountJobTodo struct {
|
|
|
- BackJob int `json:"backJob"`
|
|
|
- LastMonthJob int `json:"lastMonthJob"`
|
|
|
- LastYearJob int `json:"lastYearJob"`
|
|
|
-}
|
|
|
-
|
|
|
-func GetCountJobTodo(tenantId string) (*CountJobTodo, error) {
|
|
|
- var todos CountJobTodo
|
|
|
- return &todos, nil
|
|
|
-}
|
|
|
-
|
|
|
-type Notification struct {
|
|
|
- Category int `json:"category"`
|
|
|
- Title string `json:"title"`
|
|
|
-}
|
|
|
-
|
|
|
-// func GetNotification(tenantId string) (*Notification, error) {
|
|
|
-// var notification Notification
|
|
|
-// return ¬ification, nil
|
|
|
-// }
|
|
|
-type DeviceState struct {
|
|
|
- DeviceType string `json:"deviceType"` //设备类型
|
|
|
- Name string `json:"name"` //设备名称
|
|
|
- Sn string `json:"sn"` //设备序列号
|
|
|
-}
|
|
|
-
|
|
|
-// 获取设备离线的状态
|
|
|
-func GetNotification(tenantId string) ([]DeviceState, error) {
|
|
|
- var result []DeviceState
|
|
|
- //灯杆设备
|
|
|
- Db.Model(&LampPole{}).Select(" pole_name as name, pole_sn as sn,status,'灯杆设备' device_type").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&result)
|
|
|
- result = append(result)
|
|
|
- ////摄像机
|
|
|
- var camera []DeviceState
|
|
|
- Db.Model(&CameraDevice{}).Select(" device_name as name,device_sn as sn,'摄像机' device_type ").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&camera)
|
|
|
- result = append(result, camera...)
|
|
|
- //网关
|
|
|
- var gateway []DeviceState
|
|
|
- Db.Model(&Gateway{}).Select(" gateway_name as name ,gateway_sn as sn,'网关' device_type ").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&gateway)
|
|
|
- result = append(result, gateway...)
|
|
|
- //灯控
|
|
|
- var light []DeviceState
|
|
|
- Db.Model(&LightControl{}).Select(" name,sn,'灯控' device_type").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&light)
|
|
|
- result = append(result, light...)
|
|
|
- //供电箱
|
|
|
- var box []DeviceState
|
|
|
- Db.Model(&SwitchBox{}).Select(" box_name as name ,box_sn as sn,'供电箱' device_type ").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&box)
|
|
|
- result = append(result, box...)
|
|
|
- //信息基本屏
|
|
|
- var info []DeviceState
|
|
|
- Db.Model(&InfoBoard{}).Select(" 'info_name as name,sn,'信息基本屏' device_type ").
|
|
|
- Where(" tenant_id = ? and is_enable!=1", tenantId).Find(&info)
|
|
|
- result = append(result, info...)
|
|
|
- //集控器
|
|
|
- var sensor []DeviceState
|
|
|
- Db.Model(&OptoSensor{}).Select(" name,sn,'集控器' device_type ").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&sensor)
|
|
|
- result = append(result, sensor...)
|
|
|
- //Zigbee集控器
|
|
|
- var zig []DeviceState
|
|
|
- Db.Model(&Zigbee{}).Select("name,sn,'Zigbee集控器' device_type").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&zig)
|
|
|
- result = append(result, zig...)
|
|
|
- //一键求助终端
|
|
|
- var terminal []DeviceState
|
|
|
- Db.Model(&AlarmTerminal{}).Select(" terminal_name as name ,terminal_sn as sn,'一键求助终端' device_type").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&terminal)
|
|
|
- result = append(result, terminal...)
|
|
|
- //一键求助管理机
|
|
|
- var alarm []DeviceState
|
|
|
- Db.Model(&Alarm{}).Select("serve_name as name ,serve_sn as sn,'一键求助管理机' device_type").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&alarm)
|
|
|
- result = append(result, alarm...)
|
|
|
- //ip音柱
|
|
|
- var cast []DeviceState
|
|
|
- Db.Model(&IpBroadcast{}).Select("cast_name as name,cast_sn as sn,'ip音柱' device_type ").
|
|
|
- Where("tenant_id = ? and is_deleted!=0", tenantId).Find(&cast)
|
|
|
- result = append(result, cast...)
|
|
|
- //桥梁传感器
|
|
|
- var bridge []DeviceState
|
|
|
- Db.Model(&BridgeSensor{}).Select("name,sn,'桥梁传感器' device_type").
|
|
|
- Where("tenant_id = ? and status!=-1", tenantId).Find(&bridge)
|
|
|
- result = append(result, bridge...)
|
|
|
- fmt.Println(result)
|
|
|
- return result, nil
|
|
|
-}
|
|
|
-
|
|
|
-type AqiData struct {
|
|
|
- Name string
|
|
|
- Aqi float64
|
|
|
-}
|
|
|
-type OptoSensorVO struct {
|
|
|
- OptoSensor
|
|
|
- Ids string `json:"ids"` //用于查询多个ID
|
|
|
- Brand string `json:"brand"` //品牌名称
|
|
|
- Model string `json:"model"` //型号名称
|
|
|
- RunState string `json:"runState"` //运行状态
|
|
|
- NetworkState int `json:"networkState"` //网络状态
|
|
|
- RealTimeTemperature string `json:"realTimeTemperature"` //实时温度
|
|
|
- RealTimeWindSpeed string `json:"realTimeWindSpeed"` //实时风速
|
|
|
- AirQuality string `json:"airQuality"` //空气质量等级
|
|
|
- AirIndex int `json:"airIndex"` //空气质量指数
|
|
|
- IlluminationIntensity string `json:"illuminationIntensity"` //光照强度
|
|
|
- Pm25 string `json:"pm25"` //PM2.5
|
|
|
- Pm10 string `json:"pm10"` //PM10
|
|
|
- Humidity string `json:"humidity"` //湿度
|
|
|
- Pressure string `json:"pressure"` //气压
|
|
|
- Noise string `json:"noise"` //噪音
|
|
|
- Direction string `json:"direction"` //风向
|
|
|
- EndLineTime string `json:"endLineTime"` //最后在线时间
|
|
|
- QueryGatewayIds string `json:"queryGatewayIds"` //虚拟字段---用作网关调用这里关联
|
|
|
- GatewayName string `json:"gatewayName"` //所属网关名称
|
|
|
- GatewaySn string `json:"gatewaySn"` //所属网关编码
|
|
|
- DistrictName string `json:"districtName"` //所在区(AQI展示)
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-// 获取aqi
|
|
|
-func GetAqi(tenantId string) (*OptoSensorVO, error) {
|
|
|
- var sensorVO OptoSensorVO // 声明一个OptoSensorVO类型的变量sensorVO
|
|
|
- var optoSensor OptoSensor // 声明一个OptoSensor类型的变量optoSensor
|
|
|
- optoSensor.TenantId = tenantId // 将传入的tenantId赋值给optoSensor的TenantId字段
|
|
|
- optoSensor.IsDefault = 1 // 将optoSensor的IsDefault字段设置为1
|
|
|
- isSet := len(optoSensor.GetDevicesByTenantId()) // 调用optoSensor的GetDevicesByTenantId方法获取设备数量,并将结果赋值给isSet
|
|
|
- if isSet == 0 { // 如果isSet为0,即没有设备
|
|
|
- optoSensor.IsDefault = 0 // 将optoSensor的IsDefault字段设置为0
|
|
|
- }
|
|
|
- list := optoSensor.getList(optoSensor) // 调用optoSensor的getList方法获取设备列表,并将结果赋值给list
|
|
|
- if isSet == 0 { // 如果isSet为0,即没有设备
|
|
|
- for _, sensor := range list { // 遍历设备列表
|
|
|
- if sensor.NetworkState == 1 { // 如果设备的NetworkState字段为1
|
|
|
- sensorVO = sensor // 将该设备赋值给sensorVO
|
|
|
- break // 跳出循环
|
|
|
- }
|
|
|
- }
|
|
|
- } else { // 如果isSet不为0,即有设备
|
|
|
- if len(list) != 0 { // 如果设备列表不为空
|
|
|
- sensorVO = list[0] // 将设备列表的第一个设备赋值给sensorVO
|
|
|
- }
|
|
|
- }
|
|
|
- if sensorVO.RealTimeTemperature != "" { // 如果sensorVO的RealTimeTemperature字段不为空
|
|
|
- temp := strings.Split(sensorVO.RealTimeTemperature, " ") // 使用空格将RealTimeTemperature字段拆分成字符串数组temp
|
|
|
- if len(temp) == 2 { // 如果拆分后的数组长度为2
|
|
|
- temperature := temp[0] + " " + temp[1] // 将temp数组的第一个元素和第二个元素拼接成字符串,并赋值给temperature
|
|
|
- sensorVO.RealTimeTemperature = temperature // 将temperature赋值给sensorVO的RealTimeTemperature字段
|
|
|
- }
|
|
|
- }
|
|
|
- return &sensorVO, nil // 返回sensorVO的地址和nil作为错误值
|
|
|
-}
|