diff --git a/internal/logic/a/indicator.go b/internal/logic/a/indicator.go index 70c4a3f..215d4f4 100644 --- a/internal/logic/a/indicator.go +++ b/internal/logic/a/indicator.go @@ -29,7 +29,7 @@ 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.Daily(params, fields) + reply, err := TushareClient.DailyBasic(params, fields) if err != nil { log.Println("ERROR", "GetStockIndicator", err) return @@ -42,25 +42,24 @@ func GetStockIndicator() { 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), + Close: Any2Float(item[2]), + TurnoverRate: Any2Float(item[3]), + TurnoverRateF: Any2Float(item[4]), + VolumeRatio: Any2Float(item[5]), + Pe: Any2Float(item[6]), + PeTtm: Any2Float(item[7]), + Pb: Any2Float(item[8]), + Ps: Any2Float(item[9]), + PsTtm: Any2Float(item[10]), + DvRatio: Any2Float(item[11]), + DvTtm: Any2Float(item[12]), + TotalShare: Any2Float(item[13]), + FloatShare: Any2Float(item[14]), + FreeShare: Any2Float(item[15]), + TotalMv: Any2Float(item[16]), + CircMv: Any2Float(item[17]), }) } } } - } diff --git a/internal/logic/a/new.go b/internal/logic/a/new.go index 44f6212..5f16a3c 100644 --- a/internal/logic/a/new.go +++ b/internal/logic/a/new.go @@ -30,3 +30,10 @@ func Anys2Strings(any []any) []string { } return ret } + +func Any2Float(in any) float64 { + if in == nil { + return -1 + } + return in.(float64) +} diff --git a/internal/models/stock_fina_indicator.go b/internal/models/stock_fina_indicator.go index 0af269f..918a607 100644 --- a/internal/models/stock_fina_indicator.go +++ b/internal/models/stock_fina_indicator.go @@ -1,14 +1,13 @@ package models import ( - "time" - + "git.apinb.com/bsm-sdk/core/database" "gorm.io/gorm" ) // StockFinaIndicator 财务指标模型 type StockFinaIndicator struct { - ID uint `gorm:"primarykey;autoIncrement"` + gorm.Model TsCode string `gorm:"type:varchar(20);not null;index:idx_ts_code;comment:TS代码"` AnnDate string `gorm:"type:date;not null;index:idx_ann_date;comment:公告日期"` EndDate string `gorm:"type:date;not null;index:idx_end_date;comment:报告期"` @@ -201,9 +200,10 @@ type StockFinaIndicator struct { // 其他 UpdateFlag string `gorm:"type:varchar(1);comment:更新标识"` - CreatedAt time.Time - UpdatedAt time.Time - DeletedAt gorm.DeletedAt `gorm:"index"` +} + +func init() { + database.AppendMigrate(&StockFinaIndicator{}) } // TableName 设置表名 diff --git a/internal/models/stock_indicator.go b/internal/models/stock_indicator.go index 3f8c021..83bca71 100644 --- a/internal/models/stock_indicator.go +++ b/internal/models/stock_indicator.go @@ -7,8 +7,8 @@ import ( // StockIndicator 股票日线数据模型 type StockIndicator struct { ID uint `gorm:"primarykey;autoIncrement"` - TsCode string `gorm:"type:varchar(20);not null;comment:TS股票代码;index:idx_ts_code;uniqueIndex:un_code_date;"` - TradeDate string `gorm:"type:date;not null;comment:交易日期;index:idx_trade_date;uniqueIndex:un_code_date;"` + TsCode string `gorm:"type:varchar(20);not null;index:idx_ts_code;uniqueIndex:un_code_date;comment:股票代码" json:"ts_code"` + TradeDate string `gorm:"type:date;not null;index:idx_trade_date;uniqueIndex:un_code_date;comment:交易日期" json:"trade_date"` Close float64 `gorm:"type:decimal(10,4);comment:当日收盘价"` TurnoverRate float64 `gorm:"type:decimal(10,6);comment:换手率(%)"` TurnoverRateF float64 `gorm:"type:decimal(10,6);comment:换手率(自由流通股)"`