Browse Source

add:增加消息列表接口

zqbao 5 months ago
parent
commit
0eb863064d

+ 36 - 0
controllers/edb_monitor/edb_monitor_message.go

@@ -185,6 +185,42 @@ func (m *EdbMonitorMessageController) Close() {
 	br.Success = true
 }
 
+// List
+// @Title 预警管理消息列表
+// @Description 预警管理消息列表
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Success 200 {object} response.EdbMonitorClassifyTree
+// @router /message/list [get]
+func (c *EdbMonitorMessageController) List() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	pageSize, _ := c.GetInt("PageSize")
+	currentIndex, _ := c.GetInt("CurrentIndex")
+	resp, err := edbmonitor.GetMessageList(sysUser.AdminId, currentIndex, pageSize)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = err.Error()
+		return
+	}
+
+	br.Data = resp
+	br.Msg = "获取成功"
+	br.Ret = 200
+	br.Success = true
+}
+
 // Read
 // @Title 预警管理消息已读
 // @Description 预警管理消息已读

+ 14 - 0
models/edb_monitor/edb_monitor_message.go

@@ -42,3 +42,17 @@ func GetEdbMonitorMessageByAdminId(adminId int) (items []*EdbMonitorMessage, err
 	_, err = o.Raw(sql, adminId).QueryRows(&items)
 	return
 }
+
+func GetEdbMonitorMessageCountByAdminId(adminId int) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT COUNT(*) FROM edb_monitor_message WHERE admin_id =? ORDER BY is_read ASC, create_time DESC"
+	err = o.Raw(sql, adminId).QueryRow(&count)
+	return
+}
+
+func GetEdbMonitorMessagePageByAdminId(adminId, startSize, pageSize int) (items []*EdbMonitorMessage, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM edb_monitor_message WHERE admin_id =? ORDER BY is_read ASC, create_time DESC LIMIT?,?"
+	_, err = o.Raw(sql, adminId, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 8 - 0
models/edb_monitor/response/edb_monitor_message.go

@@ -1,9 +1,17 @@
 package response
 
+import "github.com/rdlucklib/rdluck_tools/paging"
+
 type EdbMonitorMessageResp struct {
 	EdbMonitorMessageId int    `description:"消息id"`
 	EdbInfoId           int    `description:"指标id"`
 	EdbInfoType         int    `description:"指标类型:0-普通指标;1-预测指标"`
+	IsRead              int    `description:"是否已读:0-未读;1-已读"`
 	Message             string `description:"消息内容"`
 	TriggerTime         string `description:"触发时间"`
 }
+
+type EdbMonitorMessageListResp struct {
+	List   []*EdbMonitorMessageResp
+	Paging *paging.PagingItem
+}

+ 34 - 2
services/edb_monitor/edb_monitor_message.go

@@ -8,6 +8,7 @@ import (
 	"time"
 
 	"github.com/gorilla/websocket"
+	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 var (
@@ -74,15 +75,46 @@ func GetHistoryMessages(adminId int) (items []*response.EdbMonitorMessageResp, e
 	if err != nil {
 		return
 	}
-	for _, message := range messageList {
+
+	items = toEdbMonitorMessageResp(messageList)
+	return
+}
+
+func GetMessageList(adminid int, currentIndex, pageSize int) (resp response.EdbMonitorMessageListResp, err error) {
+	startSize := utils.StartIndex(currentIndex, pageSize)
+
+	total, err := edbmonitor.GetEdbMonitorMessageCountByAdminId(adminid)
+	if err != nil {
+		return
+	}
+	if total == 0 {
+		resp.List = make([]*response.EdbMonitorMessageResp, 0)
+		resp.Paging = paging.GetPaging(currentIndex, pageSize, total)
+		return
+	}
+
+	messageList, err := edbmonitor.GetEdbMonitorMessagePageByAdminId(adminid, startSize, pageSize)
+	if err != nil {
+		return
+	}
+
+	resp.List = toEdbMonitorMessageResp(messageList)
+	resp.Paging = paging.GetPaging(currentIndex, pageSize, total)
+	return
+}
+
+func toEdbMonitorMessageResp(items []*edbmonitor.EdbMonitorMessage) (list []*response.EdbMonitorMessageResp) {
+	list = make([]*response.EdbMonitorMessageResp, 0)
+	for _, message := range items {
 		item := response.EdbMonitorMessageResp{
 			EdbMonitorMessageId: message.EdbMonitorMessageId,
 			EdbInfoId:           message.EdbInfoId,
 			EdbInfoType:         message.EdbInfoType,
+			IsRead:              message.IsRead,
 			Message:             message.Message,
 			TriggerTime:         utils.TimeTransferString(utils.FormatDateTime, message.MonitorTriggerTime),
 		}
-		items = append(items, &item)
+		list = append(list, &item)
 	}
 	return
 }