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/go-sql-driver/mysql v1.7.0 // indirect
|
||||||
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.5
|
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/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-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-runewidth v0.0.14 // indirect
|
github.com/mattn/go-runewidth v0.0.14 // indirect
|
||||||
github.com/mojocn/base64Captcha v1.3.5
|
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/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.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.0/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||||
github.com/gogf/gf/v2 v2.3.1 h1:uptCJK47N6KSRwTBnFAqBWYnYa/OXBkZ0OlhO9CK7bQ=
|
github.com/gogf/gf/v2 v2.3.2 h1:nlJ0zuDWqFb93/faZmr7V+GADx/lzz5Unz/9x6OJ2u8=
|
||||||
github.com/gogf/gf/v2 v2.3.1/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
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 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs=
|
||||||
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
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=
|
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)
|
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)
|
err = s.genModuleLogic(curDir, goModName, extendData.PackageName)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
}
|
}
|
||||||
@ -1169,7 +1175,7 @@ func (s *sToolsGenTable) trimBreak(str string) (rStr string, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// GenModuleRouter 生成模块路由
|
// GenModuleRouter 生成模块logic
|
||||||
func (s *sToolsGenTable) genModuleLogic(curDir, goModName, packageName string) (err error) {
|
func (s *sToolsGenTable) genModuleLogic(curDir, goModName, packageName string) (err error) {
|
||||||
var (
|
var (
|
||||||
packages []string
|
packages []string
|
||||||
@ -1196,3 +1202,37 @@ func (s *sToolsGenTable) genModuleLogic(curDir, goModName, packageName string) (
|
|||||||
err = s.createFile(path+"/logic.go", code, true)
|
err = s.createFile(path+"/logic.go", code, true)
|
||||||
return
|
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, //编辑器
|
controller.UEditor, //编辑器
|
||||||
)
|
)
|
||||||
//自动绑定定义的控制器
|
//自动绑定定义的控制器
|
||||||
if err := libRouter.RouterAutoBind(router, ctx, group); err != nil {
|
if err := libRouter.RouterAutoBind(ctx, router, group); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
commonRouter "github.com/tiger1103/gfast/v3/internal/app/common/router"
|
commonRouter "github.com/tiger1103/gfast/v3/internal/app/common/router"
|
||||||
commonService "github.com/tiger1103/gfast/v3/internal/app/common/service"
|
commonService "github.com/tiger1103/gfast/v3/internal/app/common/service"
|
||||||
systemRouter "github.com/tiger1103/gfast/v3/internal/app/system/router"
|
systemRouter "github.com/tiger1103/gfast/v3/internal/app/system/router"
|
||||||
|
"github.com/tiger1103/gfast/v3/library/libRouter"
|
||||||
)
|
)
|
||||||
|
|
||||||
var R = new(Router)
|
var R = new(Router)
|
||||||
@ -28,5 +29,9 @@ func (router *Router) BindController(ctx context.Context, group *ghttp.RouterGro
|
|||||||
systemRouter.R.BindController(ctx, group)
|
systemRouter.R.BindController(ctx, group)
|
||||||
// 绑定公共路由
|
// 绑定公共路由
|
||||||
commonRouter.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 收集需要被绑定的控制器,自动绑定
|
// RouterAutoBind 收集需要被绑定的控制器,自动绑定
|
||||||
// 路由的方法命名规则必须为:BindXXXController
|
// 路由的方法命名规则必须为: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/指针等
|
//TypeOf会返回目标数据的类型,比如int/float/struct/指针等
|
||||||
typ := reflect.TypeOf(R)
|
typ := reflect.TypeOf(R)
|
||||||
//ValueOf返回目标数据的的值
|
//ValueOf返回目标数据的的值
|
||||||
|
@ -31,7 +31,7 @@ func (router *Router) BindController(ctx context.Context, group *ghttp.RouterGro
|
|||||||
//后台操作日志记录
|
//后台操作日志记录
|
||||||
group.Hook("/*", ghttp.HookAfterOutput, service.OperateLog().OperationLog)
|
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)
|
panic(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user