| @@ -32,6 +32,23 @@ type ( | |||||
| } | } | ||||
| ) | ) | ||||
| type ( | |||||
| HomeOverviewReq { | |||||
| } | |||||
| HomeOverviewResp { | |||||
| Code int `json:"code"` | |||||
| Message string `json:"message"` | |||||
| Data HomeOverviewData `json:"data"` | |||||
| } | |||||
| HomeOverviewData{ | |||||
| AdaptSum int64 `json:"adaptSum"` | |||||
| ClusterSum int64 `json:"clusterSum"` | |||||
| StorageSum float32 `json:"storageSum"` | |||||
| TaskSum int64 `json:"taskSum"` | |||||
| } | |||||
| ) | |||||
| type remoteResp { | type remoteResp { | ||||
| Code int `json:"code"` | Code int `json:"code"` | ||||
| Message string `json:"message"` | Message string `json:"message"` | ||||
| @@ -137,6 +137,10 @@ service pcm { | |||||
| @doc "Statistical task status" | @doc "Statistical task status" | ||||
| @handler countTaskStatus | @handler countTaskStatus | ||||
| get /core/task/countTaskStatus () returns(TaskStatusResp) | get /core/task/countTaskStatus () returns(TaskStatusResp) | ||||
| @doc "Home Page Overview" | |||||
| @handler homeOverviewHandler | |||||
| get /core/homeOverview (HomeOverviewReq) returns (HomeOverviewResp) | |||||
| } | } | ||||
| //hpc二级接口 | //hpc二级接口 | ||||
| @@ -0,0 +1,28 @@ | |||||
| package core | |||||
| import ( | |||||
| "net/http" | |||||
| "github.com/zeromicro/go-zero/rest/httpx" | |||||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/core" | |||||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" | |||||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" | |||||
| ) | |||||
| func HomeOverviewHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||||
| return func(w http.ResponseWriter, r *http.Request) { | |||||
| var req types.HomeOverviewReq | |||||
| if err := httpx.Parse(r, &req); err != nil { | |||||
| httpx.ErrorCtx(r.Context(), w, err) | |||||
| return | |||||
| } | |||||
| l := core.NewHomeOverviewLogic(r.Context(), svcCtx) | |||||
| resp, err := l.HomeOverview(&req) | |||||
| if err != nil { | |||||
| httpx.ErrorCtx(r.Context(), w, err) | |||||
| } else { | |||||
| httpx.OkJsonCtx(r.Context(), w, resp) | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -165,6 +165,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | |||||
| Path: "/core/task/countTaskStatus", | Path: "/core/task/countTaskStatus", | ||||
| Handler: core.CountTaskStatusHandler(serverCtx), | Handler: core.CountTaskStatusHandler(serverCtx), | ||||
| }, | }, | ||||
| { | |||||
| Method: http.MethodGet, | |||||
| Path: "/core/homeOverview", | |||||
| Handler: core.HomeOverviewHandler(serverCtx), | |||||
| }, | |||||
| }, | }, | ||||
| rest.WithPrefix("/pcm/v1"), | rest.WithPrefix("/pcm/v1"), | ||||
| ) | ) | ||||
| @@ -0,0 +1,73 @@ | |||||
| package core | |||||
| import ( | |||||
| "context" | |||||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" | |||||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" | |||||
| "github.com/zeromicro/go-zero/core/logx" | |||||
| ) | |||||
| type HomeOverviewLogic struct { | |||||
| logx.Logger | |||||
| ctx context.Context | |||||
| svcCtx *svc.ServiceContext | |||||
| } | |||||
| func NewHomeOverviewLogic(ctx context.Context, svcCtx *svc.ServiceContext) *HomeOverviewLogic { | |||||
| return &HomeOverviewLogic{ | |||||
| Logger: logx.WithContext(ctx), | |||||
| ctx: ctx, | |||||
| svcCtx: svcCtx, | |||||
| } | |||||
| } | |||||
| func (l *HomeOverviewLogic) HomeOverview(req *types.HomeOverviewReq) (resp *types.HomeOverviewResp, err error) { | |||||
| // todo: add your logic here and delete this line | |||||
| resp = &types.HomeOverviewResp{} | |||||
| var AdapterSum int // | |||||
| var StorageSum float32 // | |||||
| var ClusterSum int // | |||||
| var TaskSum int // | |||||
| //Task | |||||
| sqlStrTask := "SELECT COUNT(*) FROM `task`" | |||||
| txTask := l.svcCtx.DbEngin.Raw(sqlStrTask).Scan(&TaskSum) | |||||
| if txTask.Error != nil { | |||||
| logx.Error(err) | |||||
| return nil, txTask.Error | |||||
| } | |||||
| //Storage | |||||
| sqlStrStorage := "SELECT SUM(t.storage_space) as storageSum FROM `t_storage_device` t" | |||||
| txStorage := l.svcCtx.DbEngin.Raw(sqlStrStorage).Scan(&StorageSum) | |||||
| if txTask.Error != nil { | |||||
| logx.Error(err) | |||||
| return nil, txStorage.Error | |||||
| } | |||||
| //Cluster | |||||
| sqlStrCluster := "SELECT COUNT(*) FROM `t_cluster`" | |||||
| txCluster := l.svcCtx.DbEngin.Raw(sqlStrCluster).Scan(&ClusterSum) | |||||
| if txTask.Error != nil { | |||||
| logx.Error(err) | |||||
| return nil, txCluster.Error | |||||
| } | |||||
| //Adapter | |||||
| sqlStrAdapter := "SELECT COUNT(*) FROM `t_adapter`" | |||||
| txAdapter := l.svcCtx.DbEngin.Raw(sqlStrAdapter).Scan(&AdapterSum) | |||||
| if txTask.Error != nil { | |||||
| logx.Error(err) | |||||
| return nil, txAdapter.Error | |||||
| } | |||||
| resp.Data.TaskSum = int64(TaskSum) | |||||
| resp.Data.StorageSum = StorageSum | |||||
| resp.Data.AdaptSum = int64(AdapterSum) | |||||
| resp.Data.ClusterSum = int64(ClusterSum) | |||||
| resp.Code = 200 | |||||
| resp.Message = "Success" | |||||
| return resp, nil | |||||
| } | |||||
| @@ -25,6 +25,22 @@ type CenterIndex struct { | |||||
| CenterType string `json:"centerType"` | CenterType string `json:"centerType"` | ||||
| } | } | ||||
| type HomeOverviewReq struct { | |||||
| } | |||||
| type HomeOverviewResp struct { | |||||
| Code int `json:"code"` | |||||
| Message string `json:"message"` | |||||
| Data HomeOverviewData `json:"data"` | |||||
| } | |||||
| type HomeOverviewData struct { | |||||
| AdaptSum int64 `json:"adaptSum"` | |||||
| ClusterSum int64 `json:"clusterSum"` | |||||
| StorageSum float32 `json:"storageSum"` | |||||
| TaskSum int64 `json:"taskSum"` | |||||
| } | |||||
| type RemoteResp struct { | type RemoteResp struct { | ||||
| Code int `json:"code"` | Code int `json:"code"` | ||||
| Message string `json:"message"` | Message string `json:"message"` | ||||