From 4ffb3e8ac3ce0ef29f720de6c4253361cc91e768 Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Thu, 5 Aug 2021 12:28:15 +0800 Subject: [PATCH 1/4] new --- data/view/genfunc/def.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/data/view/genfunc/def.go b/data/view/genfunc/def.go index 2affb19..982f2ab 100755 --- a/data/view/genfunc/def.go +++ b/data/view/genfunc/def.go @@ -204,6 +204,13 @@ func (obj *_{{$obj.StructName}}Mgr) Gets() (results []*{{$obj.StructName}}, err return } +////////////////////////////////// gorm replace ///////////////////////////////// +func (obj *_{{$obj.StructName}}Mgr) Count(count *int64) (tx *gorm.DB) { + return obj.DB.WithContext(obj.ctx).Model({{$obj.StructName}}{}).Count(count) +} + +////////////////////////////////////////////////////////////////////////////////// + //////////////////////////option case //////////////////////////////////////////// {{range $oem := $obj.Em}} // With{{$oem.ColStructName}} {{$oem.ColName}}获取 {{$oem.Notes}} From 896e1d498bb8000eccfa5f189d6549f3ba857b13 Mon Sep 17 00:00:00 2001 From: zsinx Date: Wed, 25 Aug 2021 12:55:30 +0800 Subject: [PATCH 2/4] add config with is_db_tag --- config.yml | 8 +++-- data/config/MyIni.go | 11 ++++++ data/dlg/cui.go | 2 ++ data/view/model/model.go | 77 ++++++++++++++++++++++++---------------- 4 files changed, 65 insertions(+), 33 deletions(-) diff --git a/config.yml b/config.yml index 4909fe9..cb36edf 100644 --- a/config.yml +++ b/config.yml @@ -3,15 +3,17 @@ base: out_dir : ./model # 输出目录 url_tag : json # web url tag(json,db(https://github.com/google/go-querystring)) language : # 语言(English,中 文) -db_tag : gorm # 数据库标签(gorm,db) -simple : false # 简单输出(默认gorm标签不输出) +db_tag : gorm # 数据库标签名(gorm,db) +simple : true # 简单输出(默认只输出gorm主键和字段标签) +is_db_tag : true # 是否输出 数据库标签(gorm,db) is_out_sql : false # 是否输出 sql 原信息 is_out_func : true # 是否输出 快捷函数 is_web_tag : true # 是否打web标记(json标记前提条件) is_web_tag_pk_hidden: true # web标记是否隐藏主键 is_foreign_key : true # 是否导出外键关联 is_gui : false # 是否ui模式显示 -is_table_name : true # 是否直接生成表名,列名 +is_table_name : true # 是否直接生成表名 +is_column_name : true # 是否直接生成列名 is_null_to_point : false # 数据库默认 'DEFAULT NULL' 时设置结构为指针类型 table_prefix : "" # 表前缀, 如果有则使用, 没有留空 table_names: "" # 指定表生成,多个表用,隔开 diff --git a/data/config/MyIni.go b/data/config/MyIni.go index 1add680..260486c 100644 --- a/data/config/MyIni.go +++ b/data/config/MyIni.go @@ -16,6 +16,7 @@ type Config struct { Language string `yaml:"language"` // language DbTag string `yaml:"db_tag"` // 数据库标签(gormt,db) Simple bool `yaml:"simple"` + IsDbTag bool `yaml:"is_db_tag"` // 是否输出 数据库标签 IsWEBTag bool `yaml:"is_web_tag"` IsWebTagPkHidden bool `yaml:"is_web_tag_pk_hidden"` // web标记是否隐藏主键 IsForeignKey bool `yaml:"is_foreign_key"` @@ -98,6 +99,16 @@ func SetSimple(b bool) { _map.Simple = b } +// GetIsDbTag is_db_tag +func GetIsDbTag() bool { + return _map.IsDbTag +} + +// SetIsDbTag is_db_tag +func SetIsDbTag(b bool) { + _map.IsDbTag = b +} + // GetIsWEBTag json tag.json标记 func GetIsWEBTag() bool { return _map.IsWEBTag diff --git a/data/dlg/cui.go b/data/dlg/cui.go index df9d814..97cabfe 100644 --- a/data/dlg/cui.go +++ b/data/dlg/cui.go @@ -292,11 +292,13 @@ func buttonSave(g *gocui.Gui, v *gocui.View) error { config.SetIsDev(getBool(mp["is_dev"])) config.SetSimple(getBool(mp["is_simple"])) + config.SetIsDbTag(getBool(mp["is_db_tag"])) config.SetIsOutSQL(getBool(mp["is_out_sql"])) config.SetIsOutFunc(getBool(mp["is_out_func"])) config.SetForeignKey(getBool(mp["is_foreign_key"])) config.SetIsGUI(getBool(mp["is_gui"])) config.SetIsTableName(getBool(mp["is_table_name"])) + config.SetIsColumnName(getBool(mp["is_column_name"])) config.SetURLTag(mp["url_tag"]) config.SetDBTag(mp["db_tag"]) config.SetLG(mp["language"]) diff --git a/data/view/model/model.go b/data/view/model/model.go index 860364e..47d6ac4 100755 --- a/data/view/model/model.go +++ b/data/view/model/model.go @@ -123,44 +123,61 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) tmp.SetName(getCamelName(v.Name)) tmp.SetNotes(v.Notes) tmp.SetType(getTypeName(v.Type, v.IsNull)) - // not simple output. 默认不输出gorm标签 - if !config.GetSimple() { - for _, v1 := range v.Index { - switch v1.Key { - // case ColumnsKeyDefault: - case ColumnsKeyPrimary: // primary key.主键 - tmp.AddTag(_tagGorm, "primaryKey") - isPK = true - case ColumnsKeyUnique: // unique key.唯一索引 - tmp.AddTag(_tagGorm, "unique") - case ColumnsKeyIndex: // index key.复合索引 - uninStr := getUninStr("index", ":", v1.KeyName) - // 兼容 gorm 本身 sort 标签 - if v1.KeyName == "sort" { - uninStr = "index" + // is_db_tag. 是否输出gorm标签 + if config.GetIsDbTag() { + // not simple output. 默认只输出gorm主键和字段标签 + if !config.GetSimple() { + for _, v1 := range v.Index { + switch v1.Key { + // case ColumnsKeyDefault: + case ColumnsKeyPrimary: // primary key.主键 + tmp.AddTag(_tagGorm, "primaryKey") + isPK = true + case ColumnsKeyUnique: // unique key.唯一索引 + tmp.AddTag(_tagGorm, "unique") + case ColumnsKeyIndex: // index key.复合索引 + uninStr := getUninStr("index", ":", v1.KeyName) + // 兼容 gorm 本身 sort 标签 + if v1.KeyName == "sort" { + uninStr = "index" + } + if v1.KeyType == "FULLTEXT" { + uninStr += ",class:FULLTEXT" + } + tmp.AddTag(_tagGorm, uninStr) + case ColumnsKeyUniqueIndex: // unique index key.唯一复合索引 + tmp.AddTag(_tagGorm, getUninStr("uniqueIndex", ":", v1.KeyName)) } - if v1.KeyType == "FULLTEXT" { - uninStr += ",class:FULLTEXT" + } + } else { + for _, v1 := range v.Index { + switch v1.Key { + // case ColumnsKeyDefault: + case ColumnsKeyPrimary: // primary key.主键 + tmp.AddTag(_tagGorm, "primaryKey") + isPK = true } - tmp.AddTag(_tagGorm, uninStr) - case ColumnsKeyUniqueIndex: // unique index key.唯一复合索引 - tmp.AddTag(_tagGorm, getUninStr("uniqueIndex", ":", v1.KeyName)) } } } } if len(v.Name) > 0 { - // not simple output - if !config.GetSimple() { - tmp.AddTag(_tagGorm, "column:"+v.Name) - tmp.AddTag(_tagGorm, "type:"+v.Type) - if !v.IsNull { - tmp.AddTag(_tagGorm, "not null") - } - // default tag - if len(v.Gormt) > 0 { - tmp.AddTag(_tagGorm, v.Gormt) + // is_db_tag. 是否输出gorm标签 + if config.GetIsDbTag() { + // not simple output + if !config.GetSimple() { + tmp.AddTag(_tagGorm, "column:"+v.Name) + tmp.AddTag(_tagGorm, "type:"+v.Type) + if !v.IsNull { + tmp.AddTag(_tagGorm, "not null") + } + // default tag + if len(v.Gormt) > 0 { + tmp.AddTag(_tagGorm, v.Gormt) + } + } else { + tmp.AddTag(_tagGorm, "column:"+v.Name) } } From 575a04527589a3961722b251dae0870509c3b5fc Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Thu, 26 Aug 2021 20:51:02 +0800 Subject: [PATCH 3/4] Update def.go --- data/view/genfunc/def.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/view/genfunc/def.go b/data/view/genfunc/def.go index 982f2ab..8bc7d41 100755 --- a/data/view/genfunc/def.go +++ b/data/view/genfunc/def.go @@ -36,7 +36,7 @@ type _BaseMgr struct { isRelated bool } -// SetCtx set context +// SetTimeOut set timeout func (obj *_BaseMgr) SetTimeOut(timeout time.Duration) { obj.ctx, obj.cancel = context.WithTimeout(context.Background(), timeout) obj.timeout = timeout @@ -49,7 +49,7 @@ func (obj *_BaseMgr) SetCtx(c context.Context) { } } -// Ctx get context +// GetCtx get context func (obj *_BaseMgr) GetCtx() context.Context { return obj.ctx } From f2cf2eac9c6621fbc1e92ca7d25b5d5c20751c3f Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Thu, 26 Aug 2021 21:06:49 +0800 Subject: [PATCH 4/4] fix db_tag --- data/config/MyIni.go | 16 ---------------- data/dlg/cui.go | 1 - data/view/model/model.go | 8 ++++---- 3 files changed, 4 insertions(+), 21 deletions(-) diff --git a/data/config/MyIni.go b/data/config/MyIni.go index 260486c..280fdf9 100644 --- a/data/config/MyIni.go +++ b/data/config/MyIni.go @@ -16,7 +16,6 @@ type Config struct { Language string `yaml:"language"` // language DbTag string `yaml:"db_tag"` // 数据库标签(gormt,db) Simple bool `yaml:"simple"` - IsDbTag bool `yaml:"is_db_tag"` // 是否输出 数据库标签 IsWEBTag bool `yaml:"is_web_tag"` IsWebTagPkHidden bool `yaml:"is_web_tag_pk_hidden"` // web标记是否隐藏主键 IsForeignKey bool `yaml:"is_foreign_key"` @@ -99,16 +98,6 @@ func SetSimple(b bool) { _map.Simple = b } -// GetIsDbTag is_db_tag -func GetIsDbTag() bool { - return _map.IsDbTag -} - -// SetIsDbTag is_db_tag -func SetIsDbTag(b bool) { - _map.IsDbTag = b -} - // GetIsWEBTag json tag.json标记 func GetIsWEBTag() bool { return _map.IsWEBTag @@ -321,8 +310,3 @@ func SetIsColumnName(isColumnName bool) { func GetIsOutFileByTableName() bool { return _map.IsOutFileByTableName } - -//SetIsOutFileByTableName set gen ColumnName config. 设置是否根据表名生成文件 -func SetIsOutFileByTableName(isOutFileByTableName bool) { - _map.IsColumnName = isOutFileByTableName -} diff --git a/data/dlg/cui.go b/data/dlg/cui.go index 97cabfe..0d64271 100644 --- a/data/dlg/cui.go +++ b/data/dlg/cui.go @@ -292,7 +292,6 @@ func buttonSave(g *gocui.Gui, v *gocui.View) error { config.SetIsDev(getBool(mp["is_dev"])) config.SetSimple(getBool(mp["is_simple"])) - config.SetIsDbTag(getBool(mp["is_db_tag"])) config.SetIsOutSQL(getBool(mp["is_out_sql"])) config.SetIsOutFunc(getBool(mp["is_out_func"])) config.SetForeignKey(getBool(mp["is_foreign_key"])) diff --git a/data/view/model/model.go b/data/view/model/model.go index 47d6ac4..7212b9f 100755 --- a/data/view/model/model.go +++ b/data/view/model/model.go @@ -123,8 +123,8 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) tmp.SetName(getCamelName(v.Name)) tmp.SetNotes(v.Notes) tmp.SetType(getTypeName(v.Type, v.IsNull)) - // is_db_tag. 是否输出gorm标签 - if config.GetIsDbTag() { + // 是否输出gorm标签 + if len(_tagGorm) > 0 { // not simple output. 默认只输出gorm主键和字段标签 if !config.GetSimple() { for _, v1 := range v.Index { @@ -163,8 +163,8 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) } if len(v.Name) > 0 { - // is_db_tag. 是否输出gorm标签 - if config.GetIsDbTag() { + // 是否输出gorm标签 + if len(_tagGorm) > 0 { // not simple output if !config.GetSimple() { tmp.AddTag(_tagGorm, "column:"+v.Name)