package models import ( "time" "git.apinb.com/bsm-sdk/core/database" "git.apinb.com/bsm-sdk/core/utils" "git.apinb.com/quant/gostock/internal/impl" "gorm.io/gorm" ) // StartModel 策略模型 type StratModel struct { gorm.Model StratKey string Ymd int Code string UpDateMonth int //上市时间,月数 IndustryScore int // 行业分组 IsSt int GtAmount int // 每日交易额大于设定值 GtPrice int // 最近20日交易日价格大于设定值 GtRoe int // ROE 是否大于设定值 } func init() { database.AppendMigrate(&StratModel{}) } // TableName 设置表名 func (StratModel) TableName() string { return "strat_model" } func NewStratModel(key, code string) *StratModel { obj := StratModel{ StratKey: key, Ymd: GetYmd(), Code: code, } return &obj } func (s *StratModel) Save() error { var cnt int64 impl.DBService.Model(&StratModel{}).Where("strat_key=? and ymd=? and code=?", s.StratKey, s.Ymd, s.Code).Count(&cnt) if cnt == 0 { // create record. return impl.DBService.Create(s).Error } else { // update record. return impl.DBService.Model(&StratModel{}).Where("strat_key=? and ymd=? and code=?", s.StratKey, s.Ymd, s.Code).Updates(s).Error } return nil } func GetYmd() int { ymd := time.Now().Format("20060102") return utils.String2Int(ymd) }