From c76fa0492ec810cec6f895735be953f571c2465c Mon Sep 17 00:00:00 2001 From: zhangwei <894646498@qq.com> Date: Wed, 15 Jan 2025 09:39:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=BB=E5=8A=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desc/core/pcm-core.api | 1 + desc/hpc/pcm-hpc.api | 2 ++ internal/handler/cloud/commitgeneraltaskhandler.go | 8 ++++++++ internal/handler/core/pagelisttaskhandler.go | 1 - internal/handler/hpc/commithpctaskhandler.go | 10 ++++++++++ internal/logic/cloud/commitgeneraltasklogic.go | 1 + internal/types/types.go | 3 +++ pkg/models/cloud/task_cloud.go | 1 + pkg/models/taskhpcmodel_gen.go | 2 +- pkg/models/userInfo.go | 11 +++++++++++ pkg/utils/remoteUtil/BlockChain.go | 3 ++- 11 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 pkg/models/userInfo.go diff --git a/desc/core/pcm-core.api b/desc/core/pcm-core.api index 211bfa07..04792a90 100644 --- a/desc/core/pcm-core.api +++ b/desc/core/pcm-core.api @@ -158,6 +158,7 @@ type ( type ( GeneralTaskReq { Token string `json:"token,optional"` + UserId int64 `json:"userId,optional"` Name string `json:"name"` AdapterIds []string `json:"adapterIds"` ClusterIds []string `json:"clusterIds"` diff --git a/desc/hpc/pcm-hpc.api b/desc/hpc/pcm-hpc.api index 3022215e..3dcd70f7 100644 --- a/desc/hpc/pcm-hpc.api +++ b/desc/hpc/pcm-hpc.api @@ -30,6 +30,8 @@ type ( StdInput string `json:"stdInput,optional"` ClusterType string `json:"clusterType,optional"` Partition string `json:"partition"` + UserId int64 `json:"userId,optional"` + Token string `json:"token,optional"` } commitHpcTaskResp { diff --git a/internal/handler/cloud/commitgeneraltaskhandler.go b/internal/handler/cloud/commitgeneraltaskhandler.go index 78a056fd..ac104839 100644 --- a/internal/handler/cloud/commitgeneraltaskhandler.go +++ b/internal/handler/cloud/commitgeneraltaskhandler.go @@ -5,7 +5,9 @@ import ( "gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/cloud" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result" + "k8s.io/apimachinery/pkg/util/json" "net/http" ) @@ -17,8 +19,14 @@ func CommitGeneralTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { result.ParamErrorResult(r, w, err) return } + // 获取token信息 token := r.Header.Get("Authorization") req.Token = token + // 获取用户信息 + userStr := r.Header.Get("User") + user := &models.JccUserInfo{} + json.Unmarshal([]byte(userStr), user) + req.UserId = user.Id l := cloud.NewCommitGeneralTaskLogic(r.Context(), svcCtx) err := l.CommitGeneralTask(&req) result.HttpResult(r, w, nil, err) diff --git a/internal/handler/core/pagelisttaskhandler.go b/internal/handler/core/pagelisttaskhandler.go index 6c0ce4f9..2bd6177a 100644 --- a/internal/handler/core/pagelisttaskhandler.go +++ b/internal/handler/core/pagelisttaskhandler.go @@ -16,7 +16,6 @@ func PageListTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { result.ParamErrorResult(r, w, err) return } - l := core.NewPageListTaskLogic(r.Context(), svcCtx) resp, err := l.PageListTask(&req) result.HttpResult(r, w, resp, err) diff --git a/internal/handler/hpc/commithpctaskhandler.go b/internal/handler/hpc/commithpctaskhandler.go index ba7d6da8..1f096c88 100644 --- a/internal/handler/hpc/commithpctaskhandler.go +++ b/internal/handler/hpc/commithpctaskhandler.go @@ -5,7 +5,9 @@ import ( "gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/hpc" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result" + "k8s.io/apimachinery/pkg/util/json" "net/http" ) @@ -16,6 +18,14 @@ func CommitHpcTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { result.ParamErrorResult(r, w, err) return } + // 获取token信息 + token := r.Header.Get("Authorization") + req.Token = token + // 获取用户信息 + userStr := r.Header.Get("User") + user := &models.JccUserInfo{} + json.Unmarshal([]byte(userStr), user) + req.UserId = user.Id l := hpc.NewCommitHpcTaskLogic(r.Context(), svcCtx) resp, err := l.CommitHpcTask(&req) diff --git a/internal/logic/cloud/commitgeneraltasklogic.go b/internal/logic/cloud/commitgeneraltasklogic.go index 56e46090..4c492e83 100644 --- a/internal/logic/cloud/commitgeneraltasklogic.go +++ b/internal/logic/cloud/commitgeneraltasklogic.go @@ -113,6 +113,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er clusterId, _ := strconv.ParseUint(r.ClusterId, 10, 64) taskCloud.AdapterId = uint(adapterId) taskCloud.AdapterName = adapterName + taskCloud.UserId = req.UserId taskCloud.ClusterId = uint(clusterId) taskCloud.ClusterName = r.ClusterName taskCloud.Status = constants.Saved diff --git a/internal/types/types.go b/internal/types/types.go index 0d382985..238d9873 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -142,6 +142,7 @@ type Region struct { type GeneralTaskReq struct { Token string `json:"token,optional"` + UserId int64 `json:"userId,optional"` Name string `json:"name"` AdapterIds []string `json:"adapterIds"` ClusterIds []string `json:"clusterIds"` @@ -1299,6 +1300,8 @@ type CommitHpcTaskReq struct { StdInput string `json:"stdInput,optional"` ClusterType string `json:"clusterType,optional"` Partition string `json:"partition"` + UserId int64 `json:"userId,optional"` + Token string `json:"token,optional"` } type CommitHpcTaskResp struct { diff --git a/pkg/models/cloud/task_cloud.go b/pkg/models/cloud/task_cloud.go index 39a51afe..47246232 100644 --- a/pkg/models/cloud/task_cloud.go +++ b/pkg/models/cloud/task_cloud.go @@ -19,6 +19,7 @@ type TaskCloudModel struct { YamlString string `json:"yamlString" gorm:"not null;comment:入参"` Result string `json:"result" gorm:"comment:运行结果"` Namespace string `json:"namespace" gorm:"comment:命名空间"` + UserId int64 `json:"userId" gorm:"comment:用户id"` base.BaseModel } diff --git a/pkg/models/taskhpcmodel_gen.go b/pkg/models/taskhpcmodel_gen.go index e99455f2..4286f4b6 100644 --- a/pkg/models/taskhpcmodel_gen.go +++ b/pkg/models/taskhpcmodel_gen.go @@ -77,7 +77,7 @@ type ( CreatedTime time.Time `db:"created_time"` // 创建时间 UpdatedBy int64 `db:"updated_by"` // 更新人 UpdatedTime time.Time `db:"updated_time"` // 更新时间 - + UserId int64 `db:"user_id"` } ) diff --git a/pkg/models/userInfo.go b/pkg/models/userInfo.go new file mode 100644 index 00000000..0944e54f --- /dev/null +++ b/pkg/models/userInfo.go @@ -0,0 +1,11 @@ +package models + +type JccUserInfo struct { + UserName string `json:"user_name"` + Scope []string `json:"scope"` + Id int64 `json:"id"` + Exp int64 `json:"exp"` + Authorities []string `json:"authorities"` + Jti string `json:"jti"` + ClientID string `json:"client_id"` +} diff --git a/pkg/utils/remoteUtil/BlockChain.go b/pkg/utils/remoteUtil/BlockChain.go index 8b5cb3d0..cf48ed47 100644 --- a/pkg/utils/remoteUtil/BlockChain.go +++ b/pkg/utils/remoteUtil/BlockChain.go @@ -17,7 +17,8 @@ type EvidenceParam struct { func Evidence(EvidenceParam EvidenceParam) error { httpClient := resty.New().R() _, err := httpClient.SetHeader("Content-Type", "application/json"). - SetBody(&EvidenceParam). + SetHeader("Authorization", EvidenceParam.Token). + SetBody(&EvidenceParam.Args). Post(EvidenceParam.Url) if err != nil { return err