predict_edb_rule_data.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package models
  2. import (
  3. "eta/eta_index_lib/global"
  4. "eta/eta_index_lib/utils"
  5. "gorm.io/gorm"
  6. "time"
  7. )
  8. // PredictEdbRuleData 预测指标,动态规则的计算数据
  9. type PredictEdbRuleData struct {
  10. PredictEdbRuleDataId int `gorm:"primaryKey;autoIncrement;column:predict_edb_rule_data_id"`
  11. EdbInfoId int
  12. ConfigId int
  13. DataTime string
  14. Value string
  15. CreateTime time.Time
  16. ModifyTime time.Time
  17. DataTimestamp int64
  18. }
  19. // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
  20. func (m *PredictEdbRuleData) AfterFind(db *gorm.DB) (err error) {
  21. m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
  22. return
  23. }
  24. // PredictEdbRuleDataItem 预测指标,动态规则的计算数据
  25. type PredictEdbRuleDataItem struct {
  26. PredictEdbRuleDataId int `gorm:"primaryKey;autoIncrement;column:predict_edb_rule_data_id"`
  27. EdbInfoId int
  28. ConfigId int
  29. DataTime string
  30. Value float64
  31. CreateTime time.Time
  32. ModifyTime time.Time
  33. DataTimestamp int64
  34. }
  35. // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
  36. func (m *PredictEdbRuleDataItem) AfterFind(db *gorm.DB) (err error) {
  37. m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
  38. return
  39. }
  40. // GetPredictEdbRuleDataItemList 根据基础预测指标id集合 获取 所有的普通指标列表数据
  41. func GetPredictEdbRuleDataItemList(edbInfoId, configId int, startDate, endDate string) (list []*PredictEdbRuleDataItem, err error) {
  42. var pars []interface{}
  43. sql := ` SELECT * FROM predict_edb_rule_data WHERE edb_info_id = ? AND config_id = ? `
  44. pars = append(pars, edbInfoId, configId)
  45. if startDate != "" {
  46. sql += ` AND data_time>=? `
  47. pars = append(pars, startDate)
  48. }
  49. if endDate != "" {
  50. sql += ` AND data_time<=? `
  51. pars = append(pars, endDate)
  52. }
  53. sql += ` ORDER BY data_time ASC `
  54. err = global.DEFAULT_DB.Raw(sql, pars...).Find(&list).Error
  55. if err != nil {
  56. return
  57. }
  58. for _, v := range list {
  59. v.ConvertDate()
  60. }
  61. return
  62. }
  63. // GetPredictEdbRuleDataByTo
  64. // @Description: 根据配置id获取数据
  65. // @author: Roc
  66. // @datetime 2024-10-31 15:17:38
  67. // @param to *gorm.DB
  68. // @param configId int
  69. // @return list []*PredictEdbRuleData
  70. // @return err error
  71. func GetPredictEdbRuleDataByTo(to *gorm.DB, configId int) (list []*PredictEdbRuleData, err error) {
  72. sql := `SELECT * FROM predict_edb_rule_data WHERE config_id = ?`
  73. err = to.Raw(sql, configId).Find(&list).Error
  74. return
  75. }
  76. // ConvertDate
  77. // @Description: 日期转换
  78. // @author: Roc
  79. // @receiver m
  80. // @datetime 2024-10-31 15:26:48
  81. func (m *PredictEdbRuleData) ConvertDate() {
  82. m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
  83. return
  84. }
  85. // ConvertDate
  86. // @Description: 日期转换
  87. // @author: Roc
  88. // @receiver m
  89. // @datetime 2024-10-31 15:26:59
  90. func (m *PredictEdbRuleDataItem) ConvertDate() {
  91. m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
  92. return
  93. }