72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
package workspace
|
|
|
|
import (
|
|
"database/sql"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model"
|
|
"github.com/araujo88/lambda-go/pkg/core"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Workspace struct {
|
|
model.BaseUserModifyDbModel
|
|
Name string `gorm:"column:name" json:"name"` //type:string comment:名称 version:2024-02-12 14:22
|
|
Description string `gorm:"column:description" json:"description"` //type:string comment:描述 version:2024-02-12 14:22
|
|
Group *string `gorm:"column:group" json:"group"` //type:string comment:分组 version:2024-02-12 14:22
|
|
}
|
|
|
|
func New() *Workspace {
|
|
w := &Workspace{}
|
|
w.Handler = w
|
|
return w
|
|
}
|
|
|
|
// 说明:
|
|
func (*Workspace) TableName() string {
|
|
return "sched_workspace"
|
|
}
|
|
|
|
func (w *Workspace) ListGroup() ([]string, error) {
|
|
var result []sql.NullString
|
|
tx := model.DB().Table(w.TableName()).Select("\"group\"").Distinct().Scan(&result)
|
|
if len(result) > 0 {
|
|
us := core.Map(result, func(s sql.NullString) string {
|
|
if s.Valid {
|
|
return s.String
|
|
}
|
|
return ""
|
|
})
|
|
return us, tx.Error
|
|
}
|
|
return []string{}, tx.Error
|
|
}
|
|
|
|
func (w *Workspace) FindResult(db *gorm.DB) (interface{}, error) {
|
|
var result []Workspace
|
|
if db == nil {
|
|
return result, nil
|
|
}
|
|
err := db.Find(&result).Error
|
|
return result, err
|
|
}
|
|
|
|
// 根据Id判断是否存在
|
|
func (w *Workspace) ExistById(id string) (bool, error) {
|
|
var count int64
|
|
err := model.DB().Table(w.TableName()).Where("id = ?", id).Count(&count).Error
|
|
return count > 0, err
|
|
}
|
|
|
|
// 根据Id获取环境变量
|
|
func GetWorkspaceById(id string) (*Workspace, error) {
|
|
var workspace Workspace
|
|
err := model.DB().Table(workspace.TableName()).Where("id = ?", id).First(&workspace).Error
|
|
return &workspace, err
|
|
}
|
|
|
|
// 根据Id列表获取环境变量
|
|
func GetWorkspaceByIds(ids []string) ([]Workspace, error) {
|
|
var workspaces []Workspace
|
|
err := model.DB().Table(New().TableName()).Where("id in (?)", ids).Find(&workspaces).Error
|
|
return workspaces, err
|
|
}
|