12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package edbmonitor
- import (
- "errors"
- edbmonitor "eta/eta_api/models/edb_monitor"
- "eta/eta_api/models/edb_monitor/response"
- "eta/eta_api/utils"
- "time"
- "github.com/gorilla/websocket"
- )
- var (
- EDB_MONITOR_MESSAGE_CONNECT_CACHE = "edb_monitor_message_cache:"
- )
- var MonitorMessageConn = make(map[int]*websocket.Conn)
- func ReadEdbMonitorMessage(messageId, adminId int) (msg string, err error) {
- message, err := edbmonitor.GetEdbMonitorMessageById(messageId)
- if err != nil {
- if err.Error() == utils.ErrNoRow() {
- msg = "消息不存在"
- return
- }
- msg = "获取消息失败"
- return
- }
- if message.AdminId != adminId {
- msg = "您没有权限查看该消息"
- err = errors.New("no permission")
- return
- }
- message.IsRead = 1
- err = message.Update([]string{"IsRead"})
- if err != nil {
- msg = "已读失败"
- return
- }
- return
- }
- func LogMessage(content string, triggerTime time.Time, edbInfoId, edbInfoType, adminId, isRead int) (err error) {
- message := &edbmonitor.EdbMonitorMessage{
- EdbInfoId: edbInfoId,
- EdbInfoType: edbInfoType,
- AdminId: adminId,
- IsRead: isRead,
- Message: content,
- MonitorTriggerTime: triggerTime,
- CreateTime: time.Now(),
- }
- _, err = message.Insert()
- return err
- }
- func SendMessages(adminId int, edbInfoId int, edbInfoType int, message string, triggerTime string) (err error) {
- conn := MonitorMessageConn[adminId]
- if conn == nil {
- return errors.New("no connection")
- }
- msg := response.EdbMonitorMessageResp{
- EdbInfoId: edbInfoId,
- EdbInfoType: edbInfoType,
- Message: message,
- TriggerTime: triggerTime,
- }
- return conn.WriteJSON(msg)
- }
- func GetHistoryMessages(adminId int) (items []*response.EdbMonitorMessageResp, err error) {
- messageList, err := edbmonitor.GetEdbMonitorMessageByAdminId(adminId)
- if err != nil {
- return
- }
- for _, message := range messageList {
- item := response.EdbMonitorMessageResp{
- EdbMonitorMessageId: message.EdbMonitorMessageId,
- EdbInfoId: message.EdbInfoId,
- EdbInfoType: message.EdbInfoType,
- Message: message.Message,
- TriggerTime: utils.TimeTransferString(utils.FormatDateTime, message.MonitorTriggerTime),
- }
- items = append(items, &item)
- }
- return
- }
|