Skip to content

Commit 999be89

Browse files
author
piexlmax
committed
增加插件api 菜单自动检测并注册功能插件(插件市场同步增加,无需全量更新即可使用)
1 parent 74489d8 commit 999be89

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package utils
2+
3+
import (
4+
"fmt"
5+
"github.com/flipped-aurora/gin-vue-admin/server/global"
6+
"github.com/flipped-aurora/gin-vue-admin/server/model/system"
7+
"strconv"
8+
)
9+
10+
func RegisterApis(apis ...system.SysApi) {
11+
var count int64
12+
var apiPaths []string
13+
for i := range apis {
14+
apiPaths = append(apiPaths, apis[i].Path)
15+
}
16+
global.GVA_DB.Find(&[]system.SysApi{}, "path in (?)", apiPaths).Count(&count)
17+
if count > 0 {
18+
fmt.Println("插件已安装或存在同名路由")
19+
return
20+
}
21+
err := global.GVA_DB.Create(&apis).Error
22+
if err != nil {
23+
fmt.Println(err)
24+
}
25+
}
26+
27+
func RegisterMenus(menus ...system.SysBaseMenu) {
28+
var count int64
29+
var menuNames []string
30+
parentMenu := menus[0]
31+
otherMenus := menus[1:]
32+
for i := range menus {
33+
menuNames = append(menuNames, menus[i].Name)
34+
}
35+
global.GVA_DB.Find(&[]system.SysBaseMenu{}, "name in (?)", menuNames).Count(&count)
36+
if count > 0 {
37+
fmt.Println("插件已安装或存在同名菜单")
38+
return
39+
}
40+
parentMenu.ParentId = "0"
41+
err := global.GVA_DB.Create(&parentMenu).Error
42+
if err != nil {
43+
fmt.Println(err)
44+
}
45+
for i := range otherMenus {
46+
pid := strconv.Itoa(int(parentMenu.ID))
47+
otherMenus[i].ParentId = pid
48+
}
49+
err = global.GVA_DB.Create(&otherMenus).Error
50+
if err != nil {
51+
fmt.Println(err)
52+
}
53+
}

0 commit comments

Comments
 (0)