From 447ad781e418f11198f3b6fc1159f10097cfc302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=80=92=E9=9C=89=E7=8B=90=E7=8B=B8=28=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E7=94=B5=E8=84=91-02=29?= Date: Sun, 17 May 2020 02:10:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0webtag=E4=B8=BB?= =?UTF-8?q?=E9=94=AE=E9=9A=90=E8=97=8F=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yml | 1 + data/config/MyIni.go | 36 +++++++++++++++++++++--------------- data/view/model/model.go | 4 +++- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/config.yml b/config.yml index 1fa6670..9d3bd0c 100644 --- a/config.yml +++ b/config.yml @@ -9,6 +9,7 @@ simple : false # 简单输出(默认gorm标签不输出) 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 : false # 是否直接生成表名函数 diff --git a/data/config/MyIni.go b/data/config/MyIni.go index 5b7225e..9f87e09 100644 --- a/data/config/MyIni.go +++ b/data/config/MyIni.go @@ -8,21 +8,22 @@ import ( // Config custom config struct type Config struct { - CfgBase `yaml:"base"` - MySQLInfo MysqlDbInfo `yaml:"mysql_info"` - OutDir string `yaml:"out_dir"` - URLTag string `yaml:"url_tag"` // url tag - Language string `yaml:"language"` // language - DbTag string `yaml:"db_tag"` // 数据库标签(gormt,db) - Simple bool `yaml:"simple"` - IsWEBTag bool `yaml:"is_web_tag"` - SingularTable bool `yaml:"singular_table"` - IsForeignKey bool `yaml:"is_foreign_key"` - IsOutSQL bool `yaml:"is_out_sql"` - IsOutFunc bool `yaml:"is_out_func"` - IsGUI bool `yaml:"is_gui"` // - IsTableName bool `yaml:"is_table_name"` - OutFileName string `yaml:"-"` + CfgBase `yaml:"base"` + MySQLInfo MysqlDbInfo `yaml:"mysql_info"` + OutDir string `yaml:"out_dir"` + URLTag string `yaml:"url_tag"` // url tag + Language string `yaml:"language"` // language + DbTag string `yaml:"db_tag"` // 数据库标签(gormt,db) + Simple bool `yaml:"simple"` + IsWEBTag bool `yaml:"is_web_tag"` + IsWebTagPkHidden bool `yaml:"is_web_tag_pk_hidden"` // web标记是否隐藏主键 + SingularTable bool `yaml:"singular_table"` + IsForeignKey bool `yaml:"is_foreign_key"` + IsOutSQL bool `yaml:"is_out_sql"` + IsOutFunc bool `yaml:"is_out_func"` + IsGUI bool `yaml:"is_gui"` // + IsTableName bool `yaml:"is_table_name"` + OutFileName string `yaml:"-"` } // MysqlDbInfo mysql database information. mysql 数据库信息 @@ -94,6 +95,11 @@ func GetIsWEBTag() bool { return _map.IsWEBTag } +// GetIsWebTagPkHidden web tag是否隐藏主键 +func GetIsWebTagPkHidden() bool { + return _map.IsWebTagPkHidden +} + // GetIsForeignKey if is foreign key func GetIsForeignKey() bool { return _map.IsForeignKey diff --git a/data/view/model/model.go b/data/view/model/model.go index 0b6623d..7c02705 100644 --- a/data/view/model/model.go +++ b/data/view/model/model.go @@ -75,6 +75,7 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) for _, v := range cols { var tmp genstruct.GenElement + var isPK bool if strings.EqualFold(v.Type, "gorm.Model") { // gorm model tmp.SetType(v.Type) // } else { @@ -86,6 +87,7 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) // case ColumnsKeyDefault: case ColumnsKeyPrimary: // primary key.主键 tmp.AddTag(_tagGorm, "primary_key") + isPK = true case ColumnsKeyUnique: // unique key.唯一索引 tmp.AddTag(_tagGorm, "unique") case ColumnsKeyIndex: // index key.复合索引 @@ -108,7 +110,7 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement) // json tag if config.GetIsWEBTag() { - if strings.EqualFold(v.Name, "id") { + if isPK && config.GetIsWebTagPkHidden() { tmp.AddTag(_tagJSON, "-") } else { tmp.AddTag(_tagJSON, mybigcamel.UnMarshal(v.Name))