Files
dennis ea5b24d0cf 1.改为多线程抓取数据
2.数据库表名重定义,股票代码有可能命中PostgreSQL的保留3.关键字,加市场后缀,如US或HK
4.删除了插入数据时存在检查以提高效率
5.将 io/ioutil 的使用移除,并替换为 Go 1.16+ 推荐的实现
2025-10-31 01:23:54 +08:00

49 lines
1.0 KiB
Go

package appconfig
import (
"fmt"
"os"
"time"
"gopkg.in/yaml.v3"
)
// Config 应用配置结构
type Config struct {
Symbols []string `yaml:"symbols"`
Dates []string `yaml:"dates"`
Settings struct {
Period string `yaml:"period"`
AdjustType string `yaml:"adjust_type"`
} `yaml:"settings"`
}
// Load 从YAML文件加载配置
func Load(filepath string) (*Config, error) {
data, err := os.ReadFile(filepath)
if err != nil {
return nil, fmt.Errorf("读取配置文件失败: %v", err)
}
var config Config
err = yaml.Unmarshal(data, &config)
if err != nil {
return nil, fmt.Errorf("解析配置文件失败: %v", err)
}
return &config, nil
}
// ParseDates 将字符串日期转换为time.Time切片
func (c *Config) ParseDates() ([]time.Time, error) {
var dates []time.Time
for _, dateStr := range c.Dates {
date, err := time.Parse("2006-01-02", dateStr)
if err != nil {
return nil, fmt.Errorf("解析日期 %s 失败: %v", dateStr, err)
}
dates = append(dates, date)
}
return dates, nil
}