fix 完善代码生成自动注册模块路由,升级gf版本至2.3.2
This commit is contained in:
parent
10ed960475
commit
8c29d30580
2
go.mod
2
go.mod
@ -7,7 +7,7 @@ require (
|
||||
github.com/go-sql-driver/mysql v1.7.0 // indirect
|
||||
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.5
|
||||
github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0
|
||||
github.com/gogf/gf/v2 v2.3.1
|
||||
github.com/gogf/gf/v2 v2.3.2
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.14 // indirect
|
||||
github.com/mojocn/base64Captcha v1.3.5
|
||||
|
4
go.sum
4
go.sum
@ -58,8 +58,8 @@ github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0 h1:r2q8MLwF6yUIEm6Hhwsfo/ixaJTK
|
||||
github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0/go.mod h1:V9o2BF9ovJnaZhHImHAanqUgjX4kI51lgU45u5rPqvw=
|
||||
github.com/gogf/gf/v2 v2.0.0/go.mod h1:apktt6TleWtCIwpz63vBqUnw8MX8gWKoZyxgDpXFtgM=
|
||||
github.com/gogf/gf/v2 v2.3.0/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||
github.com/gogf/gf/v2 v2.3.1 h1:uptCJK47N6KSRwTBnFAqBWYnYa/OXBkZ0OlhO9CK7bQ=
|
||||
github.com/gogf/gf/v2 v2.3.1/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||
github.com/gogf/gf/v2 v2.3.2 h1:nlJ0zuDWqFb93/faZmr7V+GADx/lzz5Unz/9x6OJ2u8=
|
||||
github.com/gogf/gf/v2 v2.3.2/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs=
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||
|
@ -1052,7 +1052,13 @@ func (s *sToolsGenTable) GenCode(ctx context.Context, ids []int) (err error) {
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
}
|
||||
//生成对应模块的logic
|
||||
//生成模块路由
|
||||
err = s.genModuleRouter(curDir, goModName, extendData.ModuleName)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
//生成模块boot logic
|
||||
err = s.genModuleBootLogic(curDir, extendData.ModuleName)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
//生成对应模块的业务logic
|
||||
err = s.genModuleLogic(curDir, goModName, extendData.PackageName)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
@ -1169,7 +1175,7 @@ func (s *sToolsGenTable) trimBreak(str string) (rStr string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// GenModuleRouter 生成模块路由
|
||||
// GenModuleRouter 生成模块logic
|
||||
func (s *sToolsGenTable) genModuleLogic(curDir, goModName, packageName string) (err error) {
|
||||
var (
|
||||
packages []string
|
||||
@ -1196,3 +1202,37 @@ func (s *sToolsGenTable) genModuleLogic(curDir, goModName, packageName string) (
|
||||
err = s.createFile(path+"/logic.go", code, true)
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sToolsGenTable) genModuleRouter(curDir, goModName, moduleName string) (err error) {
|
||||
path := strings.Join([]string{curDir, "/internal/router/" + moduleName + ".go"}, "")
|
||||
if gfile.IsFile(path) || moduleName == "system" {
|
||||
return
|
||||
}
|
||||
moduleNameUpper := gstr.CaseCamel(moduleName)
|
||||
code := fmt.Sprintf(`package router
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/net/ghttp"
|
||||
%sRouter "%s/internal/app/%s/router"
|
||||
)
|
||||
|
||||
func (router *Router) Bind%sModuleController(ctx context.Context, group *ghttp.RouterGroup) {
|
||||
%sRouter.R.BindController(ctx, group)
|
||||
}`, moduleName, goModName, moduleName, moduleNameUpper, moduleName)
|
||||
err = s.createFile(path, code, true)
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sToolsGenTable) genModuleBootLogic(curDir, moduleName string) (err error) {
|
||||
path := strings.Join([]string{curDir, "/internal/app/boot/" + moduleName + ".go"}, "")
|
||||
if gfile.IsFile(path) || moduleName == "system" {
|
||||
return
|
||||
}
|
||||
code := fmt.Sprintf(`package boot
|
||||
import (
|
||||
_ "github.com/tiger1103/gfast/v3/internal/app/%s/logic"
|
||||
)
|
||||
`, moduleName)
|
||||
err = s.createFile(path, code, true)
|
||||
return
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ func (router *Router) BindController(ctx context.Context, group *ghttp.RouterGro
|
||||
controller.UEditor, //编辑器
|
||||
)
|
||||
//自动绑定定义的控制器
|
||||
if err := libRouter.RouterAutoBind(router, ctx, group); err != nil {
|
||||
if err := libRouter.RouterAutoBind(ctx, router, group); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
})
|
||||
|
@ -13,6 +13,7 @@ import (
|
||||
commonRouter "github.com/tiger1103/gfast/v3/internal/app/common/router"
|
||||
commonService "github.com/tiger1103/gfast/v3/internal/app/common/service"
|
||||
systemRouter "github.com/tiger1103/gfast/v3/internal/app/system/router"
|
||||
"github.com/tiger1103/gfast/v3/library/libRouter"
|
||||
)
|
||||
|
||||
var R = new(Router)
|
||||
@ -28,5 +29,9 @@ func (router *Router) BindController(ctx context.Context, group *ghttp.RouterGro
|
||||
systemRouter.R.BindController(ctx, group)
|
||||
// 绑定公共路由
|
||||
commonRouter.R.BindController(ctx, group)
|
||||
//自动绑定定义的模块
|
||||
if err := libRouter.RouterAutoBind(ctx, router, group); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ import (
|
||||
|
||||
// RouterAutoBind 收集需要被绑定的控制器,自动绑定
|
||||
// 路由的方法命名规则必须为:BindXXXController
|
||||
func RouterAutoBind(R interface{}, ctx context.Context, group *ghttp.RouterGroup) (err error) {
|
||||
func RouterAutoBind(ctx context.Context, R interface{}, group *ghttp.RouterGroup) (err error) {
|
||||
//TypeOf会返回目标数据的类型,比如int/float/struct/指针等
|
||||
typ := reflect.TypeOf(R)
|
||||
//ValueOf返回目标数据的的值
|
||||
|
@ -31,7 +31,7 @@ func (router *Router) BindController(ctx context.Context, group *ghttp.RouterGro
|
||||
//后台操作日志记录
|
||||
group.Hook("/*", ghttp.HookAfterOutput, service.OperateLog().OperationLog)
|
||||
//自动绑定定义的控制器
|
||||
if err := libRouter.RouterAutoBind(router, ctx, group); err != nil {
|
||||
if err := libRouter.RouterAutoBind(ctx, router, group); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user