edb_monitor.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package edbmonitor
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "gorm.io/gorm"
  6. "time"
  7. )
  8. type EdbMonitorInfo struct {
  9. EdbMonitorId int `orm:"column(edb_monitor_id);pk" gorm:"primaryKey"`
  10. EdbMonitorClassifyId int `description:"预警分类id"`
  11. EdbMonitorName string `description:"预警名称"`
  12. EdbInfoId int `description:"指标id"`
  13. EdbInfoType int `description:"指标类型"`
  14. EdbUniqueCode string `description:"指标唯一标识"`
  15. EdbClassifyId int `description:"指标id"`
  16. EdbCode string `description:"指标编码"`
  17. Source int `description:"指标来源"`
  18. SubSource int `description:"指标子来源: 0-经济数据库;1-日期序列;2-高频数据"`
  19. EdbLatestDate string `description:"最新日期"`
  20. EdbLatestValue float64 `description:"指标最新值"`
  21. MonitorType int `description:"突破方式: 0-向上突破;1-向下突破"`
  22. MonitorData float64 `description:"预警值"`
  23. MonitorLevel string `description:"预警等级"`
  24. State int `description:"预警状态: 0-已关闭;1-未触发;2-已触发"`
  25. EdbTriggerDate time.Time `description:"触发日期"`
  26. MonitorTriggerTime time.Time `description:"预警触发时间"`
  27. CreateUserId int `description:"创建人id"`
  28. CreateTime time.Time `description:"创建时间"`
  29. ModifyTime time.Time `description:"修改时间"`
  30. }
  31. func (m *EdbMonitorInfo) AfterFind(db *gorm.DB) (err error) {
  32. m.EdbLatestDate = utils.GormDateStrToDateStr(m.EdbLatestDate)
  33. return
  34. }
  35. func (m *EdbMonitorInfo) ConvertTimeStr() {
  36. m.EdbLatestDate = utils.GormDateStrToDateStr(m.EdbLatestDate)
  37. return
  38. }
  39. func (m *EdbMonitorInfo) Insert() (int64, error) {
  40. err := global.DbMap[utils.DbNameIndex].Create(m).Error
  41. if err != nil {
  42. return 0, err
  43. }
  44. return int64(m.EdbMonitorId), err
  45. }
  46. func (m *EdbMonitorInfo) Update(cols []string) (err error) {
  47. if len(cols) == 0 {
  48. return
  49. }
  50. err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(m).Error
  51. return
  52. }
  53. func GetEdbMonitorLevelList() (list []string, err error) {
  54. sql := `SELECT DISTINCT monitor_level FROM edb_monitor_info WHERE monitor_level != '' `
  55. err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&list).Error
  56. return
  57. }
  58. func GetEdbMonitorEdbInfoList() (items []*EdbMonitorInfo, err error) {
  59. sql := `SELECT * FROM edb_monitor_info WHERE state <> 0`
  60. err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
  61. return
  62. }
  63. func DeleteEdbMonitorInfoById(id int) (err error) {
  64. o := global.DbMap[utils.DbNameIndex]
  65. sql := `DELETE FROM edb_monitor_info WHERE edb_monitor_id =?`
  66. err = o.Exec(sql, id).Error
  67. return
  68. }
  69. func DeleteEdbMonitorInfoByIdList(ids []int) (err error) {
  70. if len(ids) == 0 {
  71. return
  72. }
  73. o := global.DbMap[utils.DbNameIndex]
  74. sql := `DELETE FROM edb_monitor_info WHERE edb_monitor_id IN(` + utils.GetOrmInReplace(len(ids)) + `)`
  75. err = o.Exec(sql, ids).Error
  76. return
  77. }
  78. func GetEdbMonitorInfoById(id int) (item *EdbMonitorInfo, err error) {
  79. o := global.DbMap[utils.DbNameIndex]
  80. sql := `SELECT * FROM edb_monitor_info WHERE edb_monitor_id =?`
  81. err = o.Raw(sql, id).First(&item).Error
  82. if err != nil {
  83. return
  84. }
  85. if item != nil {
  86. item.ConvertTimeStr()
  87. }
  88. return
  89. }
  90. func GetEdbMonitorInfoByEdbInfoId(edbInfoId int) (items []*EdbMonitorInfo, err error) {
  91. o := global.DbMap[utils.DbNameIndex]
  92. sql := `SELECT * FROM edb_monitor_info WHERE edb_info_id =?`
  93. err = o.Raw(sql, edbInfoId).Find(&items).Error
  94. return
  95. }
  96. func GetEdbMonitorInfoCountByClassifyId(classifyId []int) (count int, err error) {
  97. if len(classifyId) == 0 {
  98. return
  99. }
  100. o := global.DbMap[utils.DbNameIndex]
  101. sql := `SELECT COUNT(*) AS count FROM edb_monitor_info WHERE edb_monitor_classify_id IN(` + utils.GetOrmInReplace(len(classifyId)) + `)`
  102. err = o.Raw(sql, classifyId).Scan(&count).Error
  103. return
  104. }
  105. func GetEdbMonitorInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
  106. o := global.DbMap[utils.DbNameIndex]
  107. sql := `SELECT COUNT(*) AS count FROM edb_monitor_info WHERE 1=1 `
  108. if condition != "" {
  109. sql += condition
  110. }
  111. err = o.Raw(sql, pars...).Scan(&count).Error
  112. return
  113. }
  114. func GetEdbMonitorInfoPageByCondition(condition string, pars []interface{}, startSize int, pageSize int) (items []*EdbMonitorInfo, err error) {
  115. o := global.DbMap[utils.DbNameIndex]
  116. sql := `SELECT * FROM edb_monitor_info WHERE 1=1 `
  117. if condition != "" {
  118. sql += condition
  119. }
  120. sql += ` ORDER BY create_time DESC LIMIT?,?`
  121. pars = append(pars, startSize, pageSize)
  122. err = o.Raw(sql, pars...).Find(&items).Error
  123. return
  124. }
  125. func GetEdbMonitorCreateUserId() (userIds []int, err error) {
  126. o := global.DbMap[utils.DbNameIndex]
  127. sql := `SELECT DISTINCT create_user_id FROM edb_monitor_info`
  128. err = o.Raw(sql).Find(&userIds).Error
  129. return
  130. }