From 4f4781aad3816ea59f89d282483ad7f96a46c583 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Fri, 1 May 2026 17:47:58 +0800 Subject: [PATCH] fix schema --- schema/dataset_basic.go | 14 +++++++------- schema/dataset_daily.go | 18 +++++++++--------- schema/dataset_fina_indicator.go | 10 +++++----- schema/dataset_indicator.go | 14 +++++++------- schema/register.go | 10 +++++----- 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/schema/dataset_basic.go b/schema/dataset_basic.go index a6f4014..828f810 100644 --- a/schema/dataset_basic.go +++ b/schema/dataset_basic.go @@ -2,8 +2,8 @@ package schema import "gorm.io/gorm" -// DatasetStockBasic 股票基本信息表(合并 dataset/stock 与 gostock 字段;gostock 独有 Level、Desc)。 -type DatasetStockBasic struct { +// DatasetBasic 股票基本信息表(合并 dataset/stock 与 gostock 字段;gostock 独有 Level、Desc)。 +type DatasetBasic struct { gorm.Model TsCode string `gorm:"type:varchar(50);not null;index;comment:TS代码"` Symbol string `gorm:"type:varchar(50);not null;comment:股票代码"` @@ -21,17 +21,17 @@ type DatasetStockBasic struct { ActEntType string `gorm:"type:varchar(50);not null;default:'';comment:实控人企业性质"` } -func (DatasetStockBasic) TableName() string { - return "dataset_stock_basic" +func (DatasetBasic) TableName() string { + return "dataset_basic" } // Key 业务主键:TS 代码。 -func (s *DatasetStockBasic) Key() string { +func (s *DatasetBasic) Key() string { return s.TsCode } // DisplaySymbol 展示用代码:有 symbol 用 symbol,否则用 ts_code。 -func (s *DatasetStockBasic) DisplaySymbol() string { +func (s *DatasetBasic) DisplaySymbol() string { if s.Symbol != "" { return s.Symbol } @@ -39,6 +39,6 @@ func (s *DatasetStockBasic) DisplaySymbol() string { } // IsNorthbound 是否沪深港通标的(H 沪股通 / S 深股通)。 -func (s *DatasetStockBasic) IsNorthbound() bool { +func (s *DatasetBasic) IsNorthbound() bool { return s.IsHS == "H" || s.IsHS == "S" } diff --git a/schema/dataset_daily.go b/schema/dataset_daily.go index 1a4624e..d718057 100644 --- a/schema/dataset_daily.go +++ b/schema/dataset_daily.go @@ -2,8 +2,8 @@ package schema import "strconv" -// DatasetStockDaily 股票日线数据(两仓库结构一致)。 -type DatasetStockDaily struct { +// DatasetDaily 股票日线数据(两仓库结构一致)。 +type DatasetDaily struct { ID uint `gorm:"primarykey;autoIncrement" json:"id"` TsCode string `gorm:"type:varchar(20);not null;index:idx_ts_code;uniqueIndex:un_code_date;comment:股票代码" json:"ts_code"` TradeDate int `gorm:"index:idx_trade_date;uniqueIndex:un_code_date;comment:交易日期" json:"trade_date"` @@ -19,12 +19,12 @@ type DatasetStockDaily struct { Amount float64 `gorm:"type:decimal(20,2);comment:成交额(千元)" json:"amount"` } -func (DatasetStockDaily) TableName() string { - return "dataset_stock_daily" +func (DatasetDaily) TableName() string { + return "dataset_daily" } // Key 业务主键:ts_code + 交易日。 -func (d *DatasetStockDaily) Key() string { +func (d *DatasetDaily) Key() string { if d.TsCode == "" && d.TradeDate == 0 { return "" } @@ -32,17 +32,17 @@ func (d *DatasetStockDaily) Key() string { } // IsRising 是否收涨(昨收有效且收盘高于昨收)。 -func (d *DatasetStockDaily) IsRising() bool { +func (d *DatasetDaily) IsRising() bool { return d.PreClose > 0 && d.Close > d.PreClose } // IsFalling 是否收跌。 -func (d *DatasetStockDaily) IsFalling() bool { +func (d *DatasetDaily) IsFalling() bool { return d.PreClose > 0 && d.Close < d.PreClose } // PctChangeFromPre 由昨收计算的涨跌幅(%);昨收无效时返回 0。 -func (d *DatasetStockDaily) PctChangeFromPre() float64 { +func (d *DatasetDaily) PctChangeFromPre() float64 { if d.PreClose <= 0 { return 0 } @@ -50,7 +50,7 @@ func (d *DatasetStockDaily) PctChangeFromPre() float64 { } // AmplitudePct 振幅(相对昨收,%):(最高-最低)/昨收*100。 -func (d *DatasetStockDaily) AmplitudePct() float64 { +func (d *DatasetDaily) AmplitudePct() float64 { if d.PreClose <= 0 { return 0 } diff --git a/schema/dataset_fina_indicator.go b/schema/dataset_fina_indicator.go index 1f39888..1dff97b 100644 --- a/schema/dataset_fina_indicator.go +++ b/schema/dataset_fina_indicator.go @@ -6,8 +6,8 @@ import ( "gorm.io/gorm" ) -// DatasetStockFinaIndicator 财务指标模型 -type DatasetStockFinaIndicator struct { +// DatasetFinaIndicator 财务指标模型 +type DatasetFinaIndicator struct { gorm.Model TsCode string `gorm:"type:varchar(20);not null;index:fi_ts_code;uniqueIndex:un_fi_code_date;comment:TS代码"` Period int `gorm:"index:idx_period;uniqueIndex:un_fi_code_date;comment:报告期数"` @@ -205,12 +205,12 @@ type DatasetStockFinaIndicator struct { } // TableName 设置表名 -func (DatasetStockFinaIndicator) TableName() string { +func (DatasetFinaIndicator) TableName() string { return "dataset_fina_indicator" } // Key 与表 uniqueIndex un_fi_code_date 一致:ts_code + period。 -func (f *DatasetStockFinaIndicator) Key() string { +func (f *DatasetFinaIndicator) Key() string { if f.TsCode == "" && f.Period == 0 { return "" } @@ -218,7 +218,7 @@ func (f *DatasetStockFinaIndicator) Key() string { } // RowLabel 便于日志/调试:ts_code + 报告期 end_date + 公告 ann_date。 -func (f *DatasetStockFinaIndicator) RowLabel() string { +func (f *DatasetFinaIndicator) RowLabel() string { if f.EndDate != "" || f.AnnDate != "" { return f.TsCode + " end=" + f.EndDate + " ann=" + f.AnnDate } diff --git a/schema/dataset_indicator.go b/schema/dataset_indicator.go index 3cbf12d..de4ccb6 100644 --- a/schema/dataset_indicator.go +++ b/schema/dataset_indicator.go @@ -2,8 +2,8 @@ package schema import "strconv" -// DatasetStockIndicator 每日基本面指标(采用 dataset/stock 的 decimal 定义,与采集端迁移一致)。 -type DatasetStockIndicator struct { +// DatasetIndicator 每日基本面指标(采用 dataset/stock 的 decimal 定义,与采集端迁移一致)。 +type DatasetIndicator struct { ID uint `gorm:"primarykey;autoIncrement"` TsCode string `gorm:"type:varchar(20);not null;index:si_ts_code;uniqueIndex:un_si_code_date;comment:股票代码" json:"ts_code"` TradeDate int `gorm:"index:si_trade_date;uniqueIndex:un_si_code_date;comment:交易日期" json:"trade_date"` @@ -26,12 +26,12 @@ type DatasetStockIndicator struct { Roe float64 `gorm:"type:decimal(20,4);comment:ROE(%) 净利润/股本"` } -func (DatasetStockIndicator) TableName() string { - return "dataset_stock_indicator" +func (DatasetIndicator) TableName() string { + return "dataset_indicator" } // Key 业务主键:ts_code + 交易日。 -func (s *DatasetStockIndicator) Key() string { +func (s *DatasetIndicator) Key() string { if s.TsCode == "" && s.TradeDate == 0 { return "" } @@ -39,11 +39,11 @@ func (s *DatasetStockIndicator) Key() string { } // HasTotalMV 总市值是否已填充(大于 0)。 -func (s *DatasetStockIndicator) HasTotalMV() bool { +func (s *DatasetIndicator) HasTotalMV() bool { return s.TotalMv > 0 } // HasCircMV 流通市值是否已填充。 -func (s *DatasetStockIndicator) HasCircMV() bool { +func (s *DatasetIndicator) HasCircMV() bool { return s.CircMv > 0 } diff --git a/schema/register.go b/schema/register.go index 0cdd050..3bc78d3 100644 --- a/schema/register.go +++ b/schema/register.go @@ -2,18 +2,18 @@ package schema import "git.apinb.com/bsm-sdk/core/database" -// RegisterAutoMigrate 将本包内与 stock/gostock 共用的表注册到 bsm-sdk 的迁移列表(可选;也可在各应用 init 中自行 AppendMigrate)。 +// RegisterAutoMigrate 共用的表注册到 bsm-sdk 的迁移列表(可选;也可在各应用 init 中自行 AppendMigrate)。 func RegisterAutoMigrate() { for _, t := range []any{ - &DatasetStockBasic{}, - &DatasetStockDaily{}, + &DatasetBasic{}, + &DatasetDaily{}, &DatasetBlocksIndex{}, &DatasetBlocksMember{}, &DatasetMoneyTotal{}, &DatasetPledgeStat{}, - &DatasetStockIndicator{}, + &DatasetIndicator{}, &DatasetIndicatorPro{}, - &DatasetStockFinaIndicator{}, + &DatasetFinaIndicator{}, } { database.AppendMigrate(t) }