257 lines
7.3 KiB
Go
257 lines
7.3 KiB
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"fonchain-fiee/pkg/common"
|
||
|
"github.com/spf13/viper"
|
||
|
"gopkg.in/ini.v1"
|
||
|
"os"
|
||
|
"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
|
||
|
//TODO
|
||
|
//BosAk string
|
||
|
//BosSk string
|
||
|
//BosBucketName string
|
||
|
//BosBaseDir string
|
||
|
//BosUrl string
|
||
|
//BosHttp string
|
||
|
//BosDomain string
|
||
|
//TODO
|
||
|
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
|
||
|
|
||
|
//百度地图的ak
|
||
|
BaiduMapAK string
|
||
|
|
||
|
// es
|
||
|
ElasticHost string
|
||
|
SendIndexesUrl string
|
||
|
ChatGptHost string
|
||
|
|
||
|
ApiHost string
|
||
|
|
||
|
Level string
|
||
|
Filename string
|
||
|
MaxSize string
|
||
|
MaxAge string
|
||
|
MaxBackups string
|
||
|
|
||
|
YearGiftCheckHost string
|
||
|
IsOut bool
|
||
|
OutUrl string
|
||
|
Aliyun struct {
|
||
|
AccessKeyId string
|
||
|
AccessKeySecret string
|
||
|
}
|
||
|
SendTime int
|
||
|
XMChannelId string
|
||
|
OPChannelId string
|
||
|
OPNotifyLevel int
|
||
|
Route string
|
||
|
|
||
|
PdfHost string
|
||
|
|
||
|
DefaultSignNo uint64
|
||
|
|
||
|
// 审批 es index
|
||
|
ApprovalIndex string
|
||
|
)
|
||
|
|
||
|
var ConfigData = new(AppConfig)
|
||
|
|
||
|
type AppConfig struct {
|
||
|
Oss struct {
|
||
|
AccessKeyId string
|
||
|
AccessKeySecret string
|
||
|
Endpoint string
|
||
|
BucketName string
|
||
|
BaseDir string
|
||
|
CdnHost string
|
||
|
}
|
||
|
Rabbitmq struct {
|
||
|
User string
|
||
|
Password string
|
||
|
Host string
|
||
|
Port int
|
||
|
Vhost string
|
||
|
VhostArtwork string
|
||
|
VhostCopyright string
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func GetOptions() {
|
||
|
iniConf, err := common.GetConf()
|
||
|
if err != nil {
|
||
|
panic("iniConf error")
|
||
|
}
|
||
|
file, err := ini.Load(iniConf)
|
||
|
if err != nil {
|
||
|
fmt.Println("服务器配置文件读取错误,请检查文件路径:", err)
|
||
|
}
|
||
|
_ = os.MkdirAll("runtime", os.ModePerm)
|
||
|
LoadServer(file)
|
||
|
_ = Viper(iniConf)
|
||
|
}
|
||
|
|
||
|
func LoadServer(file *ini.File) {
|
||
|
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()
|
||
|
IsOut, _ = file.Section("service").Key("IsOut").Bool()
|
||
|
OutUrl = file.Section("service").Key("OutUrl").String()
|
||
|
|
||
|
ProjectMapDir = file.Section("file").Key("ProjectMapDir").String()
|
||
|
|
||
|
AppointUrl = file.Section("service").Key("AppointUrl").String()
|
||
|
MaterialHost = file.Section("service").Key("MaterialHost").String()
|
||
|
|
||
|
//TODO
|
||
|
//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()
|
||
|
|
||
|
//BosUrl = file.Section("bos").Key("BosUrl").String()
|
||
|
//BosHttp = file.Section("bos").Key("BosHttp").String()
|
||
|
//BosDomain = file.Section("bos").Key("BosDomain").String()
|
||
|
|
||
|
//TODO
|
||
|
|
||
|
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()
|
||
|
BaiduMapAK = file.Section("service").Key("BaiduMapAK").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()
|
||
|
|
||
|
// 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()
|
||
|
|
||
|
Aliyun.AccessKeySecret = file.Section("aliyun").Key("accessKeySecret").String()
|
||
|
|
||
|
//发送次数
|
||
|
SendTime, _ = file.Section("send").Key("SendTime").Int()
|
||
|
OPNotifyLevel, _ = file.Section("send").Key("OPNotifyLevel").Int()
|
||
|
XMChannelId = file.Section("send").Key("XMChannelId").String()
|
||
|
OPChannelId = file.Section("send").Key("OPChannelId").String()
|
||
|
PdfHost = file.Section("pdf").Key("Host").String()
|
||
|
DefaultSignNo, _ = file.Section("msg").Key("defaultSignNo").Uint64()
|
||
|
Route = file.Section("send").Key("Route").String()
|
||
|
|
||
|
// 审批 es index
|
||
|
ApprovalIndex = file.Section("es").Key("ApprovalIndex").String()
|
||
|
}
|
||
|
|
||
|
func Viper(iniConf string) (err error) {
|
||
|
viper.SetConfigFile(iniConf)
|
||
|
err = viper.ReadInConfig()
|
||
|
if err != nil {
|
||
|
panic("viper.ReadInConfig failed" + err.Error())
|
||
|
return
|
||
|
}
|
||
|
if err = viper.Unmarshal(ConfigData); err != nil {
|
||
|
panic("viper.Unmarshal failed" + err.Error())
|
||
|
return
|
||
|
}
|
||
|
if err = viper.UnmarshalKey("mail_artwork.EditReturnArtworkUrl", &MailArtwork.EditReturnArtworkUrl); err != nil {
|
||
|
panic("viper.Unmarshal 'mail_artwork' config failed" + err.Error())
|
||
|
return
|
||
|
}
|
||
|
fmt.Printf("mailartwork:%+v\n", MailArtwork)
|
||
|
return
|
||
|
}
|