From cc6c872fa37f1a7212b085d31dcf262be5887151 Mon Sep 17 00:00:00 2001 From: wubijie Date: Thu, 31 Oct 2024 17:48:20 +0800 Subject: [PATCH] add getinfos func --- configmanage/server/controller/lists.go | 29 +++++++++++++++++++ configmanage/server/internal/configinfo.go | 11 +++++++ configmanage/server/router/router.go | 1 + configmanage/server/service/configinstance.go | 5 ++++ 4 files changed, 46 insertions(+) diff --git a/configmanage/server/controller/lists.go b/configmanage/server/controller/lists.go index 4bb6456a..7eb4099f 100644 --- a/configmanage/server/controller/lists.go +++ b/configmanage/server/controller/lists.go @@ -4,9 +4,38 @@ import ( "gitee.com/openeuler/PilotGo/sdk/response" "github.com/gin-gonic/gin" "openeuler.org/PilotGo/configmanage-plugin/global" + "openeuler.org/PilotGo/configmanage-plugin/service" ) +type PaginationQ struct { + Ok bool `json:"ok"` + Size int `form:"size" json:"size"` + CurrentPageNum int `form:"page" json:"page"` + Data interface{} `json:"data" comment:"muster be a pointer of slice gorm.Model"` // save pagination list + TotalPage int `json:"total"` +} + func ConfigTypeListHandler(c *gin.Context) { result := []string{global.Repo, global.Host, global.SSH, global.SSHD, global.Sysctl} response.Success(c, result, "get config type success") } + +func ConfigHandler(c *gin.Context) { + p := &PaginationQ{} + // 将查询参数绑定到分页查询对象 p 中 + err := c.ShouldBindQuery(p) + if err != nil { + response.Fail(c, "parameter error", err.Error()) + return + } + num := p.Size * (p.CurrentPageNum - 1) + total, data, err := service.GetInfos(num, p.Size) + if err != nil { + response.Fail(c, "parameter error", err.Error()) + return + } + p.Data = data + p.TotalPage = total + + response.Success(c, p, "get config success") +} diff --git a/configmanage/server/internal/configinfo.go b/configmanage/server/internal/configinfo.go index dd0339e3..b34e77b4 100644 --- a/configmanage/server/internal/configinfo.go +++ b/configmanage/server/internal/configinfo.go @@ -18,3 +18,14 @@ func GetInfoByUUID(uuid string) (ConfigInfo, error) { err := db.MySQL().Where("uuid=?", uuid).Find(&ci).Error return ci, err } + +func GetInfos(offset, size int) (int, []*ConfigInfo, error) { + infos := []*ConfigInfo{} + var count int64 + err := db.MySQL().Model(&ConfigInfo{}).Count(&count).Error + if err != nil { + return 0, infos, err + } + err = db.MySQL().Limit(size).Offset(offset).Find(&infos).Error + return int(count), infos, err +} diff --git a/configmanage/server/router/router.go b/configmanage/server/router/router.go index ce3ab2de..2f7e05ff 100644 --- a/configmanage/server/router/router.go +++ b/configmanage/server/router/router.go @@ -23,6 +23,7 @@ func RegisterAPIs(router *gin.Engine) { { // 提供配置文件类型的列表 list.GET("/config_type", controller.ConfigTypeListHandler) + list.GET("/config", controller.ConfigHandler) } api.POST("/add", controller.AddConfigHandler) api.GET("/load", controller.LoadConfigHandler) diff --git a/configmanage/server/service/configinstance.go b/configmanage/server/service/configinstance.go index 06621ed3..3e4e2722 100644 --- a/configmanage/server/service/configinstance.go +++ b/configmanage/server/service/configinstance.go @@ -113,6 +113,11 @@ func GetConfigByUUID(configuuid string) (*ConfigInstance, error) { return config, err } +// 分页获取configinfo +func GetInfos(offset, size int) (int, []*ConfigInfo, error) { + return internal.GetInfos(offset, size) +} + type Deploy struct { DeployBatch common.Batch `json:"deploybatch"` DeployPath string `json:"deploypath"` -- Gitee