60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
package a
|
|
|
|
import (
|
|
"log"
|
|
|
|
"git.apinb.com/dataset/stock/internal/impl"
|
|
"git.apinb.com/dataset/stock/internal/models"
|
|
)
|
|
|
|
func GetStockIndicator() {
|
|
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
|
|
}
|
|
|
|
reply, err := TushareClient.Daily(params, []string{})
|
|
if err != nil {
|
|
log.Println("ERROR", "GetStockIndicator", err)
|
|
return
|
|
}
|
|
|
|
for _, item := range reply.Data.Items {
|
|
var cnt int64
|
|
impl.DBService.Model(&models.StockIndicator{}).Where("ts_code=? and trade_date=?", item[0].(string), item[1].(string)).Count(&cnt)
|
|
if cnt == 0 {
|
|
impl.DBService.Create(&models.StockIndicator{
|
|
TsCode: item[0].(string),
|
|
TradeDate: item[1].(string),
|
|
Close: item[2].(float64),
|
|
TurnoverRate: item[3].(float64),
|
|
TurnoverRateF: item[4].(float64),
|
|
VolumeRatio: item[5].(float64),
|
|
Pe: item[6].(float64),
|
|
PeTtm: item[7].(float64),
|
|
Pb: item[8].(float64),
|
|
Ps: item[9].(float64),
|
|
PsTtm: item[10].(float64),
|
|
DvRatio: item[11].(float64),
|
|
DvTtm: item[12].(float64),
|
|
TotalShare: item[13].(float64),
|
|
FloatShare: item[14].(float64),
|
|
FreeShare: item[15].(float64),
|
|
TotalMv: item[16].(float64),
|
|
CircMv: item[17].(float64),
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|