package service import ( deviceDao "iot_manager_service/app/device/dao" ) type BigService interface { DeviceCount() deviceDao.DeviceStatus ListDevices() []deviceDao.Device } var BigServer = new(bigService) type bigService struct { } // 设备的数量 func (big *bigService) DeviceNum(queryType string) deviceDao.QueryDevices { var server BigService server = getService(queryType) obj := server.DeviceCount() return deviceDao.QueryDevices{ CountNum: obj.CountNum, FaultNum: obj.FaultNum, Devices: server.ListDevices(), } } // 获取灯杆的数量 func (big *bigService) GetLampCount() (int64, int64) { dao := deviceDao.LampPole{} all, err1 := dao.CountAll() fault, err2 := dao.CountFault() if err1 != nil { all = 0 } if err2 != nil { fault = 0 } return all, fault } // 获取设备的状态 func (big *bigService) DevicesStatus() []deviceDao.DeviceStatus { //1.灯杆 2.灯控 3.摄像头 4.led 5.环境传感器 6.网关 7. 报警器 8.管理端 //9.路面状况传感器 10.ip音柱 11.集控器 12.抓拍单元 var names = []string{"camera", "wisdomGateway", "lightControl", "switchBox", "infoBoard", "optoSensor", "zigBee", "aKeyAlarmTerminal", "aKeyAlarmServe", "lampPole", "captureUnit", "bridgeSensor", "ipCast", "manhole"} var rsp = make([]deviceDao.DeviceStatus, 0, 14) //创建了一个长度为0、容量为14的切片 for _, v := range names { ds := getService(v).DeviceCount() ds.DeviceType = v rsp = append(rsp, ds) } return rsp } // 报警状态 func (big *bigService) AlarmStatus() []deviceDao.DeviceStatus { var names = []string{"camera", "lightControl", "infoBoard", "optoSensor", "zigBee", "lampPole", "captureUnit"} var rsp = make([]deviceDao.DeviceStatus, 0, 6) //创建了一个长度为0、容量为6的切片 for _, v := range names { ds := getService(v).DeviceCount() ds.DeviceType = v rsp = append(rsp, ds) } return rsp } // 根据设备名称获取服务 func getService(deviceName string) BigService { switch deviceName { case "camera": return CameraService case "wisdomGateway", "gateway": return GatewayService case "lightControl", "control": return LightControlService case "switchBox", "box": return SwitchBoxService case "infoBoard", "board": return InfoBoardService case "optoSensor", "sensor": return OptoSensorService case "zigBee", "zigbee": return ZigbeeService case "aKeyAlarmTerminal", "terminal": return AlarmTerminalService case "aKeyAlarmServe", "serve": return AlarmService case "lampPole", "lamppole": return LampPoleService case "captureUnit": return CaptureUintService case "bridgeSensor", "xueshui": return BridgeService case "ipCast", "ipcast": return IpBroadcastService case "manhole": return ManholeCoverService default: return nil } } // 获取能量 func (big *bigService) GetEnergy(start, end string) []deviceDao.Energy { return deviceDao.GetEnergy(start, end) } // 获取灯控状态 func (big *bigService) GetLightRate(tenant string) []interface{} { return deviceDao.GetLightRate(tenant) } // 获取报警信息 func (big *bigService) GetAlarmInfo() deviceDao.AlarmList { return deviceDao.GetAlarmInfo() } // 获取环境监测 func (big *bigService) GetEnv(deviceId string) deviceDao.Environment { return deviceDao.GetEnvData(deviceId) } // 获取led程序 func (big *bigService) GetLEDProgram(tenantId string) []deviceDao.InfoBoardProgram { return deviceDao.GetLEDProgramList(tenantId) } // 获取程序路径 func (big *bigService) GetProgramUrl(id string) deviceDao.Program { return deviceDao.GetProgramUrl(id) } // 获取桥接传感器 func (big *bigService) GetBridgeSensors(tenantId string) []deviceDao.Sensor { return deviceDao.GetBridgeSensors(tenantId) } // 概述 func (big *bigService) OverView(tenantId, padScreen string) []deviceDao.OverViewInfo { dao := deviceDao.OverView{} return dao.Query(tenantId, padScreen) } // 提交 func (big *bigService) Submit(data []deviceDao.OverView) { dao := deviceDao.OverView{} for _, v := range data { dao.Submit(v) } }