From b9f26decd80e78acdcd183d6fbae29519f5f7a5b Mon Sep 17 00:00:00 2001 From: zhanghan Date: Fri, 6 Dec 2024 09:30:16 +0800 Subject: [PATCH] Integrate with the front-end interface and add pagination --- event/sdk/common.go | 2 ++ event/server/controller/events.go | 33 +++++++++++++++++++++++++++++-- event/server/db/db.go | 24 +++++++++++++--------- event/server/go.mod | 2 +- event/server/go.sum | 2 ++ event/server/router/router.go | 2 +- 6 files changed, 52 insertions(+), 13 deletions(-) diff --git a/event/sdk/common.go b/event/sdk/common.go index d6a16d7b..b578cb7a 100644 --- a/event/sdk/common.go +++ b/event/sdk/common.go @@ -79,6 +79,8 @@ func GetMessageTypeString(msgType int) string { } } +var MessageTypes = []string{"用户登录", "用户退出", "平台新增主机", "平台移除主机", "主机上线", "主机离线", "主机安装软件包", "主机升级软件包", "主机卸载软件包", "主机ip变更", "插件添加", "插件卸载", "插件上线", "插件离线"} + type MessageData struct { MsgType int `json:"msg_type_id"` MessageType string `json:"msg_type"` diff --git a/event/server/controller/events.go b/event/server/controller/events.go index 55cbeb15..c75d18bd 100644 --- a/event/server/controller/events.go +++ b/event/server/controller/events.go @@ -8,6 +8,9 @@ package controller import ( + "net/http" + + "gitee.com/openeuler/PilotGo-plugins/event/sdk" "gitee.com/openeuler/PilotGo/sdk/response" "github.com/gin-gonic/gin" "openeuler.org/PilotGo/PilotGo-plugin-event/db" @@ -17,6 +20,32 @@ func EventsQueryHandler(c *gin.Context) { _start := c.Query("start") _stop := c.Query("stop") searchKey := c.Query("search") - result, _ := db.Query(_start, _stop, searchKey) - response.Success(c, result, "获取到数据") + + query := &response.PaginationQ{} + err := c.ShouldBindQuery(query) + if err != nil { + response.Fail(c, nil, err.Error()) + return + } + + result, err := db.Query(_start, _stop, searchKey) + if err != nil { + response.Fail(c, nil, err.Error()) + return + } + + data, err := response.DataPaging(query, result, len(result)) + if err != nil { + response.Fail(c, nil, err.Error()) + return + } + + c.JSON(http.StatusOK, gin.H{ + "code": http.StatusOK, + "ok": true, + "data": data, + "msgType": sdk.MessageTypes, + "total": len(result), + "page": query.Page, + "size": query.PageSize}) } diff --git a/event/server/db/db.go b/event/server/db/db.go index 2b3efa28..a6c540c2 100644 --- a/event/server/db/db.go +++ b/event/server/db/db.go @@ -42,7 +42,13 @@ func InfluxdbInit(conf *config.Influxd) { } } -func Query(start, stop string, filterTagKey string) (interface{}, error) { +type MsgResult struct { + MsgBody interface{} `json:"value"` + MsgType string `json:"msg_type"` + UpdateTime string `json:"time"` +} + +func Query(start, stop string, filterTagKey string) ([]MsgResult, error) { query := fmt.Sprintf(` from(bucket:"%s") |> range(start: %s, stop: %s) @@ -55,11 +61,11 @@ func Query(start, stop string, filterTagKey string) (interface{}, error) { queryAPI := InfluxDB.DBClient.QueryAPI(InfluxDB.Organization) result, err := queryAPI.Query(context.Background(), query) if err != nil { - return result, err + return []MsgResult{}, err } defer result.Close() - var queryResults []map[string]interface{} + var queryResults []MsgResult for result.Next() { tags := make(map[string]string) for k, v := range result.Record().Values() { @@ -69,17 +75,17 @@ func Query(start, stop string, filterTagKey string) (interface{}, error) { } } } - queryResults = append(queryResults, map[string]interface{}{ - "value": processValue(result.Record().Value()), - "msg_type": tags["msg_type"], - "time": tags["timestamp"], + queryResults = append(queryResults, MsgResult{ + MsgBody: processValue(result.Record().Value()), + MsgType: tags["msg_type"], + UpdateTime: tags["timestamp"], }) } sort.Slice(queryResults, func(i, j int) bool { timeFormat := "2006-01-02 15:04:05.999999999 -0700 MST" - time1, err1 := time.Parse(timeFormat, queryResults[i]["time"].(string)) - time2, err2 := time.Parse(timeFormat, queryResults[j]["time"].(string)) + time1, err1 := time.Parse(timeFormat, queryResults[i].UpdateTime) + time2, err2 := time.Parse(timeFormat, queryResults[j].UpdateTime) if err1 != nil || err2 != nil { diff --git a/event/server/go.mod b/event/server/go.mod index 9d80e0f6..792d18c3 100644 --- a/event/server/go.mod +++ b/event/server/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( gitee.com/openeuler/PilotGo-plugins/event/sdk v0.0.0-20241122014720-df6a218375a4 - gitee.com/openeuler/PilotGo/sdk v0.0.0-20240724025939-231bc58cf0e0 + gitee.com/openeuler/PilotGo/sdk v0.0.0-20241205080625-a9ececee1e6a ) require ( diff --git a/event/server/go.sum b/event/server/go.sum index 6c81be9c..3752618c 100644 --- a/event/server/go.sum +++ b/event/server/go.sum @@ -42,6 +42,8 @@ gitee.com/openeuler/PilotGo-plugins/event/sdk v0.0.0-20241122014720-df6a218375a4 gitee.com/openeuler/PilotGo-plugins/event/sdk v0.0.0-20241122014720-df6a218375a4/go.mod h1:hM6k7LD5EzCbWN+v8QjWOFM+sMIp0l021pO8/Ds4sqg= gitee.com/openeuler/PilotGo/sdk v0.0.0-20240724025939-231bc58cf0e0 h1:qJxLL4KDSuQ8lYELtwBKAnfXg0j7SThcGN8mLlo2h8s= gitee.com/openeuler/PilotGo/sdk v0.0.0-20240724025939-231bc58cf0e0/go.mod h1:tqVD4Yq10/XdJnS35zMrxqSU8TFyMKtsG6HLiRzcnFk= +gitee.com/openeuler/PilotGo/sdk v0.0.0-20241205080625-a9ececee1e6a h1:plOOGgho3DhaPppdthVz9XjytfPM1CCfuEnPx1wBDmY= +gitee.com/openeuler/PilotGo/sdk v0.0.0-20241205080625-a9ececee1e6a/go.mod h1:tqVD4Yq10/XdJnS35zMrxqSU8TFyMKtsG6HLiRzcnFk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= diff --git a/event/server/router/router.go b/event/server/router/router.go index b41534d4..d03a5669 100644 --- a/event/server/router/router.go +++ b/event/server/router/router.go @@ -36,7 +36,7 @@ func HttpServerInit(conf *config.HttpServer) error { func setupRouter() *gin.Engine { gin.SetMode(gin.ReleaseMode) router := gin.New() - router.Use(logger.RequestLogger()) + router.Use(logger.RequestLogger([]string{})) router.Use(gin.Recovery()) registerAPIs(router) -- Gitee