diff --git a/adaptor/PCM-CORE/api/desc/core/pcm-core.api b/adaptor/PCM-CORE/api/desc/core/pcm-core.api index ce701bc3..517a2f70 100644 --- a/adaptor/PCM-CORE/api/desc/core/pcm-core.api +++ b/adaptor/PCM-CORE/api/desc/core/pcm-core.api @@ -201,6 +201,14 @@ type ( } ) +type ( + jobTotalResp { + AllCardRunTime float64 `json:"allCardRunTime"` + AllJobCount float64 `json:"allJobCount"` + AllJobRunTime float64 `json:"allJobRunTime"` + } +) + type ( taskListResp { TotalCount int `json:"totalCount"` diff --git a/adaptor/PCM-CORE/api/desc/pcm.api b/adaptor/PCM-CORE/api/desc/pcm.api index b0ad1e03..68cb3135 100644 --- a/adaptor/PCM-CORE/api/desc/pcm.api +++ b/adaptor/PCM-CORE/api/desc/pcm.api @@ -30,6 +30,9 @@ service pcm { @handler TaskListHandler get /core/taskList () returns (taskListResp) + @handler JobTotalHandler + get /core/jobTotal () returns (jobTotalResp) + @handler listCenterHandler get /core/listCenter () returns (listCenterResp) diff --git a/adaptor/PCM-CORE/api/internal/handler/core/jobtotalhandler.go b/adaptor/PCM-CORE/api/internal/handler/core/jobtotalhandler.go new file mode 100644 index 00000000..b69aca42 --- /dev/null +++ b/adaptor/PCM-CORE/api/internal/handler/core/jobtotalhandler.go @@ -0,0 +1,21 @@ +package core + +import ( + "net/http" + + "PCM/adaptor/PCM-CORE/api/internal/logic/core" + "PCM/adaptor/PCM-CORE/api/internal/svc" + "github.com/zeromicro/go-zero/rest/httpx" +) + +func JobTotalHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + l := core.NewJobTotalLogic(r.Context(), svcCtx) + resp, err := l.JobTotal() + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/adaptor/PCM-CORE/api/internal/handler/routes.go b/adaptor/PCM-CORE/api/internal/handler/routes.go index 28e7f4ca..5f0a711d 100644 --- a/adaptor/PCM-CORE/api/internal/handler/routes.go +++ b/adaptor/PCM-CORE/api/internal/handler/routes.go @@ -32,6 +32,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { Path: "/core/taskList", Handler: core.TaskListHandler(serverCtx), }, + { + Method: http.MethodGet, + Path: "/core/jobTotal", + Handler: core.JobTotalHandler(serverCtx), + }, { Method: http.MethodGet, Path: "/core/listCenter", diff --git a/adaptor/PCM-CORE/api/internal/logic/core/jobtotallogic.go b/adaptor/PCM-CORE/api/internal/logic/core/jobtotallogic.go new file mode 100644 index 00000000..1ef337b4 --- /dev/null +++ b/adaptor/PCM-CORE/api/internal/logic/core/jobtotallogic.go @@ -0,0 +1,37 @@ +package core + +import ( + "PCM/common/tool" + "context" + "k8s.io/apimachinery/pkg/util/json" + + "PCM/adaptor/PCM-CORE/api/internal/svc" + "PCM/adaptor/PCM-CORE/api/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type JobTotalLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewJobTotalLogic(ctx context.Context, svcCtx *svc.ServiceContext) *JobTotalLogic { + return &JobTotalLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *JobTotalLogic) JobTotal() (resp *types.JobTotalResp, err error) { + // todo: add your logic here and delete this line + resp = &types.JobTotalResp{} + bytes, err := tool.HttpGet("GET", "https://grampus.openi.org.cn/openapi/v1/sharescreen/computepower/alljobinfo") + if err != nil { + return nil, err + } + json.Unmarshal(bytes, resp) + return resp, nil +} diff --git a/adaptor/PCM-CORE/api/internal/types/types.go b/adaptor/PCM-CORE/api/internal/types/types.go index 158fc808..f0039fbe 100644 --- a/adaptor/PCM-CORE/api/internal/types/types.go +++ b/adaptor/PCM-CORE/api/internal/types/types.go @@ -180,6 +180,12 @@ type TaskInfo struct { Metadata interface{} `json:"metadata"` } +type JobTotalResp struct { + AllCardRunTime float64 `json:"allCardRunTime"` + AllJobCount float64 `json:"allJobCount"` + AllJobRunTime float64 `json:"allJobRunTime"` +} + type TaskListResp struct { TotalCount int `json:"totalCount"` CardTime float32 `json:"cardTime"` diff --git a/common/tool/http.go b/common/tool/http.go index 9423e60f..aa1f150d 100644 --- a/common/tool/http.go +++ b/common/tool/http.go @@ -75,6 +75,22 @@ func HttpClient(method string, url string, payload io.Reader, token string) ([]b return body, err } +func HttpGet(method string, url string) ([]byte, error) { + request, err := http.NewRequest(method, url, nil) + client := &http.Client{} + res, err := client.Do(request) + if err != nil { + log.Fatal(err) + } + defer res.Body.Close() + body, err := io.ReadAll(res.Body) + if err != nil { + log.Fatal(err) + } + + return body, err +} + // 发送POST请求 // url:请求地址,data:POST请求提交的数据,contentType:请求体格式,如:application/json // content:请求放回的内容