From c98ab4a88892d02f81e17b0e7fd5ea944e1cb5e4 Mon Sep 17 00:00:00 2001 From: zhangwei <894646498@qq.com> Date: Wed, 30 Jul 2025 14:40:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B9=E5=99=A8=E6=8E=A5=E5=8F=A3=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/cloud/containercreatehandler.go | 7 +++- internal/logic/adapters/updateclusterlogic.go | 10 ++--- .../logic/cloud/commitgeneraltasklogic.go | 8 ++-- internal/logic/cloud/containercreatelogic.go | 41 ++++++++++++++++++- internal/participant/cloud/model.go | 1 + .../scheduler/schedulers/cloudScheduler.go | 4 +- internal/types/cloud/container.go | 3 ++ pkg/models/cloud/task_cloud.go | 6 +-- 8 files changed, 64 insertions(+), 16 deletions(-) diff --git a/internal/handler/cloud/containercreatehandler.go b/internal/handler/cloud/containercreatehandler.go index 29a9c8640..f2fbf142f 100644 --- a/internal/handler/cloud/containercreatehandler.go +++ b/internal/handler/cloud/containercreatehandler.go @@ -2,6 +2,7 @@ package cloud import ( "gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/cloud" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result" "io" "k8s.io/apimachinery/pkg/util/json" @@ -24,7 +25,11 @@ func ContainerCreateHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { result.ParamErrorResult(r, w, err) return } - + // 获取用户信息 + userStr := r.Header.Get("User") + user := &models.JccUserInfo{} + json.Unmarshal([]byte(userStr), user) + req.UserId = user.Id l := cloud.NewContainerCreateLogic(r.Context(), svcCtx) resp, err := l.ContainerCreate(&req) result.HttpResult(r, w, resp, err) diff --git a/internal/logic/adapters/updateclusterlogic.go b/internal/logic/adapters/updateclusterlogic.go index 877151c0f..cea824aa8 100644 --- a/internal/logic/adapters/updateclusterlogic.go +++ b/internal/logic/adapters/updateclusterlogic.go @@ -37,11 +37,11 @@ func (l *UpdateClusterLogic) UpdateCluster(req *types.ClusterCreateReq) (resp *t } utils.Convert(req, &cluster) // 获取集群经纬度 - location, err := GeoMap(req.RegionName) - if err != nil { - return nil, err - } - cluster.Location = location + //location, err := GeoMap(req.RegionName) + //if err != nil { + // return nil, err + //} + //cluster.Location = location l.svcCtx.DbEngin.Table("t_cluster").Model(&cluster).Updates(&cluster) // 更新资源价格表 clusterId, err := strconv.ParseInt(req.Id, 10, 64) diff --git a/internal/logic/cloud/commitgeneraltasklogic.go b/internal/logic/cloud/commitgeneraltasklogic.go index c0fbf626c..6a3acd3cb 100644 --- a/internal/logic/cloud/commitgeneraltasklogic.go +++ b/internal/logic/cloud/commitgeneraltasklogic.go @@ -60,7 +60,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) (r logx.Info("commit success") } }() - adapterId, _ := strconv.ParseUint(req.AdapterIds[0], 10, 64) + adapterId, _ := strconv.ParseInt(req.AdapterIds[0], 10, 64) var clusters []*models.CloudModel err = tx.Raw("SELECT * FROM `t_cluster` where adapter_id in ? and id in ?", req.AdapterIds, req.ClusterIds).Scan(&clusters).Error if err != nil { @@ -111,11 +111,11 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) (r for _, s := range req.ReqBody { sStruct := UnMarshalK8sStruct(s, int64(r.Replica)) unString, _ := sStruct.MarshalJSON() - taskCloud.Id = utils.GenSnowflakeIDUint() + taskCloud.Id = utils.GenSnowflakeID() taskCloud.Name = sStruct.GetName() + "-" + sStruct.GetKind() - taskCloud.TaskId = uint(taskModel.Id) + taskCloud.TaskId = taskModel.Id clusterId, _ := strconv.ParseUint(r.ClusterId, 10, 64) - taskCloud.AdapterId = uint(adapterId) + taskCloud.AdapterId = adapterId taskCloud.AdapterName = adapterName taskCloud.UserId = req.UserId taskCloud.ClusterId = uint(clusterId) diff --git a/internal/logic/cloud/containercreatelogic.go b/internal/logic/cloud/containercreatelogic.go index 587cb7983..c0549e248 100644 --- a/internal/logic/cloud/containercreatelogic.go +++ b/internal/logic/cloud/containercreatelogic.go @@ -21,7 +21,12 @@ import ( "gitlink.org.cn/JointCloud/pcm-coordinator/internal/participant/cloud" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc" container "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types/cloud" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" + cloud2 "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models/cloud" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils" "net/http" + "time" ) type ContainerCreateLogic struct { @@ -39,8 +44,10 @@ func NewContainerCreateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *C } func (l *ContainerCreateLogic) ContainerCreate(req *container.CreateParam) (resp interface{}, err error) { + param := &cloud.CreateParam{ Name: req.Name, + Description: req.Description, Port: req.Port, Cpu: req.Cpu, Memory: req.Memory, @@ -59,6 +66,38 @@ func (l *ContainerCreateLogic) ContainerCreate(req *container.CreateParam) (resp if create.Code != http.StatusOK { return nil, errors.New(create.Message) } - resp = create.Data + // 构建主任务结构体 + taskModel := models.Task{ + Id: utils.GenSnowflakeID(), + Status: constants.Saved, + Description: req.Description, + Name: req.Name, + UserId: req.UserId, + AdapterTypeDict: "0", + CommitTime: time.Now(), + } + // 保存任务数据到数据库 + tx := l.svcCtx.DbEngin.Create(&taskModel) + if tx.Error != nil { + + } + var adapterId int64 + tx.Table("t_cluster").Select("adapter_id").Where("id=?", req.ClusterId).Find(&adapterId) + // 构建cloud任务结构体 + cloudTaskModel := cloud2.TaskCloudModel{ + Id: utils.GenSnowflakeID(), + TaskId: taskModel.Id, + Name: req.Name, + AdapterId: adapterId, + Status: constants.Saved, + Namespace: "default", + UserId: req.UserId, + } + // 保存任务数据到数据库 + tx = l.svcCtx.DbEngin.Create(&cloudTaskModel) + if tx.Error != nil { + + } + resp = taskModel.Id return } diff --git a/internal/participant/cloud/model.go b/internal/participant/cloud/model.go index 6f9880dcb..27033b121 100644 --- a/internal/participant/cloud/model.go +++ b/internal/participant/cloud/model.go @@ -13,6 +13,7 @@ type Resp struct { type CreateParam struct { ContainerGroupName string `json:"containerGroupName"` + Description string `json:"description,omitempty"` Name string `json:"name"` Image string `json:"image"` Cpu string `json:"cpu,omitempty"` diff --git a/internal/scheduler/schedulers/cloudScheduler.go b/internal/scheduler/schedulers/cloudScheduler.go index 19b8b1783..d7b161286 100644 --- a/internal/scheduler/schedulers/cloudScheduler.go +++ b/internal/scheduler/schedulers/cloudScheduler.go @@ -59,8 +59,8 @@ func NewCloudScheduler(ctx context.Context, val string, scheduler *scheduler.Sch func (as *CloudScheduler) GetNewStructForDb(task *response.TaskInfo, resource string, participantId int64) (interface{}, error) { c := cloud.TaskCloudModel{ - AdapterId: uint(participantId), - TaskId: uint(task.TaskId), + AdapterId: (participantId), + TaskId: (task.TaskId), Status: constants.Saved, YamlString: as.yamlString, } diff --git a/internal/types/cloud/container.go b/internal/types/cloud/container.go index 3c30dcf5f..bbf1a026a 100644 --- a/internal/types/cloud/container.go +++ b/internal/types/cloud/container.go @@ -12,6 +12,8 @@ type ContainerDeleteParameter interface { type CreateParam struct { ClusterId string `json:"clusterId,omitempty"` ContainerGroupName string `json:"containerGroupName"` + Description string `json:"description,omitempty"` + UserId int64 `json:"userId"` Name string `json:"name"` Image string `json:"image"` Cpu string `json:"cpu,omitempty"` @@ -61,6 +63,7 @@ type EciDeleteParam struct { // 获取容器信息 type GetParam struct { + TaskId string `json:"taskId"` ClusterId string `json:"clusterId,omitempty"` Name string `json:"name,omitempty"` GetParameter ContainerGetParameter `json:"getParameter,omitempty"` diff --git a/pkg/models/cloud/task_cloud.go b/pkg/models/cloud/task_cloud.go index 472462328..183def451 100644 --- a/pkg/models/cloud/task_cloud.go +++ b/pkg/models/cloud/task_cloud.go @@ -6,10 +6,10 @@ import ( ) type TaskCloudModel struct { - Id uint `json:"id" gorm:"primarykey;not null;comment:id"` + Id int64 `json:"id" gorm:"primarykey;not null;comment:id"` Name string `json:"name" gorm:"null;comment:名称"` - TaskId uint `json:"taskId" gorm:"not null;comment:task表id"` - AdapterId uint `json:"adapterId" gorm:"not null;comment:适配器id"` + TaskId int64 `json:"taskId" gorm:"not null;comment:task表id"` + AdapterId int64 `json:"adapterId" gorm:"not null;comment:适配器id"` AdapterName string `json:"adapterName" gorm:"not null;comment:适配器名称"` ClusterId uint `json:"clusterId" gorm:"not null;comment:集群id"` ClusterName string `json:"clusterName" gorm:"not null;comment:集群名称"`