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