fix schema

This commit is contained in:
2026-05-01 17:47:58 +08:00
parent 5673e5c6ca
commit 4f4781aad3
5 changed files with 33 additions and 33 deletions

View File

@@ -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"
}

View File

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

View File

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

View File

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

View File

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