增加枚举

This commit is contained in:
injoyai
2025-05-20 17:09:05 +08:00
parent abe39fb2ae
commit 73d068002c

View File

@@ -26,33 +26,32 @@ const (
Month = "month" Month = "month"
Quarter = "quarter" Quarter = "quarter"
Year = "year" Year = "year"
tableMinute = "MinuteKline"
table5Minute = "Minute5Kline"
table15Minute = "Minute15Kline"
table30Minute = "Minute30Kline"
tableHour = "HourKline"
tableDay = "DayKline"
tableWeek = "WeekKline"
tableMonth = "MonthKline"
tableQuarter = "QuarterKline"
tableYear = "YearKline"
) )
var ( var (
AllKlineType = []string{Minute, Minute5, Minute15, Minute30, Hour, Day, Week, Month, Quarter, Year} AllKlineType = []string{Minute, Minute5, Minute15, Minute30, Hour, Day, Week, Month, Quarter, Year}
KlineTableMap = map[string]*KlineTable{ KlineTableMap = map[string]*KlineTable{
Minute: NewKlineTable("MinuteKline", func(c *tdx.Client) KlineHandler { return c.GetKlineMinuteUntil }), Minute: NewKlineTable(tableMinute, func(c *tdx.Client) KlineHandler { return c.GetKlineMinuteUntil }),
Minute5: NewKlineTable("Minute5Kline", func(c *tdx.Client) KlineHandler { return c.GetKline5MinuteUntil }), Minute5: NewKlineTable(table5Minute, func(c *tdx.Client) KlineHandler { return c.GetKline5MinuteUntil }),
Minute15: NewKlineTable("Minute15Kline", func(c *tdx.Client) KlineHandler { return c.GetKline15MinuteUntil }), Minute15: NewKlineTable(table15Minute, func(c *tdx.Client) KlineHandler { return c.GetKline15MinuteUntil }),
Minute30: NewKlineTable("Minute30Kline", func(c *tdx.Client) KlineHandler { return c.GetKline30MinuteUntil }), Minute30: NewKlineTable(table30Minute, func(c *tdx.Client) KlineHandler { return c.GetKline30MinuteUntil }),
Hour: NewKlineTable("HourKline", func(c *tdx.Client) KlineHandler { return c.GetKlineHourUntil }), Hour: NewKlineTable(tableHour, func(c *tdx.Client) KlineHandler { return c.GetKlineHourUntil }),
Day: NewKlineTable("DayKline", func(c *tdx.Client) KlineHandler { return c.GetKlineDayUntil }), Day: NewKlineTable(tableDay, func(c *tdx.Client) KlineHandler { return c.GetKlineDayUntil }),
Week: NewKlineTable("WeekKline", func(c *tdx.Client) KlineHandler { return c.GetKlineWeekUntil }), Week: NewKlineTable(tableWeek, func(c *tdx.Client) KlineHandler { return c.GetKlineWeekUntil }),
Month: NewKlineTable("MonthKline", func(c *tdx.Client) KlineHandler { return c.GetKlineMonthUntil }), Month: NewKlineTable(tableMonth, func(c *tdx.Client) KlineHandler { return c.GetKlineMonthUntil }),
Quarter: NewKlineTable("QuarterKline", func(c *tdx.Client) KlineHandler { return c.GetKlineQuarterUntil }), Quarter: NewKlineTable(tableQuarter, func(c *tdx.Client) KlineHandler { return c.GetKlineQuarterUntil }),
Year: NewKlineTable("YearKline", func(c *tdx.Client) KlineHandler { return c.GetKlineYearUntil }), Year: NewKlineTable(tableYear, func(c *tdx.Client) KlineHandler { return c.GetKlineYearUntil }),
}
AllKlineTables = []string{
"MinuteKline",
"Minute5Kline",
"Minute15Kline",
"Minute30Kline",
"HourKline",
"DayKline",
"WeekKline",
"MonthKline",
"QuarterKline",
"YearKline",
} }
) )
@@ -69,6 +68,12 @@ func NewPullKline(cfg PullKlineConfig) *PullKline {
for _, v := range cfg.Tables { for _, v := range cfg.Tables {
_tables = append(_tables, KlineTableMap[v]) _tables = append(_tables, KlineTableMap[v])
} }
if cfg.Limit <= 0 {
cfg.Limit = 1
}
if len(cfg.Dir) == 0 {
cfg.Dir = filepath.Join(tdx.DefaultDatabaseDir, "kline")
}
return &PullKline{ return &PullKline{
tables: _tables, tables: _tables,
Config: cfg, Config: cfg,
@@ -84,6 +89,21 @@ func (this *PullKline) Name() string {
return "拉取k线数据" return "拉取k线数据"
} }
func (this *PullKline) DayKlines(code string) (Klines, error) {
//连接数据库
db, err := xorm.NewEngine("sqlite", filepath.Join(this.Config.Dir, code+".db"))
if err != nil {
return nil, err
}
db.SetMapper(core.SameMapper{})
db.DB().SetMaxOpenConns(1)
defer db.Close()
data := Klines{}
err = db.Table(tableDay).Asc("date").Find(&data)
return data, err
}
func (this *PullKline) Run(ctx context.Context, m *tdx.Manage) error { func (this *PullKline) Run(ctx context.Context, m *tdx.Manage) error {
limit := chans.NewWaitLimit(uint(this.Config.Limit)) limit := chans.NewWaitLimit(uint(this.Config.Limit))
@@ -112,6 +132,7 @@ func (this *PullKline) Run(ctx context.Context, m *tdx.Manage) error {
logs.Err(err) logs.Err(err)
return return
} }
defer db.Close()
db.SetMapper(core.SameMapper{}) db.SetMapper(core.SameMapper{})
db.DB().SetMaxOpenConns(1) db.DB().SetMaxOpenConns(1)