Implement initial project structure and setup

This commit is contained in:
2026-05-07 00:47:09 +08:00
parent f3742059af
commit 12ffcbef6a
16 changed files with 1061 additions and 0 deletions

41
internal/config/config.go Normal file
View File

@@ -0,0 +1,41 @@
package config
import (
"net"
"git.apinb.com/bsm-sdk/core/conf"
"git.apinb.com/bsm-sdk/core/utils"
)
var (
Spec SrvConfig
)
type SrvConfig struct {
conf.Base `yaml:",inline"`
ApiPort string `yaml:"ApiPort"`
WebPort string `yaml:"WebPort"`
Databases *conf.DBConf `yaml:"Databases"`
BinanceApiKey string `yaml:"BinanceApiKey"`
BinanceApiSecret string `yaml:"BinanceApiSecret"`
}
func New(srvKey string) {
// 初始化配置 创建一个新的配置实例,用于服务配置
conf.New(srvKey, &Spec)
// 配置校验 服务IP,端口; 端口如果不合规,则随机分配端口
Spec.Port = conf.CheckPort(Spec.Port)
Spec.BindIP = conf.CheckIP(Spec.BindIP)
Spec.Addr = net.JoinHostPort(Spec.BindIP, Spec.Port)
// 配置校验 服务名称地址及监听地址不能为空
conf.NotNil(Spec.Service, Spec.Cache)
// check dirs
if !utils.PathExists("./cache") {
utils.CreateDir("./cache")
}
conf.PrintInfo(Spec.Addr)
}