JCC-CSScheduler/common/pkgs/db/computing_center.go

65 lines
2.0 KiB
Go

package db
import (
schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
schmod "gitlink.org.cn/cloudream/scheduler/common/models"
)
type ComputingCenterDB struct {
*DB
}
func (db *DB) ComputingCenter() *ComputingCenterDB {
return &ComputingCenterDB{DB: db}
}
//func (*ComputingCenterDB) GetByPackageID(ctx SQLContext, id schsdk.CCID) (schmod.ComputingCenter, error) {
// var ret TempComputingCenter
// err := sqlx.Get(ctx, &ret, "select cc.*, ei.executorURL from (select * from ComputingCenter where CCID = ?) as cc left join (select * from ExecutorInfo) as ei on cc.executorID = ei.executorID", id)
// return ret.ToComputingCenter(), err
//}
func (*ComputingCenterDB) GetByID(ctx SQLContext, id schsdk.CCID) (schmod.ComputingCenter, error) {
var ret TempComputingCenter
// 使用 GORM 的原始 SQL 查询
err := ctx.Table("ComputingCenter").Raw(`
SELECT cc.*, ei.executorURL
FROM (SELECT * FROM ComputingCenter WHERE CCID = ?) AS cc
LEFT JOIN (SELECT * FROM ExecutorInfo) AS ei
ON cc.executorID = ei.executorID`, id).Scan(&ret).Error
// 将 TempComputingCenter 转换为 ComputingCenter
return ret.ToComputingCenter(), err
}
//func (*ComputingCenterDB) GetAll(ctx SQLContext) ([]schmod.ComputingCenter, error) {
// var tmp []TempComputingCenter
// err := sqlx.Select(ctx, &tmp, "select * from ComputingCenter")
//
// var ret []schmod.ComputingCenter
// for _, t := range tmp {
// ret = append(ret, t.ToComputingCenter())
// }
//
// return ret, err
//}
func (*ComputingCenterDB) GetAll(ctx SQLContext) ([]schmod.ComputingCenter, error) {
//var tmp []TempComputingCenter
var tmp []schmod.ComputingCenter
// 使用 GORM 的 Find 查询所有 ComputingCenter 数据
err := ctx.Table("ComputingCenter").Find(&tmp).Error
if err != nil {
return nil, err
}
// 将查询结果从 TempComputingCenter 转换为 ComputingCenter
//var ret []schmod.ComputingCenter
//for _, t := range tmp {
// ret = append(ret, t.ToComputingCenter())
//}
return tmp, nil
}