edb_terminal.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package data_manage
  2. import (
  3. "eta/eta_api/utils"
  4. "fmt"
  5. "github.com/beego/beego/v2/client/orm"
  6. "time"
  7. )
  8. // EdbTerminal 指标终端
  9. type EdbTerminal struct {
  10. TerminalId int `orm:"column(terminal_id);pk;auto"`
  11. Source int `orm:"column(source)" description:"指标来源类型"`
  12. Name string `description:"终端名称"`
  13. TerminalCode string `description:"终端编码,用于配置在机器上"`
  14. ServerUrl string `description:"终端地址"`
  15. DirPath string `description:"终端存放的文件夹路径"`
  16. Num int `description:"终端最大指标数"`
  17. Status int `description:"状态,1启用,2禁用"`
  18. Value string `description:"终端相关的token"`
  19. ModifyTime time.Time `description:"修改时间"`
  20. CreateTime time.Time `description:"创建时间"`
  21. }
  22. type EdbTerminalItem struct {
  23. TerminalId int `orm:"column(terminal_id);pk"`
  24. Source int `description:"指标来源类型"`
  25. Name string `description:"终端别名"`
  26. TerminalCode string `description:"终端编码,用于配置在机器上"`
  27. ServerUrl string `description:"终端地址"`
  28. DirPath string `description:"终端存放的文件夹路径"`
  29. Num int `description:"终端最大指标数"`
  30. Status int `description:"状态,1启用,2禁用"`
  31. Value string `description:"终端相关的token"`
  32. ModifyTime string `description:"修改时间"`
  33. CreateTime string `description:"创建时间"`
  34. }
  35. // [2025-zsh-时间类型修复-chenhan]
  36. func (item *EdbTerminal) toView() *EdbTerminalItem {
  37. return &EdbTerminalItem{
  38. TerminalId: item.TerminalId,
  39. Source: item.Source,
  40. Name: item.Name,
  41. TerminalCode: item.TerminalCode,
  42. ServerUrl: item.ServerUrl,
  43. DirPath: item.DirPath,
  44. Num: item.Num,
  45. Status: item.Status,
  46. Value: item.Value,
  47. ModifyTime: item.ModifyTime.Format(utils.FormatDateTime),
  48. }
  49. }
  50. func toItemList(ormList []*EdbTerminal) (list []*EdbTerminalItem) {
  51. for _, v := range ormList {
  52. list = append(list, v.toView())
  53. }
  54. return
  55. }
  56. type EdbTerminalCode struct {
  57. TerminalCode string `description:"终端编码,用于配置在机器上"`
  58. Source int `description:"指标来源类型"`
  59. Name string `description:"终端别名"`
  60. }
  61. // GetEdbTerminalListBySource 根据指标来源类型获取所有的终端列表
  62. func GetEdbTerminalListBySource(source int) (items []*EdbTerminal, err error) {
  63. o := orm.NewOrmUsingDB("data")
  64. sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 ORDER BY terminal_id ASC `
  65. _, err = o.Raw(sql, source).QueryRows(&items)
  66. return
  67. }
  68. type BaseIndexTerminalCode struct {
  69. TerminalCode string `description:"终端编码,用于配置在机器上"`
  70. IndexName string
  71. }
  72. type EdbTerminalListResp struct {
  73. List []*EdbTerminalItem `description:"列表数据"`
  74. }
  75. type EdbTerminalCodeResp struct {
  76. List []*EdbTerminalCode `description:"终端编码列表"`
  77. }
  78. type AddEdbTerminalListReq struct {
  79. TerminalId int `description:"终端id"`
  80. Source int `description:"指标来源类型"`
  81. Name string `description:"终端别名"`
  82. //TerminalCode string `description:"终端编码,用于配置在机器上"`
  83. ServerUrl string `description:"终端地址"`
  84. DirPath string `description:"终端存放的文件夹路径"`
  85. Num int `description:"终端最大指标数"`
  86. //Status int `description:"状态,1启用,2禁用"`
  87. Value string `description:"终端相关的token"`
  88. }
  89. type SetEdbTerminalStatusReq struct {
  90. TerminalId int `description:"终端id"`
  91. Status int `description:"状态,1启用,2禁用"`
  92. }
  93. // GetBaseIndexTerminalCode 获取数据源的终端code
  94. func GetBaseIndexTerminalCode(edbCode, tableName string) (item BaseIndexTerminalCode, err error) {
  95. o := orm.NewOrmUsingDB("data")
  96. sql := fmt.Sprintf(`select terminal_code, index_name from %s where index_code = ? `, tableName)
  97. err = o.Raw(sql, edbCode).QueryRow(&item)
  98. return
  99. }
  100. // GetEdbTerminalById 主键获取终端
  101. func GetEdbTerminalById(id int) (item *EdbTerminal, err error) {
  102. o := orm.NewOrmUsingDB("data")
  103. sql := `SELECT * FROM edb_terminal WHERE terminal_id = ? LIMIT 1`
  104. err = o.Raw(sql, id).QueryRow(&item)
  105. return
  106. }
  107. func GetEdbTerminalByTerminalCode(terminalCode string) (item *EdbTerminal, err error) {
  108. o := orm.NewOrmUsingDB("data")
  109. sql := `SELECT * FROM edb_terminal WHERE terminal_code = ? LIMIT 1`
  110. err = o.Raw(sql, terminalCode).QueryRow(&item)
  111. return
  112. }
  113. func GetEdbTerminalList() (item []*EdbTerminalItem, err error) {
  114. o := orm.NewOrmUsingDB("data")
  115. sql := ` SELECT * FROM edb_terminal ORDER BY terminal_id ASC`
  116. _, err = o.Raw(sql).QueryRows(&item)
  117. return
  118. }
  119. func GetEdbTerminalBySource(source int) (item []*EdbTerminalItem, err error) {
  120. o := orm.NewOrmUsingDB("data")
  121. sql := ` SELECT * FROM edb_terminal where source=? ORDER BY terminal_id ASC`
  122. // [2025-zsh-时间类型修复-chenhan]
  123. var ormList []*EdbTerminal
  124. _, err = o.Raw(sql, source).QueryRows(&ormList)
  125. if err != nil {
  126. return
  127. }
  128. item = toItemList(ormList)
  129. return
  130. }
  131. func (item *EdbTerminal) Add() (err error) {
  132. o := orm.NewOrmUsingDB("data")
  133. _, err = o.Insert(item)
  134. return
  135. }
  136. func (item *EdbTerminal) Update(cols []string) (err error) {
  137. o := orm.NewOrmUsingDB("data")
  138. _, err = o.Update(item, cols...)
  139. return
  140. }
  141. // GetEdbTerminalByCode 根据终端编码获取终端信息
  142. func GetEdbTerminalByCode(terminalCode string) (item *EdbTerminal, err error) {
  143. o := orm.NewOrmUsingDB("data")
  144. sql := ` SELECT * FROM edb_terminal WHERE terminal_code = ? `
  145. err = o.Raw(sql, terminalCode).QueryRow(&item)
  146. return
  147. }
  148. type TerminalCodeCountGroup struct {
  149. TerminalCode string
  150. Total int
  151. }
  152. // GetEdbCountGroupByTerminal 获取终端code分组总数
  153. func GetEdbCountGroupByTerminal(source int) (list []TerminalCodeCountGroup, err error) {
  154. o := orm.NewOrmUsingDB("data")
  155. sql := `select terminal_code,count(1) total from edb_info where source = ? AND no_update=0 AND terminal_code != "" group by terminal_code; `
  156. _, err = o.Raw(sql, source).QueryRows(&list)
  157. return
  158. }
  159. // EdbTerminalDirInfo 指标终端文件夹信息
  160. type EdbTerminalDirInfo struct {
  161. Name string `description:"终端名称"`
  162. TerminalCode string `description:"终端编码,用于配置在机器上"`
  163. DirPath string `description:"终端存放的文件夹路径"`
  164. FilePath string `description:"文件夹路径"`
  165. }