65 lines
2.0 KiB
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
|
|
}
|