Files
stock/internal/logic/a/daily.go
2026-01-17 01:24:49 +08:00

58 lines
1.3 KiB
Go

package a
import (
"log"
"time"
"git.apinb.com/dataset/stock/internal/impl"
"git.apinb.com/dataset/stock/internal/models"
)
func GetStockDaily() {
s, e := ReturnLastDay()
for _, code := range GetStockCodes() {
params := map[string]string{
"ts_code": code,
"start_date": s,
"end_date": e,
}
var cnt int64
impl.DBService.Model(&models.StockDaily{}).Where("ts_code=? and trade_date in (?,?)", code, s, e).Count(&cnt)
if cnt == 2 {
continue
}
fields := []string{}
reply, err := TushareClient.Daily(params, fields)
if err != nil {
log.Println("ERROR", "GetStockDaily", err)
return
}
for _, item := range reply.Data.Items {
var cnt int64
impl.DBService.Model(&models.StockDaily{}).Where("ts_code=? and trade_date=?", item[0].(string), item[1].(string)).Count(&cnt)
if cnt == 0 {
impl.DBService.Create(&models.StockDaily{
TsCode: item[0].(string),
TradeDate: item[1].(string),
Open: item[2].(float64),
High: item[3].(float64),
Low: item[4].(float64),
Close: item[5].(float64),
PreClose: item[6].(float64),
Change: item[7].(float64),
PctChg: item[8].(float64),
Vol: item[9].(float64),
Amount: item[10].(float64),
})
}
}
time.Sleep(200 * time.Microsecond)
}
}