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) } }