package config import ( "fmt" "github.com/xxjwxc/public/tools" ) // 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"` TableList map[string]struct{} `yaml:"-"` OutFileName string `yaml:"-"` } // MysqlDbInfo mysql database information. mysql 数据库信息 type MysqlDbInfo struct { Host string `validate:"required"` // Host. 地址 Port int `validate:"required"` // Port 端口号 Username string `validate:"required"` // Username 用户名 Password string // Password 密码 Database string `validate:"required"` // Database 数据库名 } // SetMysqlDbInfo Update MySQL configuration information func SetMysqlDbInfo(info *MysqlDbInfo) { _map.MySQLInfo = *info } // GetMysqlDbInfo Get MySQL configuration information .获取mysql配置信息 func GetMysqlDbInfo() MysqlDbInfo { return _map.MySQLInfo } // 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.MySQLInfo.Username, _map.MySQLInfo.Password, _map.MySQLInfo.Host, _map.MySQLInfo.Port, _map.MySQLInfo.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 } // 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 } func SetTableList(m map[string]struct{}) { _map.TableList = m } func GetTableList() map[string]struct{} { return _map.TableList } func SetOutFileName(f string) { _map.OutFileName = f } func GetOutFileName() string { return _map.OutFileName } // 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 }