package models import ( "eta_gn/eta_index_lib/global" "fmt" "time" ) // EdbTerminal 指标终端 type EdbTerminal struct { TerminalId int `gorm:"primaryKey;autoIncrement;column:terminal_id" description:"终端ID"` Source int `gorm:"column:source" description:"指标来源类型"` Name string `gorm:"column:name" description:"终端别名"` TerminalCode string `gorm:"column:terminal_code" description:"终端编码,用于配置在机器上"` ServerUrl string `gorm:"column:server_url" description:"终端地址"` Num int `gorm:"column:num" description:"终端最大指标数"` Status int `gorm:"column:status" description:"状态,1启用,2禁用"` Value string `gorm:"column:value" description:"终端相关的凭证"` ModifyTime time.Time `gorm:"column:modify_time" description:"修改时间"` CreateTime time.Time `gorm:"column:create_time" description:"创建时间"` } // GetEdbTerminalListBySource 根据指标来源类型获取所有的终端列表 func GetEdbTerminalListBySource(source int) (items []*EdbTerminal, err error) { sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 ORDER BY terminal_id ASC ` err = global.DEFAULT_DmSQL.Raw(sql, source).Scan(&items).Error return } // GetEdbTerminalFirstBySource 根据指标来源类型获取配置的首个终端信息 func GetEdbTerminalFirstBySource(source int) (item *EdbTerminal, err error) { sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 ORDER BY terminal_id ASC Limit 1 ` err = global.DEFAULT_DmSQL.Raw(sql, source).First(&item).Error return } type TerminalCodeCountGroup struct { TerminalCode string Total int } // GetEdbTerminalByCode 根据终端编码获取终端信息 func GetEdbTerminalByCode(terminalCode string) (item *EdbTerminal, err error) { sql := ` SELECT * FROM edb_terminal WHERE terminal_code = ? ` err = global.DEFAULT_DmSQL.Raw(sql, terminalCode).First(&item).Error return } // GetEdbCountGroupByTerminal 获取终端code分组总数 func GetEdbCountGroupByTerminal(source int) (list []TerminalCodeCountGroup, err error) { //sql := `select terminal_code, count(1) as total from edb_info where source = ? AND no_update=0 AND terminal_code != "" AND terminal_code IS NOT NULL GROUP BY terminal_code` sql := `SELECT "terminal_code", COUNT(*) AS total FROM "eta_index"."edb_info" ei WHERE "source" = ? AND "no_update" = 0 AND "terminal_code" IS NOT NULL GROUP BY "terminal_code"` err = global.DEFAULT_DmSQL.Raw(sql, source).Scan(&list).Error return } type BaseIndexTerminalCode struct { TerminalCode string `description:"终端编码,用于配置在机器上"` IndexName string } // GetBaseIndexTerminalCode 获取数据源的终端code func GetBaseIndexTerminalCode(edbCode, tableName string) (item BaseIndexTerminalCode, err error) { sql := fmt.Sprintf(`select terminal_code, index_name from %s where index_code = ? `, tableName) err = global.DEFAULT_DmSQL.Raw(sql, edbCode).First(&item).Error return }