edb_terminal.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "gorm.io/gorm"
  7. "time"
  8. )
  9. // EdbTerminal 指标终端
  10. type EdbTerminal struct {
  11. TerminalId int `orm:"column(terminal_id);pk" gorm:"primaryKey"`
  12. Source int `orm:"column(source)" description:"指标来源类型"`
  13. Name string `description:"终端名称"`
  14. TerminalCode string `description:"终端编码,用于配置在机器上"`
  15. ServerUrl string `description:"终端地址"`
  16. DirPath string `description:"终端存放的文件夹路径"`
  17. Num int `description:"终端最大指标数"`
  18. Status int `description:"状态,1启用,2禁用"`
  19. Value string `description:"终端相关的token"`
  20. ModifyTime time.Time `description:"修改时间"`
  21. CreateTime time.Time `description:"创建时间"`
  22. }
  23. type EdbTerminalItem struct {
  24. TerminalId int `orm:"column(terminal_id);pk" gorm:"primaryKey"`
  25. Source int `description:"指标来源类型"`
  26. Name string `description:"终端别名"`
  27. TerminalCode string `description:"终端编码,用于配置在机器上"`
  28. ServerUrl string `description:"终端地址"`
  29. DirPath string `description:"终端存放的文件夹路径"`
  30. Num int `description:"终端最大指标数"`
  31. Status int `description:"状态,1启用,2禁用"`
  32. Value string `description:"终端相关的token"`
  33. ModifyTime string `description:"修改时间"`
  34. CreateTime string `description:"创建时间"`
  35. }
  36. func (e *EdbTerminalItem) AfterFind(db *gorm.DB) (err error) {
  37. e.ModifyTime = utils.GormDateStrToDateTimeStr(e.ModifyTime)
  38. e.CreateTime = utils.GormDateStrToDateTimeStr(e.CreateTime)
  39. return
  40. }
  41. type EdbTerminalCode struct {
  42. TerminalCode string `description:"终端编码,用于配置在机器上"`
  43. Source int `description:"指标来源类型"`
  44. Name string `description:"终端别名"`
  45. }
  46. // GetEdbTerminalListBySource 根据指标来源类型获取所有的终端列表
  47. func GetEdbTerminalListBySource(source int) (items []*EdbTerminal, err error) {
  48. o := global.DbMap[utils.DbNameIndex]
  49. sql := ` SELECT * FROM edb_terminal WHERE source = ? and status=1 ORDER BY terminal_id ASC `
  50. err = o.Raw(sql, source).Find(&items).Error
  51. return
  52. }
  53. type BaseIndexTerminalCode struct {
  54. TerminalCode string `description:"终端编码,用于配置在机器上"`
  55. IndexName string
  56. }
  57. type EdbTerminalListResp struct {
  58. List []*EdbTerminalItem `description:"列表数据"`
  59. }
  60. type EdbTerminalCodeResp struct {
  61. List []*EdbTerminalCode `description:"终端编码列表"`
  62. }
  63. type AddEdbTerminalListReq struct {
  64. TerminalId int `description:"终端id"`
  65. Source int `description:"指标来源类型"`
  66. Name string `description:"终端别名"`
  67. //TerminalCode string `description:"终端编码,用于配置在机器上"`
  68. ServerUrl string `description:"终端地址"`
  69. DirPath string `description:"终端存放的文件夹路径"`
  70. Num int `description:"终端最大指标数"`
  71. //Status int `description:"状态,1启用,2禁用"`
  72. Value string `description:"终端相关的token"`
  73. }
  74. type SetEdbTerminalStatusReq struct {
  75. TerminalId int `description:"终端id"`
  76. Status int `description:"状态,1启用,2禁用"`
  77. }
  78. // GetBaseIndexTerminalCode 获取数据源的终端code
  79. func GetBaseIndexTerminalCode(edbCode, tableName string) (item BaseIndexTerminalCode, err error) {
  80. o := global.DbMap[utils.DbNameIndex]
  81. sql := fmt.Sprintf(`select terminal_code, index_name from %s where index_code = ? `, tableName)
  82. err = o.Raw(sql, edbCode).First(&item).Error
  83. return
  84. }
  85. // GetEdbTerminalById 主键获取终端
  86. func GetEdbTerminalById(id int) (item *EdbTerminal, err error) {
  87. o := global.DbMap[utils.DbNameIndex]
  88. sql := `SELECT * FROM edb_terminal WHERE terminal_id = ? LIMIT 1`
  89. err = o.Raw(sql, id).First(&item).Error
  90. return
  91. }
  92. func GetEdbTerminalByTerminalCode(terminalCode string) (item *EdbTerminal, err error) {
  93. o := global.DbMap[utils.DbNameIndex]
  94. sql := `SELECT * FROM edb_terminal WHERE terminal_code = ? LIMIT 1`
  95. err = o.Raw(sql, terminalCode).First(&item).Error
  96. return
  97. }
  98. func GetEdbTerminalList() (item []*EdbTerminalItem, err error) {
  99. o := global.DbMap[utils.DbNameIndex]
  100. sql := ` SELECT * FROM edb_terminal ORDER BY terminal_id ASC`
  101. err = o.Raw(sql).Find(&item).Error
  102. return
  103. }
  104. func GetEdbTerminalBySource(source int) (item []*EdbTerminalItem, err error) {
  105. o := global.DbMap[utils.DbNameIndex]
  106. sql := ` SELECT * FROM edb_terminal where source=? ORDER BY terminal_id ASC`
  107. err = o.Raw(sql, source).Find(&item).Error
  108. return
  109. }
  110. func (item *EdbTerminal) Add() (err error) {
  111. o := global.DbMap[utils.DbNameIndex]
  112. err = o.Create(item).Error
  113. return
  114. }
  115. func (item *EdbTerminal) Update(cols []string) (err error) {
  116. o := global.DbMap[utils.DbNameIndex]
  117. err = o.Model(item).Select(cols).Updates(item).Error
  118. return
  119. }
  120. // GetEdbTerminalByCode 根据终端编码获取终端信息
  121. func GetEdbTerminalByCode(terminalCode string) (item *EdbTerminal, err error) {
  122. o := global.DbMap[utils.DbNameIndex]
  123. sql := ` SELECT * FROM edb_terminal WHERE terminal_code = ? `
  124. err = o.Raw(sql, terminalCode).First(&item).Error
  125. return
  126. }
  127. type TerminalCodeCountGroup struct {
  128. TerminalCode string
  129. Total int
  130. }
  131. // GetEdbCountGroupByTerminal 获取终端code分组总数
  132. func GetEdbCountGroupByTerminal(source int) (list []TerminalCodeCountGroup, err error) {
  133. o := global.DbMap[utils.DbNameIndex]
  134. sql := `select terminal_code,count(1) total from edb_info where source = ? AND no_update=0 AND terminal_code != "" group by terminal_code; `
  135. err = o.Raw(sql, source).Find(&list).Error
  136. return
  137. }
  138. // EdbTerminalDirInfo 指标终端文件夹信息
  139. type EdbTerminalDirInfo struct {
  140. Name string `description:"终端名称"`
  141. TerminalCode string `description:"终端编码,用于配置在机器上"`
  142. DirPath string `description:"终端存放的文件夹路径"`
  143. FilePath string `description:"文件夹路径"`
  144. }
  145. type EdbInfoTerminalList struct {
  146. EdbInfoId int `gorm:"column:edb_info_id"`
  147. EdbCode string `gorm:"column:edb_code"`
  148. EdbName string `gorm:"column:edb_name"`
  149. TerminalCode string `gorm:"column:terminal_code"`
  150. TerminalName string `gorm:"column:terminal_name"`
  151. }
  152. func GetSimpleEdbListPageByCondition(condition string, pars []interface{}, pageIndex int, pageSize int) (list []*EdbInfoTerminalList, err error) {
  153. sql := `SELECT e.*, t.name as terminal_name FROM edb_info e left join edb_terminal t on e.terminal_code = t.terminal_code WHERE 1=1 ` + condition + ` ORDER BY e.edb_info_id ASC LIMIT ?, ?`
  154. err = global.DbMap[utils.DbNameIndex].Raw(sql, append(pars, pageIndex, pageSize)...).Find(&list).Error
  155. return
  156. }
  157. func GetSimpleEdbListCountByCondition(condition string, pars []interface{}) (count int64, err error) {
  158. sql := `SELECT COUNT(*) FROM edb_info e left join edb_terminal t on e.terminal_code = t.terminal_code WHERE 1=1 ` + condition
  159. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Count(&count).Error
  160. return
  161. }
  162. type SetEdbInfoTerminalReq struct {
  163. EdbInfoIds []int `description:"指标ID"`
  164. TerminalCode string `description:"要更换的终端编码"`
  165. Source int `description:"指标来源类型"`
  166. }
  167. func UpdateEdbInfoTerminal(edbInfoIds []int, terminalCode string, source int) (err error) {
  168. o := global.DbMap[utils.DbNameIndex]
  169. err = o.Exec("UPDATE edb_info SET terminal_code = ? WHERE edb_info_id IN (?) AND source = ?", terminalCode, edbInfoIds, source).Error
  170. return
  171. }