From bceb63b951b8d76c57990e876ad77a4225cb985f Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Wed, 9 Dec 2020 12:53:59 +0800 Subject: [PATCH] add column support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持列名导出 --- config.yml | 2 +- data/view/genfunc/def.go | 8 ++++++++ data/view/genfunc/genfunc.go | 7 ++++++- data/view/genstruct/common.go | 33 +++++++++++++++++++++++++++++++++ data/view/genstruct/def.go | 9 +++++---- data/view/model/model.go | 1 + 6 files changed, 54 insertions(+), 6 deletions(-) diff --git a/config.yml b/config.yml index a4a7d7f..171b817 100644 --- a/config.yml +++ b/config.yml @@ -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文件全路径 diff --git a/data/view/genfunc/def.go b/data/view/genfunc/def.go index d4a8132..5c5d089 100644 --- a/data/view/genfunc/def.go +++ b/data/view/genfunc/def.go @@ -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}} diff --git a/data/view/genfunc/genfunc.go b/data/view/genfunc/genfunc.go index 7e201dc..bcc253b 100644 --- a/data/view/genfunc/genfunc.go +++ b/data/view/genfunc/genfunc.go @@ -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 diff --git a/data/view/genstruct/common.go b/data/view/genstruct/common.go index 83dd6c1..a6986cd 100644 --- a/data/view/genstruct/common.go +++ b/data/view/genstruct/common.go @@ -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 diff --git a/data/view/genstruct/def.go b/data/view/genstruct/def.go index 4845d55..b505fd7 100644 --- a/data/view/genstruct/def.go +++ b/data/view/genstruct/def.go @@ -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 .结构体 diff --git a/data/view/model/model.go b/data/view/model/model.go index 24a9481..2d6b327 100644 --- a/data/view/model/model.go +++ b/data/view/model/model.go @@ -123,6 +123,7 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) } + tmp.ColumnName = v.Name // 列名 el = append(el, tmp) // ForeignKey