package model import ( "Panel_development/global" "errors" "gorm.io/gorm" ) type ComponentClassify struct { gorm.Model Name string `gorm:"type:varchar(255);not null;unique;comment:组件分类名称" json:"name" validate:"required"` ParentId uint `gorm:"type:int;not null;comment:父组件id" json:"parentId"` Child []ComponentClassify `gorm:"-" json:"child"` // 此字段将不会被GORM迁移至数据库 } func (cc ComponentClassify) TableName() string { return "component_classify" } // AddComponentClassify 添加组件分类 func (cc ComponentClassify) AddComponentClassify(cclass ComponentClassify) (ComponentClassify, error) { //TODO implement me tx := global.DBLink.Create(&cclass) if tx.RowsAffected > 0 { return ComponentClassify{}, nil } return ComponentClassify{}, errors.New("添加失败") } // GetComponentClassify 获取组件分类 func (cc ComponentClassify) GetComponentClassify() ([]ComponentClassify, error) { //TODO implement me var parent []ComponentClassify var child []ComponentClassify global.DBLink.Where("parent_id = 0").Find(&parent) for _, classify := range parent { global.DBLink.Where("parent_id =?", classify.ID).Find(&child) } return parent, nil }