From c13d13ccf40ce82fb5c1b68cb6be2564298b6672 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Tue, 11 May 2021 18:34:57 +0800 Subject: [PATCH] =?UTF-8?q?feat=E2=9C=A8=20=E6=B7=BB=E5=8A=A0api=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/sys_api.go | 40 +++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/app/admin/models/sys_api.go b/app/admin/models/sys_api.go index 8f5e5c59..52455968 100644 --- a/app/admin/models/sys_api.go +++ b/app/admin/models/sys_api.go @@ -3,19 +3,21 @@ package models import ( // "gorm.io/gorm" + "errors" + "github.com/go-admin-team/go-admin-core/sdk/pkg" "go-admin/common/models" + "gorm.io/gorm" ) type SysApi struct { - models.Model - + Id int `json:"id" gorm:"primaryKey;autoIncrement;comment:主键编码"` Name string `json:"name" gorm:"type:varchar(128);comment:名称"` Title string `json:"title" gorm:"type:varchar(128);comment:标题"` Path string `json:"path" gorm:"type:varchar(128);comment:地址"` Paths string `json:"paths" gorm:"type:varchar(128);comment:Paths"` Action string `json:"action" gorm:"type:varchar(16);comment:类型"` - ParentId string `json:"parentId" gorm:"type:smallint(6);comment:按钮id"` - Sort string `json:"sort" gorm:"type:tinyint(4);comment:排序"` + ParentId int `json:"parentId" gorm:"type:smallint(6);comment:按钮id"` + Sort int `json:"sort" gorm:"type:tinyint(4);comment:排序"` models.ModelTime models.ControlBy } @@ -32,3 +34,33 @@ func (e *SysApi) Generate() models.ActiveRecord { func (e *SysApi) GetId() interface{} { return e.Id } + +func (e *SysApi) Create(tx *gorm.DB) (id int, err error) { + result := tx.Table(e.TableName()).Create(&e) + if result.Error != nil { + err = result.Error + return + } + err = e.InitPaths(tx) + if err != nil { + return + } + id = e.Id + return +} + +func (e *SysApi) InitPaths(tx *gorm.DB) (err error) { + parentMenu := new(Menu) + if e.ParentId != 0 { + tx.Table("sys_api").Where("id = ?", e.ParentId).First(parentMenu) + if parentMenu.Paths == "" { + err = errors.New("父级paths异常,请尝试对当前节点父级菜单进行更新操作!") + return + } + e.Paths = parentMenu.Paths + "/" + pkg.IntToString(e.Id) + } else { + e.Paths = "/0/" + pkg.IntToString(e.Id) + } + tx.Table("sys_api").Where("id = ?", e.ParentId).Update("paths", e.Paths) + return +}