edb_monitor_message.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package edbmonitor
  2. import (
  3. "encoding/json"
  4. edbmonitor "eta/eta_api/models/edb_monitor"
  5. "eta/eta_api/models/edb_monitor/response"
  6. "eta/eta_api/utils"
  7. "time"
  8. "github.com/gorilla/websocket"
  9. )
  10. func GetEdbMonitorMessageList(adminId int) {
  11. edbmonitor.GetEdbMonitorMessageByAdminId(adminId)
  12. }
  13. func LogMessage(content string, triggerTime time.Time, edbInfoId, edbInfoType, adminId int) (err error) {
  14. message := &edbmonitor.EdbMonitorMessage{
  15. EdbInfoId: edbInfoId,
  16. EdbInfoType: edbInfoType,
  17. AdminId: adminId,
  18. IsRead: 0,
  19. Message: content,
  20. MonitorTriggerTime: triggerTime,
  21. CreateTime: time.Now(),
  22. }
  23. _, err = message.Insert()
  24. return err
  25. }
  26. func SendMessages(conn *websocket.Conn, adminId int) {
  27. for {
  28. messageList, _ := edbmonitor.GetEdbMonitorMessageByAdminId(adminId)
  29. for _, message := range messageList {
  30. msg := response.EdbMonitorMessageResp{
  31. EdbInfoId: message.EdbInfoId,
  32. EdbInfoType: message.EdbInfoType,
  33. Message: message.Message,
  34. TriggerTime: utils.TimeTransferString(utils.FormatDateTime, message.MonitorTriggerTime),
  35. }
  36. b, _ := json.Marshal(msg)
  37. conn.WriteMessage(websocket.TextMessage, b)
  38. }
  39. time.Sleep(5 * time.Minute)
  40. }
  41. }