ai_predict_model_data.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package data_manage
  2. import (
  3. "database/sql"
  4. "fmt"
  5. "github.com/beego/beego/v2/client/orm"
  6. "strings"
  7. "time"
  8. )
  9. const (
  10. ModelDataSourceMonthly = 1 // 月度预测数据
  11. ModelDataSourceDaily = 2 // 日度预测数据
  12. )
  13. // AiPredictModelData AI预测模型标的数据
  14. type AiPredictModelData struct {
  15. AiPredictModelDataId int `orm:"column(ai_predict_model_data_id);pk" gorm:"primaryKey"`
  16. AiPredictModelIndexId int `description:"标的ID"`
  17. IndexCode string `description:"标的编码"`
  18. DataTime time.Time `description:"数据日期"`
  19. Value sql.NullFloat64 `description:"实际值"`
  20. PredictValue sql.NullFloat64 `description:"预测值"`
  21. Direction string `description:"方向"`
  22. DeviationRate string `description:"偏差率"`
  23. CreateTime time.Time `description:"创建时间"`
  24. ModifyTime time.Time `description:"修改时间"`
  25. DataTimestamp int64 `description:"数据日期时间戳"`
  26. Source int `description:"来源:1-月度预测(默认);2-日度预测"`
  27. }
  28. func (m *AiPredictModelData) TableName() string {
  29. return "ai_predict_model_data"
  30. }
  31. type AiPredictModelDataCols struct {
  32. PrimaryId string
  33. AiPredictModelIndexId string
  34. IndexCode string
  35. DataTime string
  36. Value string
  37. PredictValue string
  38. Direction string
  39. DeviationRate string
  40. CreateTime string
  41. ModifyTime string
  42. DataTimestamp string
  43. Source string
  44. }
  45. func (m *AiPredictModelData) Cols() AiPredictModelDataCols {
  46. return AiPredictModelDataCols{
  47. PrimaryId: "ai_predict_model_data_id",
  48. AiPredictModelIndexId: "ai_predict_model_index_id",
  49. IndexCode: "index_code",
  50. DataTime: "data_time",
  51. Value: "value",
  52. PredictValue: "predict_value",
  53. Direction: "direction",
  54. DeviationRate: "deviation_rate",
  55. CreateTime: "create_time",
  56. ModifyTime: "modify_time",
  57. DataTimestamp: "data_timestamp",
  58. Source: "source",
  59. }
  60. }
  61. func (m *AiPredictModelData) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*AiPredictModelData, err error) {
  62. o := orm.NewOrmUsingDB("data")
  63. fields := strings.Join(fieldArr, ",")
  64. if len(fieldArr) == 0 {
  65. fields = `*`
  66. }
  67. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  68. if orderRule != "" {
  69. order = ` ORDER BY ` + orderRule
  70. }
  71. sqlRun := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  72. _, err = o.Raw(sqlRun, pars...).QueryRows(&items)
  73. return
  74. }