diff --git a/event/sdk/common.go b/event/sdk/common.go index d6a16d7b053c12b4b191c78125a599c0833096f0..b578cb7a91ef84a16abb94eeb28c2179bf693002 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 55cbeb1551282748af043ff1bc7ef350fe4c9e26..c75d18bdfe3abf2fd7797cbfe53fd7af6d098f38 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 2b3efa284da4c0df451a5ba98388f7aa186c3fc2..a6c540c200c0222e6820bd07f5ec07d7ab7157e1 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 9d80e0f64d4f4a4ba6878881aa1b1dbd44fd6ca4..792d18c389162906562812854a0702ae7871aba2 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 6c81be9c1c456e01ae4636d89d763ba35cd29a8e..3752618cab3b3ce158aeab4c837ba7d17a4eebe5 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 b41534d489f7ad04ac45f3d711eec7fe616b7803..d03a56696b49a567719a450f6f83727da9cf8ae2 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)