add column support

支持列名导出
This commit is contained in:
xxj
2020-12-09 12:53:59 +08:00
parent 3516c2b4a5
commit bceb63b951
6 changed files with 54 additions and 6 deletions

View File

@@ -11,7 +11,7 @@ is_web_tag : true # 是否打web标记(json标记前提条件)
is_web_tag_pk_hidden: true # web标记是否隐藏主键
is_foreign_key : true # 是否导出外键关联
is_gui : false # 是否ui模式显示
is_table_name : false # 是否直接生成表名函数
is_table_name : true # 是否直接生成表名,列名
is_null_to_point : false # 数据库默认 'DEFAULT NULL' 时设置结构为指针类型
db_info:
host : 127.0.0.1 # type=1的时候host为yml文件全路径

View File

@@ -6,6 +6,14 @@ const (
func (m *{{.StructName}}) TableName() string {
return "{{.TableName}}"
}
`
genColumn = `
// {{.StructName}}Columns get sql column name.获取数据库列名
var {{.StructName}}Columns = struct { {{range $em := .Em}}
{{$em.StructName}} string{{end}}
}{ {{range $em := .Em}}
{{$em.StructName}}:"{{$em.ColumnName}}", {{end}}
}
`
genBase = `
package {{.PackageName}}

View File

@@ -1,10 +1,15 @@
package genfunc
// GetGenTableNameTemp get gen base template str
// GetGenTableNameTemp get gen table template str
func GetGenTableNameTemp() string {
return genTnf
}
// GetGenColumnNameTemp get gen column template str
func GetGenColumnNameTemp() string {
return genColumn
}
// GetGenBaseTemp get gen base template str
func GetGenBaseTemp() string {
return genBase

View File

@@ -133,6 +133,7 @@ func (s *GenStruct) AddElement(e ...GenElement) {
s.Em = append(s.Em, e...)
}
// GenerateTableName generate table name .生成表名
func (s *GenStruct) GenerateTableName() []string {
tmpl, err := template.New("gen_tnf").Parse(genfunc.GetGenTableNameTemp())
if err != nil {
@@ -148,6 +149,34 @@ func (s *GenStruct) GenerateTableName() []string {
return []string{buf.String()}
}
// GenerateColumnName generate column name . 生成列名
func (s *GenStruct) GenerateColumnName() []string {
tmpl, err := template.New("gen_tnc").Parse(genfunc.GetGenColumnNameTemp())
if err != nil {
panic(err)
}
var data struct {
StructName string
Em []struct {
ColumnName string
StructName string
}
}
data.StructName = s.Name
for _, v := range s.Em {
data.Em = append(data.Em, struct {
ColumnName string
StructName string
}{ColumnName: v.ColumnName,
StructName: v.Name,
})
}
var buf bytes.Buffer
tmpl.Execute(&buf, data)
return []string{buf.String()}
}
// Generates Get the result data.获取结果数据
func (s *GenStruct) Generates() []string {
var p generate.PrintAtom
@@ -240,6 +269,10 @@ func (p *GenPackage) Generate() string {
for _, v1 := range v.GenerateTableName() {
pa.Add(v1)
}
for _, v2 := range v.GenerateColumnName() { // add column list
pa.Add(v2)
}
}
}
// -----------end

View File

@@ -2,10 +2,11 @@ package genstruct
// GenElement element of sturct.元素类
type GenElement struct {
Name string // Name.元素名
Type string // Type.类型标记
Notes string // Notes.注释
Tags map[string][]string // tages.标记
Name string // Name.元素名
ColumnName string // table name.表名
Type string // Type.类型标记
Notes string // Notes.注释
Tags map[string][]string // tages.标记
}
// GenStruct struct of IStruct .结构体

View File

@@ -123,6 +123,7 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement)
}
tmp.ColumnName = v.Name // 列名
el = append(el, tmp)
// ForeignKey