Skip to content

Commit 8c97704

Browse files
author
pixel
committed
插件功能修改
1 parent 16cf261 commit 8c97704

File tree

3 files changed

+36
-17
lines changed

3 files changed

+36
-17
lines changed

server/core/install_plugs.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package core
2+
3+
import (
4+
"fmt"
5+
"gin-vue-admin/global"
6+
"gin-vue-admin/initialize"
7+
"gin-vue-admin/middleware"
8+
"github.com/gin-gonic/gin"
9+
"github.com/piexlmax/gvaplug"
10+
)
11+
12+
func InstallPlugs(route *gin.Engine) {
13+
GvaPlugsGroupBase := route.Group("") // 纯净路由 插件可通用 传递给插件的0号位置 为了不让插件的自动路由出问题 这里建议为 ""
14+
/**安装一个插件需要的步骤 start**/
15+
GvaPlugsGroupMiddle := route.Group("") // 携带中间件的路由 传递给插件的1号位置 为了不让插件的自动路由出问题 这里建议为 ""
16+
GvaPlugsGroupMiddle.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
17+
// 插件安装 暂时只是后台功能 添加model 添加路由 添加对数据库的操作 详细插件测试模板可看https://github.com/piexlmax/gvaplug 此处不建议投入生产
18+
err := initialize.InstallPlug(global.GVA_DB, [2]*gin.RouterGroup{
19+
GvaPlugsGroupBase,
20+
GvaPlugsGroupMiddle,
21+
}, gvaplug.GvaPlug{SomeConfig: "插件给用户提供的配置区域"})
22+
if err != nil {
23+
panic(fmt.Sprintf("插件安装失败: %v", err))
24+
}
25+
/**安装一个插件需要的步骤 end**/
26+
}

server/core/server.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"fmt"
55
"gin-vue-admin/global"
66
"gin-vue-admin/initialize"
7-
"github.com/piexlmax/gvaplug"
87
"net/http"
98
"time"
109
)
@@ -17,11 +16,7 @@ func RunWindowsServer() {
1716
Router := initialize.Routers()
1817
Router.Static("/form-generator", "./resource/page")
1918

20-
// 插件安装 暂时只是后台功能 添加model 添加路由 添加对数据库的操作 详细插件测试模板可看https://github.com/piexlmax/gvaplug 此处不建议投入生产
21-
err := initialize.InstallPlug(global.GVA_DB, Router, gvaplug.GvaPlug{})
22-
if err != nil {
23-
panic(fmt.Sprintf("插件安装失败: %v", err))
24-
}
19+
InstallPlugs(Router)
2520
// end 插件描述
2621

2722
address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr)

server/initialize/plug.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,18 @@ import (
66
)
77

88
type Plug interface {
9-
InitRouter(*gin.Engine) error
9+
InitRouter([2]*gin.RouterGroup) error
1010
InitModel(*gorm.DB) error
1111
}
1212

13-
func InstallPlug(db *gorm.DB, router *gin.Engine, p ...Plug) (err error) {
14-
for _, v := range p {
15-
err = v.InitModel(db)
16-
if err != nil {
17-
return err
18-
}
19-
err = v.InitRouter(router)
20-
if err != nil {
21-
return err
22-
}
13+
func InstallPlug(db *gorm.DB, router [2]*gin.RouterGroup, p Plug) (err error) {
14+
err = p.InitModel(db)
15+
if err != nil {
16+
return err
17+
}
18+
err = p.InitRouter(router)
19+
if err != nil {
20+
return err
2321
}
2422
return nil
2523
}

0 commit comments

Comments
 (0)