12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package dao
- import "iot_manager_service/app/operation/model"
- type Alarm struct {
- TenantId string
- DeviceType int `gorm:"column:arm_device_type"` //设备类型
- Count int //总数
- NotHandlerCount int //未处理报警
- CountTime string `json:"countTime"` //统一时间
- }
- func (a Alarm) TableName() string {
- return "warn_platform_alarm"
- }
- func (a Alarm) Gets(req model.RequestAlarmFilter) ([]Alarm, error) {
- var list []Alarm
- countTimeFormat := "%Y-%m-%d"
- if req.QueryType == "month" {
- countTimeFormat = "%Y-%m"
- }
- deviceType := ""
- if a.rewirteDeviceType(req.QueryDeviceType) != "" {
- deviceType = " arm_device_type as device_type,"
- }
- sql := "SELECT count(*) AS count, date_format( arm_time, '" + countTimeFormat + "' ) AS count_time, " + deviceType + " sum(if(arm_handle=1, 1,0)) as not_handler_count FROM warn_platform_alarm WHERE "
- where := " arm_time>=? and arm_time<=?"
- if a.rewirteDeviceType(req.QueryDeviceType) != "" {
- where = " arm_time>=? and arm_time<=? and arm_device_type=" + a.rewirteDeviceType(req.QueryDeviceType)
- }
- sql += where
- group := " group by count_time"
- if a.rewirteDeviceType(req.QueryDeviceType) != "" {
- group = " GROUP BY count_time,device_type"
- }
- sql += group
- sql += " order by count_time desc"
- err := Db.Debug().Raw(sql, req.StartTime, req.EndTime).Scan(&list).Error
- return list, err
- }
- //重写前端传过来的数据,由于前端修改工程大,先这样处理了
- func (a Alarm) rewirteDeviceType(queryDeviceType string) string {
- switch queryDeviceType {
- case "count":
- return ""
- case "camera":
- return "1" //摄像机
- case "gateway":
- return "2" //网关
- case "lightcontrol":
- return "3" //灯控
- case "infoboard":
- return "5" //信息屏
- case "sensor":
- return "6" //环境监测
- case "zigbee":
- return "7" //集控器
- case "terminal":
- return "8" //一键告警终端
- case "capture":
- return "12" //抓拍单元
- case "bridgesensor": //雪水传感器
- return "13"
- case "ipcast":
- return "14" //IP音柱
- }
- return ""
- }
|