edb_terminal.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package models
  2. import (
  3. "eta/eta_index_lib/global"
  4. "fmt"
  5. "time"
  6. )
  7. // EdbTerminal 指标终端
  8. type EdbTerminal struct {
  9. TerminalId int `gorm:"column:terminal_id;type:int(9) UNSIGNED;primaryKey;not null;"`
  10. Source int `gorm:"column:source;type:int(9) UNSIGNED;comment:指标来源类型;default:0;"` // 指标来源类型
  11. Name string `gorm:"column:name;type:varchar(255);comment:终端别名;"` // 终端别名
  12. TerminalCode string `gorm:"column:terminal_code;type:varchar(255);comment:终端编码,用于配置在机器上;"` // 终端编码,用于配置在机器上
  13. ServerUrl string `gorm:"column:server_url;type:varchar(255);comment:终端地址;"` // 终端地址
  14. Num int `gorm:"column:num;type:int(9) UNSIGNED;comment:终端最大指标数;default:0;"` // 终端最大指标数
  15. ModifyTime time.Time `gorm:"column:modify_time;type:timestamp;comment:最近一次修改时间;default:CURRENT_TIMESTAMP;"` // 最近一次修改时间
  16. CreateTime time.Time `gorm:"column:create_time;type:datetime;comment:创建时间;default:NULL;"` // 创建时间
  17. Status int `gorm:"column:status;type:tinyint(4);comment:状态,1启用,2禁用;not null;default:1;"` // 状态,1启用,2禁用
  18. Value string `gorm:"column:value;type:text;comment:终端相关的凭证;"` // 终端相关的凭证
  19. DirPath string `gorm:"column:dir_path;type:varchar(255);comment:终端存放的文件夹路径;default:NULL;"` // 终端存放的文件夹路径
  20. IsApi int `gorm:"column:is_api;type:tinyint(4);comment:是否为api;default:0;"` // 是否为api
  21. }
  22. // GetEdbTerminalListBySource 根据指标来源类型获取所有的终端列表
  23. func GetEdbTerminalListBySource(source int) (items []*EdbTerminal, err error) {
  24. sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 ORDER BY terminal_id ASC `
  25. err = global.DEFAULT_DB.Raw(sql, source).Find(&items).Error
  26. return
  27. }
  28. // GetEdbTerminalListBySource 根据指标来源类型获取所有的终端列表
  29. func GetEdbTerminalListBySourceAndIsApi(source int, isApi int) (items []*EdbTerminal, err error) {
  30. sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 and is_api = ? ORDER BY terminal_id ASC `
  31. err = global.DEFAULT_DB.Raw(sql, source, isApi).Find(&items).Error
  32. return
  33. }
  34. // GetEdbTerminalFirstBySource 根据指标来源类型获取配置的首个终端信息
  35. func GetEdbTerminalFirstBySource(source int) (item *EdbTerminal, err error) {
  36. sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 ORDER BY terminal_id ASC Limit 1 `
  37. err = global.DEFAULT_DB.Raw(sql, source).First(&item).Error
  38. return
  39. }
  40. type TerminalCodeCountGroup struct {
  41. TerminalCode string
  42. Total int
  43. }
  44. // GetEdbTerminalByCode 根据终端编码获取终端信息
  45. func GetEdbTerminalByCode(terminalCode string) (item *EdbTerminal, err error) {
  46. sql := ` SELECT * FROM edb_terminal WHERE terminal_code = ? `
  47. err = global.DEFAULT_DB.Raw(sql, terminalCode).First(&item).Error
  48. return
  49. }
  50. // GetEdbCountGroupByTerminal 获取终端code分组总数
  51. func GetEdbCountGroupByTerminal(source int) (list []TerminalCodeCountGroup, err error) {
  52. sql := `select terminal_code,count(1) total from edb_info where source = ? AND no_update=0 AND terminal_code != '' group by terminal_code; `
  53. err = global.DEFAULT_DB.Raw(sql, source).Find(&list).Error
  54. return
  55. }
  56. type BaseIndexTerminalCode struct {
  57. TerminalCode string `description:"终端编码,用于配置在机器上"`
  58. IndexName string
  59. }
  60. // GetBaseIndexTerminalCode 获取数据源的终端code
  61. func GetBaseIndexTerminalCode(edbCode, tableName string) (item BaseIndexTerminalCode, err error) {
  62. sql := fmt.Sprintf(`select terminal_code, index_name from %s where index_code = ? `, tableName)
  63. err = global.DEFAULT_DB.Raw(sql, edbCode).First(&item).Error
  64. return
  65. }