fonchain-fiee/cmd/config/config.go

271 lines
7.1 KiB
Go
Raw Normal View History

2025-02-20 08:24:49 +00:00
package config
import (
"errors"
"fmt"
2025-02-20 11:43:50 +00:00
"fonchain-fiee/pkg/common"
2025-02-20 08:24:49 +00:00
"github.com/BurntSushi/toml"
2025-02-20 11:43:50 +00:00
"gopkg.in/ini.v1"
2025-02-20 08:24:49 +00:00
"os"
2025-02-21 05:27:45 +00:00
"strconv"
)
var (
AppMode string
HttpPort string
Key string
Cert string
IsHttps bool
RunHttps bool
Domain string
OssDomain string
ServerDM string
Env string
DriverUrl string
AppointUrl string
MaterialHost string
BosAk string
BosSk string
Endpoint string
BosBucketName string
BosBaseDir string
BosUrl string
BosHttp string
BosDomain string
ProjectMapDir string
JaegerHost string
JaegerOpen bool
Cron bool
DingAccessToken string
DingUrl string
HolidayID string
HolidaySecret string
HolidaySingleUrl string
HolidayMultiUrl string
ErpAk string
ErpSk string
// rabbitmq
RabbitmqUser string
RabbitmqPassword string
RabbitmqHost string
RabbitmqPort int
RabbitmqVhost string
RabbitmqVhostArtwork string
RedisDB int
RedisAddr string
RedisPw string
//shop配置
ShopHost string
//ShopDetail string
// 地图
MapAppCode string
// es
ElasticHost string
SendIndexesUrl string
ChatGptHost string
ApiHost string
Level string
Filename string
MaxSize string
MaxAge string
MaxBackups string
YearGiftCheckHost string
Aliyun struct {
AccessKeyId string
AccessKeySecret string
}
Blockchain struct {
Key string
PubKey string
}
2025-02-20 08:24:49 +00:00
)
/********start-配置信息*********/
2025-02-20 11:43:50 +00:00
// Baiduco 百度上链
2025-02-20 08:24:49 +00:00
type Mysql struct {
Db string
DbHost string
DbPort string
DbUser string
DbPassWord string
DbName string
}
type Redis struct {
RedisDB string
RedisAddr string
RedisPW string
RedisDBNAme string
}
type System struct {
Mode string
Version string
HttpPort string
Host string
RedirectUri string
}
2025-02-22 07:10:20 +00:00
type Oss struct {
AccessKeyId string
AccessKeySecret string
Endpoint string
BucketName string
BaseDir string
CdnHost string
}
2025-02-20 08:24:49 +00:00
type Mobile struct {
SK string
AK string
URL string
DingDingKey string
}
type Ai struct {
Host string
TelNum string
Password string
}
type Config struct {
Mysql Mysql `toml:"mysql"`
Redis Redis `toml:"redis"`
System System `toml:"system"`
Mobile Mobile `toml:"mobile"`
Ai Ai `toml:"ai"`
2025-02-22 07:10:20 +00:00
Oss Oss `toml:"oss"`
2025-02-20 08:24:49 +00:00
}
/********start-配置信息*********/
var AppConfig *Config
func newConfig() *Config {
return new(Config)
}
func LoadEnv(path string) (*Config, error) {
_, err := os.Stat(path)
if err != nil {
return nil, err
}
AppConfig = newConfig()
if _, err := toml.DecodeFile(path, AppConfig); err != nil {
return nil, err
}
return AppConfig, nil
}
func LoadEnvFromFileInfo(data string) (*Config, error) {
fmt.Println(data)
if data == "" {
return nil, errors.New("nacos 配置文件为空")
}
AppConfig = newConfig()
if _, err := toml.Decode(data, AppConfig); err != nil {
return nil, err
}
return AppConfig, nil
}
2025-02-22 07:10:20 +00:00
func GetOptions1() {
2025-02-20 11:43:50 +00:00
iniConf, err := common.GetConf()
if err != nil {
panic("iniConf error")
}
file, err := ini.Load(iniConf)
if err != nil {
fmt.Println("服务器配置文件读取错误,请检查文件路径:", err)
}
LoadServer(file)
}
func LoadServer(file *ini.File) {
2025-02-21 05:27:45 +00:00
AppMode = file.Section("service").Key("AppMode").String()
IsHttps, _ = file.Section("service").Key("IsHTTPS").Bool()
RunHttps, _ = file.Section("service").Key("RunHTTPS").Bool()
Key = file.Section("service").Key("Key").String()
Cert = file.Section("service").Key("Cert").String()
HttpPort = file.Section("service").Key("HttpPort").String()
Domain = file.Section("service").Key("Domain").String()
OssDomain = file.Section("service").Key("OssDomain").String()
ServerDM = file.Section("service").Key("ServerDM").String()
DriverUrl = file.Section("service").Key("DriverUrl").String()
Env = file.Section("service").Key("Env").String()
JaegerHost = file.Section("service").Key("JaegerHost").String()
JaegerOpen, _ = file.Section("service").Key("JaegerOpen").Bool()
Cron, _ = file.Section("service").Key("Cron").Bool()
YearGiftCheckHost = file.Section("service").Key("YearGiftCheckHost").String()
ProjectMapDir = file.Section("file").Key("ProjectMapDir").String()
AppointUrl = file.Section("service").Key("AppointUrl").String()
MaterialHost = file.Section("service").Key("MaterialHost").String()
BosAk = file.Section("bos").Key("Ak").String()
BosSk = file.Section("bos").Key("Sk").String()
BosBucketName = file.Section("bos").Key("BucketName").String()
BosBaseDir = file.Section("bos").Key("BosBaseDir").String()
Endpoint = file.Section("bos").Key("Endpoint").String()
BosUrl = file.Section("bos").Key("BosUrl").String()
BosHttp = file.Section("bos").Key("BosHttp").String()
BosDomain = file.Section("bos").Key("BosDomain").String()
DingUrl = file.Section("ding").Key("Url").String()
DingAccessToken = file.Section("ding").Key("AccessToken").String()
//加载获取万年历配置
HolidayID = file.Section("holiday").Key("ID").String()
HolidaySecret = file.Section("holiday").Key("Secret").String()
HolidaySingleUrl = file.Section("holiday").Key("SingleUrl").String()
HolidayMultiUrl = file.Section("holiday").Key("MultiUrl").String()
// 加载 rabbitmq 配置
RabbitmqUser = file.Section("rabbitmq").Key("User").String()
RabbitmqPassword = file.Section("rabbitmq").Key("Password").String()
RabbitmqHost = file.Section("rabbitmq").Key("Host").String()
RabbitmqPort, _ = file.Section("rabbitmq").Key("Port").Int()
RabbitmqVhost = file.Section("rabbitmq").Key("Vhost").String()
RabbitmqVhostArtwork = file.Section("rabbitmq").Key("VhostArtwork").String()
//加载 redis
dbStr := file.Section("redis").Key("RedisDBNAme").String()
RedisDB, _ = strconv.Atoi(dbStr)
RedisAddr = file.Section("redis").Key("RedisAddr").String()
RedisPw = file.Section("redis").Key("RedisPW").String()
ShopHost = file.Section("shop").Key("ShopHost").String()
//ShopDetail = file.Section("shop").Key("ShopDetail").String()
// 地图
MapAppCode = file.Section("service").Key("MapAppCode").String()
// 地图
ElasticHost = file.Section("es").Key("ElasticHost").String()
SendIndexesUrl = file.Section("api").Key("SendIndexesUrl").String()
ChatGptHost = file.Section("api").Key("chatGptHost").String()
ErpAk = file.Section("api").Key("erpak").String()
ErpSk = file.Section("api").Key("erpsk").String()
ApiHost = file.Section("service").Key("ApiHost").String()
2025-02-20 11:43:50 +00:00
2025-02-21 05:27:45 +00:00
// zap
Level = file.Section("zap").Key("Level").String()
Filename = file.Section("zap").Key("Filename").String()
MaxSize = file.Section("zap").Key("MaxSize").String()
MaxAge = file.Section("zap").Key("MaxAge").String()
MaxBackups = file.Section("zap").Key("MaxBackups").String()
Aliyun.AccessKeyId = file.Section("aliyun").Key("accessKeyId").String()
Aliyun.AccessKeySecret = file.Section("aliyun").Key("accessKeySecret").String()
Blockchain.PubKey = file.Section("blockchain").Key("PubKey").String()
Blockchain.Key = file.Section("blockchain").Key("Key").String()
2025-02-20 11:43:50 +00:00
}