edb_monitor_message.go 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package edbmonitor
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "time"
  7. )
  8. type EdbMonitorMessage struct {
  9. EdbMonitorMessageId int `orm:"column(edb_monitor_message_id);pk" gorm:"primaryKey"`
  10. EdbInfoId int `description:"指标id"`
  11. EdbInfoType int `description:"指标类型: 0-普通指标;1-预测指标"`
  12. EdbUniqueCode string `description:"指标唯一标识"`
  13. EdbClassifyId int `description:"指标id"`
  14. AdminId int `description:"用户id"`
  15. IsRead int `description:"是否已读: 0-未读;1-已读"`
  16. Message string `description:"消息内容"`
  17. MonitorTriggerTime time.Time `description:"预警触发时间"`
  18. CreateTime time.Time `description:"创建时间"`
  19. }
  20. func (m *EdbMonitorMessage) Insert() (insertId int64, err error) {
  21. o := global.DbMap[utils.DbNameIndex]
  22. err = o.Create(m).Error
  23. if err != nil {
  24. return
  25. }
  26. insertId = int64(m.EdbMonitorMessageId)
  27. return
  28. }
  29. func (m *EdbMonitorMessage) Update(cols []string) (err error) {
  30. o := global.DbMap[utils.DbNameIndex]
  31. err = o.Select(cols).Updates(m).Error
  32. return
  33. }
  34. func BatchModifyEdbMonitorMessageIsRead(ids []int, adminId int) (err error) {
  35. if len(ids) == 0 {
  36. return
  37. }
  38. o := global.DbMap[utils.DbNameIndex]
  39. sql := `UPDATE edb_monitor_message SET is_read =1 WHERE admin_id =? AND is_read = 0 AND edb_monitor_message_id IN (` + utils.GetOrmInReplace(len(ids)) + `)`
  40. err = o.Exec(sql, adminId, ids).Error
  41. return
  42. }
  43. func (m *EdbMonitorMessage) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  44. o := global.DbMap[utils.DbNameIndex]
  45. sql := fmt.Sprintf(`SELECT COUNT(1) FROM edb_monitor_message WHERE 1=1 %s`, condition)
  46. err = o.Raw(sql, pars...).Scan(&count).Error
  47. return
  48. }
  49. func GetEdbMonitorMessageById(id int) (item *EdbMonitorMessage, err error) {
  50. o := global.DbMap[utils.DbNameIndex]
  51. sql := "SELECT * FROM edb_monitor_message WHERE edb_monitor_message_id =?"
  52. err = o.Raw(sql, id).First(&item).Error
  53. return
  54. }
  55. func GetEdbMonitorMessageByAdminId(adminId int) (items []*EdbMonitorMessage, err error) {
  56. o := global.DbMap[utils.DbNameIndex]
  57. sql := "SELECT * FROM edb_monitor_message WHERE admin_id =? AND is_read = 0 ORDER BY create_time DESC"
  58. err = o.Raw(sql, adminId).Find(&items).Error
  59. return
  60. }
  61. func GetEdbMonitorMessageCountByAdminId(adminId int) (count int, err error) {
  62. o := global.DbMap[utils.DbNameIndex]
  63. sql := "SELECT COUNT(*) FROM edb_monitor_message WHERE admin_id =? ORDER BY is_read ASC, create_time DESC"
  64. err = o.Raw(sql, adminId).Scan(&count).Error
  65. return
  66. }
  67. func GetEdbMonitorMessagePageByAdminId(adminId, startSize, pageSize int) (items []*EdbMonitorMessage, err error) {
  68. o := global.DbMap[utils.DbNameIndex]
  69. sql := "SELECT * FROM edb_monitor_message WHERE admin_id =? ORDER BY is_read ASC, create_time DESC LIMIT?,?"
  70. err = o.Raw(sql, adminId, startSize, pageSize).Find(&items).Error
  71. return
  72. }