1 Star 0 Fork 0

iotas/toolkit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
tpl.go 8.29 KB
一键复制 编辑 原始数据 按行查看 历史
xuthus 提交于 4年前 . fix
package proto_parser
const ModelFieldTpl = `// Code generated by proto_parser. DO NOT EDIT.
// source: {{.FileName}}
package {{.PackageName}}
{{range $modelName, $fields := .FieldStruct }}{{range $fieldName, $structs := $fields}}
func (m *{{$modelName}}) Get{{$fieldName}}Field() string {
return "{{$structs.DbFieldName}}"
}
{{end}}{{end}}
{{range $modelName, $fields := .FieldStruct }}{{range $fieldName, $structs := $fields}}
func (m *{{$modelName}}) Get{{$fieldName}}FieldComment() string {
return "{{$structs.Comment}}"
}
{{end}}{{end}}
{{range $modelName, $fields := .FieldStruct }}
type get{{$modelName}}Field struct {}
var {{$modelName}}Field get{{$modelName}}Field
{{range $fieldName, $structs := $fields}}
func (m *get{{$modelName}}Field) Get{{$fieldName}}Field() string {
return "{{$structs.DbFieldName}}"
}
{{end}}{{end}}
`
const ModelTpl = `// Code generated by proto_parser. DO NOT EDIT.
// source: {{.FileName}}
package {{.PackageName}}
import ({{if not $.NoScope}}{{if eq $.DbType "gdbc"}}
"gitlab.heywoods.cn/go-sdk/gdbc"{{else}}"gitee.com/iotas/mdbc"{{end}}{{end}}
"gitee.com/iotas/iota/core"
)
{{range $modelName, $tableName := .TableName }}
// Auto Generated {{$modelName}} Table Name. DO NOT EDIT.
const TableName{{$modelName}} = "{{$tableName}}"
func (t *{{$modelName}}) TableName() string {
return "{{$tableName}}"
}
{{if not $.NoScope}}
func (t *{{$modelName}}) GetScope() *{{if eq $.DbType "gdbc"}}gdbc{{else}}mdbc{{end}}.Scope {
return {{if eq $.DbType "gdbc"}}gdbc{{else}}mdbc{{end}}.NewModel(&{{$modelName}}{})
}
{{end}}{{end}}
{{range $modelName, $fields := .FieldStruct }}{{range $fieldName, $structs := $fields}}
func (m *{{$modelName}}) Get{{$structs.StructFieldName}}Core() *core.StructField {
return &core.StructField{
StructFieldName: "{{$structs.StructFieldName}}",
DbFieldName: "{{$structs.DbFieldName}}",
Comment: "{{$structs.Comment}}",
}
}
{{end}}{{end}}
{{range $modelName, $fields := .FieldStruct }}{{range $fieldName, $structs := $fields}}
var {{$modelName}}Field_{{$fieldName}} = core.StructField{
StructFieldName: "{{$structs.StructFieldName}}",
DbFieldName: "{{$structs.DbFieldName}}",
Comment: "{{$structs.Comment}}",
}
{{end}}{{end}}`
const ErrCodeTpl = `// Code generated by proto_parser. DO NOT EDIT.
package {{.PackageName}}
import "gitee.com/iotas/iota/core"
const ({{range $index, $info := .ErrCodeList }}
// {{$info.ErrName}} {{$info.ErrMsg}}
{{$info.ErrName}} = {{$info.ErrCode}}{{end}}
)
var (
errCodeMap = map[int32]string{ {{range $index, $info := .ErrCodeList }}
{{$info.ErrName}}: "{{$info.ErrMsg}}",{{end}}
}
)
// auto register errcode
func RegisterError() {
core.RegisterError(errCodeMap)
}`
const GroupRouterTpl = `// Code generated by proto_parser. DO NOT EDIT.
package {{.PackageName}}
import ({{range $pkg := .GroupRouterImportPkg}}
"{{$pkg}}"{{end}}
"gitee.com/iotas/iota/core"
)
{{range $srvName, $srvRPC := .GroupRouterMap}}
type {{$srvName}}Impl interface { ` + `{{range $apiIndex, $api := $srvRPC.Apis}}
{{$api.FuncName}}(ctx *core.Context, req *{{$api.ReqName}}) (resp *{{$api.RespName}}, err error){{end}}
}
{{end}}
var (
{{range $srvName, $srvRPC := .GroupRouterMap}}{{$srvName}}GroupRouterMap = map[string]*core.GroupRouter{
"{{$srvName}}": &core.GroupRouter{
RouterPrefix: "{{$srvRPC.RouterPrefix}}",
Apis: map[string]*core.GroupRouterNode{ {{range $apiName, $api := $srvRPC.Apis}}
"{{$api.FuncName}}": {
API: "{{$api.RouterPath}}",
Method: "{{$api.Method}}",
Author: "{{$api.Author}}",
Describe: "{{$api.Describe}}",{{$mwl := len $api.Mws}}{{if ne $mwl 0}}
Middlewares: []gin.HandlerFunc{ {{range $mwName := $api.Mws}}
{{$mwName}},{{end}}
},{{end}}
},{{end}}
},{{$mwl := len $srvRPC.Mws}}{{if ne $mwl 0}}
Middlewares: []gin.HandlerFunc{ {{range $mwName := $srvRPC.Mws}}
{{$mwName}},{{end}}
},{{end}}
},
}
{{end}}
)
`
const OutputMDTpl = `
**简要描述:**
- {{.Node.Describe}}
**请求URL:**
- ` + "`" + `{{.Node.RouterPath}}` + "`" + `
**请求方式:**
- {{.Node.Method}}
**对接人:**
- {{.Node.Author}}
**参数:**
{{if not_body_empty .ReqBody}}
|参数名|必选|类型|说明|
| :---- | :--- | :----- | ----- |{{range $field := .ReqFields}}
| {{$field.FieldName}} | {{if $field.IsRequire}}是{{else}}否{{end}} | {{$field.FieldType}} | {{$field.FieldDesc}} |{{end}}
{{else}}> 该接口没有请求参数{{end}}
**请求示例**
` + "```json" + `
{{.ReqBody}}
` + "```" + `
**返回示例**
` + "```json" + `
{{.RespBody}}
` + "```" + `
**返回参数说明**
{{if not_body_empty .RespBody}}
|参数名|类型|说明|
| :---- | :---- | ----- |{{range $field := .RespFields}}
| {{$field.FieldName}} | {{$field.FieldType}} | {{$field.FieldDesc}} |{{end}}
{{$enums := len .EnumFields}}
{{if ne $enums 0}}**枚举说明**
{{range $enumType, $enumFields := .EnumFields}}
|枚举类型|枚举参数|枚举数值|枚举说明|
| :---- | :--- | :----- | ----- |{{range $fieldInfo := $enumFields}}
| {{$enumType}} | {{$fieldInfo.FieldName}} | {{$fieldInfo.FieldValue}} | {{$fieldInfo.FieldDesc}} |{{end}}
{{end}}
{{end}}{{else}}> 该接口不需要关注输出而应该关注错误码{{end}}
{{$errcs := len .ErrCodeList}}{{if ne $errcs 0}}**接口返回错误码**
|错误标注|错误码|说明|
| :---- | :---- | ---- |{{range $e := .ErrCodeList}}{{$defCode := eq $e.Code 0}}{{$defDesc := eq $e.Desc ""}}
| {{$e.Name}} | {{if and $defCode $defDesc}}-{{else}}{{$e.Code}}{{end}} | {{if and $defCode $defDesc}}其他项目中的错误码{{else}}{{$e.Desc}}{{end}} |{{end}}
{{end}}`
const CompleteRouteGenerateAndPackageTpl = `package {{$.pkgName}}
import "gitee.com/iotas/iota/core"
type {{$.srvName}} struct {}
// IDE: {{$.srvName}} implemented {{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$.srvName}}Impl interface
var _ {{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$.srvName}}Impl = (*{{$.srvName}})(nil)
// Bind 绑定路由组名称 默认service名称 请不要擅自修改
func (receiver *{{$.srvName}}) Bind() string {
return "{{$.srvName}}"
}
{{range $route := $.routerNode}}
// {{$route.FuncName}} {{$route.Describe}}
func (receiver *{{$.srvName}}) {{$route.FuncName}}(ctx *core.Context, req *{{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.ReqName}}) (resp *{{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.RespName}}, err error) {
resp = new({{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.RespName}})
// TODO impl...
return resp, nil
}
{{end}}
`
const CompleteRouteGenerateTpl = `
type {{$.srvName}} struct {}
// IDE: {{$.srvName}} implemented {{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$.srvName}}Impl interface
var _ {{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$.srvName}}Impl = (*{{$.srvName}})(nil)
// Bind 绑定路由组名称 默认service名称 请不要擅自修改
func (receiver *{{$.srvName}}) Bind() string {
return "{{$.srvName}}"
}
{{range $route := $.routerNode}}
// {{$route.FuncName}} {{$route.Describe}}
func (receiver *{{$.srvName}}) {{$route.FuncName}}(ctx *core.Context, req *{{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.ReqName}}) (resp *{{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.RespName}}, err error) {
resp = new({{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.RespName}})
// TODO impl...
return resp, nil
}
{{end}}
`
const FuncRouteGenerateTpl = `{{range $route := $.routerNode}}
// {{$route.FuncName}} {{$route.Describe}}
func (receiver *{{$.srvName}}) {{$route.FuncName}}(ctx *core.Context, req *{{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.ReqName}}) (resp *{{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.RespName}}, err error) {
resp = new({{if ne $.implPkgName $.pkgName}}{{$.implPkgName}}.{{end}}{{$route.RespName}})
// TODO impl...
return resp, nil
}
{{end}}
`
const FuncRouteGenerateBindFuncTpl = `// Bind 绑定路由组名称 默认service名称 请不要擅自修改 否则将导致路由注册失败而无法感知
func (receiver *{{$.srvName}}) Bind() string {
return "{{$.srvName}}"
}
`
const FreqTpl = `package {{.PackageName}}
import "gitee.com/iotas/iota/core"
var FreqRuleMap = core.FreqMap{ {{range $key, $value := .FreqMap }}
"{{$key}}": core.FreqConfig{
Minute: {{$value.Minute}},
Hour: {{$value.Hour}},
Day: {{$value.Day}},
},{{end}}
}
`
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/iotas/toolkit.git
git@gitee.com:iotas/toolkit.git
iotas
toolkit
toolkit
6a2c4ec13c63

搜索帮助