This commit is contained in:
yanweidong
2026-01-21 17:13:37 +08:00
parent e279299bf3
commit c589839e12
5 changed files with 69 additions and 38 deletions

View File

@@ -2,6 +2,7 @@ package a
import (
"log"
"os"
"time"
"git.apinb.com/dataset/stock/internal/impl"
@@ -14,8 +15,8 @@ func GetStockDaily() {
var start string = "20230101"
var last models.StockDaily
err := impl.DBService.Where("ts_code=?", code).Order("trade_date DESC").First(&last).Error
if err == nil && last.TradeDate != "" {
start = last.TradeDate
if err == nil {
start = last.TradeDate.Format("20060102")
}
params := map[string]string{
"ts_code": code,
@@ -37,10 +38,16 @@ func GetStockDaily() {
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)
os.Exit(1)
if cnt == 0 {
t, err := time.Parse("20060102", item[1].(string))
if err != nil {
continue
}
impl.DBService.Create(&models.StockDaily{
TsCode: item[0].(string),
TradeDate: item[1].(string),
TradeDate: t,
Open: item[2].(float64),
High: item[3].(float64),
Low: item[4].(float64),

View File

@@ -2,6 +2,7 @@ package a
import (
"log"
"os"
"strings"
"time"
@@ -15,8 +16,8 @@ func GetStockIndicator() {
var start string = "20230101"
var last models.StockIndicator
err := impl.DBService.Where("ts_code=?", code).Order("trade_date DESC").First(&last).Error
if err == nil && last.TradeDate != "" {
start = last.TradeDate
if err == nil {
start = last.TradeDate.Format("20060102")
}
params := map[string]string{
"ts_code": code,
@@ -31,17 +32,22 @@ func GetStockIndicator() {
fields := strings.Split("ts_code,trade_date,close,turnover_rate,turnover_rate_f,volume_ratio,pe,pe_ttm,pb,ps,ps_ttm,dv_ratio,dv_ttm,total_share,float_share,free_share,total_mv,circ_mv", ",")
reply, err := TushareClient.DailyBasic(params, fields)
if err != nil {
log.Println("ERROR", "GetStockIndicator", err)
log.Println("ERROR", "GetStockIndicator", err, "PARAMS", params)
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)
os.Exit(1)
if cnt == 0 {
t, err := time.Parse("20060102", item[1].(string))
if err != nil {
continue
}
impl.DBService.Create(&models.StockIndicator{
TsCode: item[0].(string),
TradeDate: item[1].(string),
TradeDate: t,
Close: Any2Float(item[2]),
TurnoverRate: Any2Float(item[3]),
TurnoverRateF: Any2Float(item[4]),