diff --git a/server/core/server.go b/server/core/server.go index 803d0d077454343e5461cb4dd16a5c894e39545b..61dbcac167b72586d99d0b15e6a55e0e3d863942 100644 --- a/server/core/server.go +++ b/server/core/server.go @@ -4,6 +4,7 @@ import ( "fmt" "gin-vue-admin/global" "gin-vue-admin/initialize" + "github.com/piexlmax/gvaplug" "net/http" "time" ) @@ -15,6 +16,11 @@ func RunWindowsServer() { } Router := initialize.Routers() Router.Static("/form-generator", "./resource/page") + err := initialize.InstallPlug(global.GVA_DB, Router, gvaplug.GvaPlug{}) + if err != nil { + panic(fmt.Sprintf("插件安装失败: %v", err)) + } + address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr) s := &http.Server{ Addr: address, diff --git a/server/go.mod b/server/go.mod index f9895752204384c9a3095546084bd9ad5738ff72..84be7ad9b11f305d5358a77c93cb8d8acddebb0d 100644 --- a/server/go.mod +++ b/server/go.mod @@ -10,7 +10,7 @@ require ( github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect github.com/fsnotify/fsnotify v1.4.9 - github.com/gin-gonic/gin v1.6.1 + github.com/gin-gonic/gin v1.6.3 github.com/go-openapi/spec v0.19.7 // indirect github.com/go-openapi/swag v0.19.8 // indirect github.com/go-redis/redis v6.15.7+incompatible @@ -28,6 +28,7 @@ require ( github.com/onsi/gomega v1.4.3 // indirect github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 github.com/pelletier/go-toml v1.6.0 // indirect + github.com/piexlmax/gvaplug v0.0.5 github.com/pkg/errors v0.9.1 // indirect github.com/qiniu/api.v7 v7.2.5+incompatible github.com/qiniu/x v7.0.8+incompatible // indirect diff --git a/server/initialize/plug.go b/server/initialize/plug.go new file mode 100644 index 0000000000000000000000000000000000000000..60dce2e3aa9ac95d34d5efdf23d6805a57316ce9 --- /dev/null +++ b/server/initialize/plug.go @@ -0,0 +1,25 @@ +package initialize + +import ( + "github.com/gin-gonic/gin" + "github.com/jinzhu/gorm" +) + +type Plug interface { + InitRouter(*gin.Engine) error + InitModel(*gorm.DB) error +} + +func InstallPlug(db *gorm.DB, router *gin.Engine, p ...Plug) (err error) { + for _, v := range p { + err = v.InitModel(db) + if err != nil { + return err + } + err = v.InitRouter(router) + if err != nil { + return err + } + } + return nil +}