package config import ( "fmt" "github.com/xxjwxc/public/tools" ) // Config custom config struct type Config struct { CfgBase `yaml:"base"` DBInfo DBInfo `yaml:"db_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标记是否隐藏主键 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"` IsNullToPoint bool `yaml:"is_null_to_point"` // null to porint TablePrefix string `yaml:"table_prefix"` // 表前缀 } // DBInfo mysql database information. mysql 数据库信息 type DBInfo struct { Host string `validate:"required"` // Host. 地址 Port int // Port 端口号 Username string // Username 用户名 Password string // Password 密码 Database string // Database 数据库名 Type int // 数据库类型: 0:mysql , 1:sqlite , 2:mssql } // SetMysqlDbInfo Update MySQL configuration information func SetMysqlDbInfo(info *DBInfo) { _map.DBInfo = *info } // GetDbInfo Get configuration information .获取数据配置信息 func GetDbInfo() DBInfo { return _map.DBInfo } // GetMysqlConStr Get MySQL connection string.获取mysql 连接字符串 func GetMysqlConStr() string { return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local&interpolateParams=True", _map.DBInfo.Username, _map.DBInfo.Password, _map.DBInfo.Host, _map.DBInfo.Port, _map.DBInfo.Database, ) } // SetOutDir Setting Output Directory.设置输出目录 func SetOutDir(outDir string) { _map.OutDir = outDir } // GetOutDir Get Output Directory.获取输出目录 func GetOutDir() string { if len(_map.OutDir) == 0 { _map.OutDir = "./model" } return _map.OutDir } // // SetSingularTable Set Disabled Table Name Plurals.设置禁用表名复数 // func SetSingularTable(b bool) { // _map.SingularTable = b // } // // GetSingularTable Get Disabled Table Name Plurals.获取禁用表名复数 // func GetSingularTable() bool { // return _map.SingularTable // } // GetSimple simple output.简单输出 func GetSimple() bool { return _map.Simple } // SetSimple simple output.简单输出 func SetSimple(b bool) { _map.Simple = b } // GetIsWEBTag json tag.json标记 func GetIsWEBTag() bool { return _map.IsWEBTag } // SetIsWEBTag json tag.json标记 func SetIsWEBTag(b bool) { _map.IsWEBTag = b } // GetIsWebTagPkHidden web tag是否隐藏主键 func GetIsWebTagPkHidden() bool { return _map.IsWebTagPkHidden } // GetIsForeignKey if is foreign key func GetIsForeignKey() bool { return _map.IsForeignKey } // SetForeignKey Set if is foreign key.设置是否外键关联 func SetForeignKey(b bool) { _map.IsForeignKey = b } // SetIsOutSQL if is output sql . func SetIsOutSQL(b bool) { _map.IsOutSQL = b } // GetIsOutSQL if is output sql . func GetIsOutSQL() bool { return _map.IsOutSQL } // GetIsOutFunc if is output func . func GetIsOutFunc() bool { return _map.IsOutFunc } // SetIsOutFunc if is output func . func SetIsOutFunc(b bool) { _map.IsOutFunc = b } // GetIsGUI if is gui show . func GetIsGUI() bool { return _map.IsGUI } // SetIsGUI if is gui show . func SetIsGUI(b bool) { _map.IsGUI = b } // GetIsTableName if is table name . func GetIsTableName() bool { return _map.IsTableName } // SetIsTableName if is table name . func SetIsTableName(b bool) { _map.IsTableName = b } // GetURLTag get url tag. func GetURLTag() string { if _map.URLTag != "json" && _map.URLTag != "url" { _map.URLTag = "json" } return _map.URLTag } // SetURLTag set url tag. func SetURLTag(s string) { _map.URLTag = s } // GetLG get language tag. func GetLG() string { if _map.Language != "English" && _map.Language != "中 文" { if tools.GetLocalSystemLang(true) == "en" { _map.Language = "English" } else { _map.Language = "中 文" } } return _map.Language } // SetLG set url tag. func SetLG(s string) { _map.Language = s } // GetDBTag get database tag. func GetDBTag() string { if _map.DbTag != "gorm" && _map.DbTag != "db" { _map.DbTag = "gorm" } return _map.DbTag } // SetDBTag get database tag. func SetDBTag(s string) { _map.DbTag = s } // SetIsNullToPoint if with null to porint in struct func SetIsNullToPoint(b bool) { _map.IsNullToPoint = b } // GetIsNullToPoint get if with null to porint in sturct func GetIsNullToPoint() bool { return _map.IsNullToPoint } // SetTablePrefix set table prefix func SetTablePrefix(t string) { _map.TablePrefix = t } // GetTablePrefix get table prefix func GetTablePrefix() string { return _map.TablePrefix }