curd on project
This commit is contained in:
parent
e4ddd0b445
commit
b1ab2df214
|
|
@ -14,7 +14,7 @@ func AddProject(username string, proj *model.ProjectModel) (utils.OKType, error)
|
|||
}
|
||||
|
||||
func DeleteProject(username string, ID uint) (utils.OKType, error) {
|
||||
old := model.ProjectModel{}
|
||||
old := &model.ProjectModel{}
|
||||
old.ID = ID
|
||||
old.Fill()
|
||||
if username != old.UserName {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package model
|
|||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
k8s_manager "k8s-manager/src"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
|
|
@ -32,7 +33,7 @@ type BaseModel[T any] struct {
|
|||
func (b *BaseModel[T]) Fill() {
|
||||
db := k8s_manager.DB()
|
||||
p := (*T)(unsafe.Pointer(b))
|
||||
db.First(p, b.ID)
|
||||
db.Preload(clause.Associations).First(p, b.ID)
|
||||
}
|
||||
|
||||
func (b *BaseModel[T]) Create() {
|
||||
|
|
@ -57,7 +58,7 @@ func (b *BaseModel[T]) Gets() []T {
|
|||
db := k8s_manager.DB()
|
||||
ans := make([]T, 0)
|
||||
p := (*T)(unsafe.Pointer(b))
|
||||
db.Where(p).Find(&ans)
|
||||
db.Preload(clause.Associations).Where(p).Find(&ans)
|
||||
return ans
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,8 +33,9 @@ func (*ProjectModel) TableName() string {
|
|||
|
||||
type ProjectTrainDataModel struct {
|
||||
BaseModel[ProjectTrainDataModel]
|
||||
ProjectID uint
|
||||
DataID uint
|
||||
ProjectID int
|
||||
Project *ProjectModel
|
||||
DataID int
|
||||
Data *DataModel
|
||||
MountPath string
|
||||
}
|
||||
|
|
@ -43,19 +44,15 @@ func (*ProjectTrainDataModel) TableName() string {
|
|||
return "project_train_data"
|
||||
}
|
||||
|
||||
func (p *ProjectModel) Fill() {
|
||||
db := k8s_manager.DB()
|
||||
db.Preload("ProjectTrainDataModel").First(p, p.ID)
|
||||
}
|
||||
|
||||
func (p *ProjectModel) Create() {
|
||||
db := k8s_manager.DB()
|
||||
db.Create(p)
|
||||
for _, d := range p.TrainData {
|
||||
d.ProjectID = p.ID
|
||||
db.Create(d)
|
||||
}
|
||||
}
|
||||
//func (p *ProjectModel) Fill() {
|
||||
// db := k8s_manager.DB()
|
||||
// db.Preload(clause.Associations).First(p, p.ID)
|
||||
//}
|
||||
//
|
||||
//func (p *ProjectModel) Create() {
|
||||
// db := k8s_manager.DB()
|
||||
// db.Create(p)
|
||||
//}
|
||||
|
||||
func (p *ProjectModel) Delete() {
|
||||
db := k8s_manager.DB()
|
||||
|
|
@ -71,30 +68,31 @@ func (p *ProjectModel) Save(oldProject *ProjectModel) {
|
|||
//oldProject.ID = p.ID
|
||||
//oldProject.Fill()
|
||||
|
||||
toAdd := utils.Difference(p.TrainData, oldProject.TrainData, func(a, b *ProjectTrainDataModel) bool { return a.ID == b.ID })
|
||||
for t := range toAdd {
|
||||
db.Create(t)
|
||||
}
|
||||
|
||||
//toAdd := utils.Difference(p.TrainData, oldProject.TrainData, func(a, b ProjectTrainDataModel) bool { return a.ID == b.ID })
|
||||
//for t := range toAdd {
|
||||
// db.Create(t)
|
||||
//}
|
||||
//
|
||||
toDel := utils.Difference(oldProject.TrainData, p.TrainData, func(a, b *ProjectTrainDataModel) bool { return a.ID == b.ID })
|
||||
for t := range toDel {
|
||||
for _, t := range toDel {
|
||||
db.Delete(t)
|
||||
}
|
||||
|
||||
toSave := utils.Intersect(oldProject.TrainData, p.TrainData, func(a, b *ProjectTrainDataModel) bool { return a.ID == b.ID })
|
||||
for t := range toSave {
|
||||
toSave := utils.Intersect(p.TrainData, oldProject.TrainData, func(a, b *ProjectTrainDataModel) bool { return a.ID == b.ID })
|
||||
for _, t := range toSave {
|
||||
t.Project = p
|
||||
db.Save(t)
|
||||
}
|
||||
|
||||
db.Save(p)
|
||||
}
|
||||
|
||||
func (p *ProjectModel) Gets() []ProjectModel {
|
||||
db := k8s_manager.DB()
|
||||
var ans []ProjectModel
|
||||
db.Model(&ProjectModel{}).Preload("ProjectTrainDataModel").Where(p).Find(&ans)
|
||||
return ans
|
||||
}
|
||||
//func (p *ProjectModel) Gets() []ProjectModel {
|
||||
// db := k8s_manager.DB()
|
||||
// var ans []ProjectModel
|
||||
// db.Model(&ProjectModel{}).Preload(clause.Associations).Where(p).Find(&ans)
|
||||
// return ans
|
||||
//}
|
||||
|
||||
type RunningProject struct {
|
||||
Project *ProjectModel
|
||||
|
|
|
|||
Loading…
Reference in New Issue