package config import ( "app.yhyue.com/moapp/jybase/mysql" "app.yhyue.com/moapp/jybase/redis" "database/sql" "fmt" "gopkg.in/yaml.v3" "io/ioutil" "log" ) var SysConfig Config var Db *sql.DB var KbDb *mysql.Mysql var GfastDb *mysql.Mysql var QywxUserIdMap map[string]string type Config struct { Port string `yaml:"port"` Database DatabaseConfig `yaml:"database"` FilePath string `yaml:"filePath"` WechatWorkUrl string `yaml:"wechatWorkUrl"` KbMySql DatabaseConfig `yaml:"kbMySql"` WechatWorkKey string `yaml:"wechatWorkKey"` WechatRemind []string `yaml:"wechatRemind"` WorkflowsUrl string `yaml:"workflowsUrl"` WorkflowsUser string `yaml:"workflowsUser"` WorkPrivateMsg WorkPrivateMsg `yaml:"workPrivateMsg"` RedisServer string `yaml:"redisServer"` Project Project `yaml:"project"` TimeTaskCron string `yaml:"timeTaskCron"` Gfastv2 DatabaseConfig `yaml:"gfastv2"` } type DatabaseConfig struct { Host string `yaml:"host"` Port int `yaml:"port"` User string `yaml:"user"` Password string `yaml:"password"` DBName string `yaml:"dbname"` } type WorkPrivateMsg struct { AgentID int `yaml:"agentid"` // 固定应用id WxAdmin string `yaml:"wx_admin"` // 默认发送人 WxCorpid string `yaml:"wx_corpid"` // 固定企业id WxSecret string `yaml:"wx_secret"` // 固定密钥 } type Project struct { ProjectId int `yaml:"projectId"` // 项目ID TodoColumnId int `yaml:"todoColumnId"` // 待办列ID FinishColumnId int `yaml:"finishColumnId"` // 完成列ID SwimlaneId int `yaml:"swimlaneId"` // 泳道ID } func LoadConfig() { data, err := ioutil.ReadFile("./config.yaml") if err != nil { log.Println("read config err:", err) } //config := &Config{} err = yaml.Unmarshal(data, &SysConfig) if err != nil { log.Println("read config err:", err) } } // 初始化连接 MySQL 数据库并创建绑定表(如果不存在) func InitDB() { dbCon := fmt.Sprintf("%s:%s@tcp(%s)/jy_resume?charset=utf8&parseTime=True&loc=Local", SysConfig.Database.User, SysConfig.Database.Password, SysConfig.Database.Host) var err error Db, err = sql.Open("mysql", dbCon) if err != nil { log.Fatal("数据库连接错误:", err) } // 测试数据库连接 if err = Db.Ping(); err != nil { log.Fatal("数据库 ping 错误:", err) } //defer Db.Close() KbDb = &mysql.Mysql{ Address: SysConfig.KbMySql.Host, UserName: SysConfig.KbMySql.User, PassWord: SysConfig.KbMySql.Password, DBName: SysConfig.KbMySql.DBName, MaxOpenConns: 5, MaxIdleConns: 5, } KbDb.Init() GfastDb = &mysql.Mysql{ Address: SysConfig.Gfastv2.Host, UserName: SysConfig.Gfastv2.User, PassWord: SysConfig.Gfastv2.Password, DBName: SysConfig.Gfastv2.DBName, MaxOpenConns: 5, MaxIdleConns: 5, } GfastDb.Init() redis.InitRedis(SysConfig.RedisServer) }