mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-10-02 05:31:22 +00:00
68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package models
|
|
|
|
import (
|
|
// "gorm.io/gorm"
|
|
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/go-admin-team/go-admin-core/sdk"
|
|
"github.com/go-admin-team/go-admin-core/sdk/runtime"
|
|
"github.com/go-admin-team/go-admin-core/storage"
|
|
"go-admin/common/models"
|
|
)
|
|
|
|
type SysApi struct {
|
|
Id int `json:"id" gorm:"primaryKey;autoIncrement;comment:主键编码"`
|
|
Handle string `json:"handle" gorm:"type:varchar(128);comment:handle"`
|
|
Title string `json:"title" gorm:"type:varchar(128);comment:标题"`
|
|
Permission string `json:"permission" gorm:"size:255;"`
|
|
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 int `json:"parentId" gorm:"comment:按钮id"`
|
|
Sort int `json:"sort" gorm:"type:tinyint(4);comment:排序"`
|
|
models.ModelTime
|
|
models.ControlBy
|
|
}
|
|
|
|
func (SysApi) TableName() string {
|
|
return "sys_api"
|
|
}
|
|
|
|
func (e *SysApi) Generate() models.ActiveRecord {
|
|
o := *e
|
|
return &o
|
|
}
|
|
|
|
func (e *SysApi) GetId() interface{} {
|
|
return e.Id
|
|
}
|
|
|
|
func SaveSysApi(message storage.Messager) (err error) {
|
|
var rb []byte
|
|
rb, err = json.Marshal(message.GetValues())
|
|
if err != nil {
|
|
fmt.Errorf("json Marshal error, %s", err.Error())
|
|
return err
|
|
}
|
|
|
|
var l runtime.Routers
|
|
err = json.Unmarshal(rb, &l)
|
|
if err != nil {
|
|
fmt.Errorf("json Unmarshal error, %s", err.Error())
|
|
return err
|
|
}
|
|
dbList := sdk.Runtime.GetDb()
|
|
for _, d := range dbList {
|
|
for _, v := range l.List {
|
|
err := d.Debug().Where(SysApi{Path: v.RelativePath, Action: v.HttpMethod}).
|
|
Attrs(SysApi{Handle: v.Handler}).
|
|
FirstOrCreate(&SysApi{}).Error
|
|
if err != nil {
|
|
err := fmt.Errorf("Models SaveSysApi error: %s \r\n ", err.Error())
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
} |