You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.1 KiB
Go

package utils
import (
"fmt"
"miniapp/global"
"miniapp/model/system"
"strconv"
)
func RegisterApis(apis ...system.SysApi) {
var count int64
var apiPaths []string
for i := range apis {
apiPaths = append(apiPaths, apis[i].Path)
}
global.GVA_DB.Find(&[]system.SysApi{}, "path in (?)", apiPaths).Count(&count)
if count > 0 {
fmt.Println("插件已安装或存在同名路由")
return
}
err := global.GVA_DB.Create(&apis).Error
if err != nil {
fmt.Println(err)
}
}
func RegisterMenus(menus ...system.SysBaseMenu) {
var count int64
var menuNames []string
parentMenu := menus[0]
otherMenus := menus[1:]
for i := range menus {
menuNames = append(menuNames, menus[i].Name)
}
global.GVA_DB.Find(&[]system.SysBaseMenu{}, "name in (?)", menuNames).Count(&count)
if count > 0 {
fmt.Println("插件已安装或存在同名菜单")
return
}
parentMenu.ParentId = "0"
err := global.GVA_DB.Create(&parentMenu).Error
if err != nil {
fmt.Println(err)
}
for i := range otherMenus {
pid := strconv.Itoa(int(parentMenu.ID))
otherMenus[i].ParentId = pid
}
err = global.GVA_DB.Create(&otherMenus).Error
if err != nil {
fmt.Println(err)
}
}