package database import ( "github.com/zeromicro/go-zero/core/logx" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" "gorm.io/gorm" "time" ) type AiStorage struct { DbEngin *gorm.DB } func (s *AiStorage) GetParticipants() (*types.ClusterListResp, error) { var resp types.ClusterListResp tx := s.DbEngin.Raw("select * from t_cluster where `deleted_at` IS NULL ORDER BY create_time Desc").Scan(&resp.List) if tx.Error != nil { logx.Errorf(tx.Error.Error()) return nil, tx.Error } return &resp, nil } func (s *AiStorage) GetClustersByAdapterId(id string) (*types.ClusterListResp, error) { var resp types.ClusterListResp tx := s.DbEngin.Raw("select * from t_cluster where `deleted_at` IS NULL and `adapter_id` = ? ORDER BY create_time Desc", id).Scan(&resp.List) if tx.Error != nil { logx.Errorf(tx.Error.Error()) return nil, tx.Error } return &resp, nil } func (s *AiStorage) GetAdapterIdsByType(adapterType string) ([]string, error) { var list []types.AdapterInfo var ids []string db := s.DbEngin.Model(&types.AdapterInfo{}).Table("t_adapter") db = db.Where("type = ?", adapterType) err := db.Order("create_time desc").Find(&list).Error if err != nil { return nil, err } for _, info := range list { ids = append(ids, info.Id) } return ids, nil } func (s *AiStorage) SaveTask(name string) error { // 构建主任务结构体 taskModel := models.Task{ Status: constants.Saved, Description: "ai task", Name: name, CommitTime: time.Now(), } // 保存任务数据到数据库 tx := s.DbEngin.Create(&taskModel) if tx.Error != nil { return tx.Error } return nil } func (s *AiStorage) UpdateTask() error { return nil }