predict_edb_conf.go 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package models
  2. import (
  3. "eta_gn/eta_index_lib/global"
  4. "eta_gn/eta_index_lib/utils"
  5. "time"
  6. )
  7. type AddPredictEdbInfoReq struct {
  8. EdbInfoId int `description:"指标ID"`
  9. ClassifyId int `description:"分类id"`
  10. AdminId int `description:"添加人id"`
  11. AdminName string `description:"添加人名称"`
  12. SourceEdbInfoId int `description:"来源指标id"`
  13. EdbName string `description:"指标名称"`
  14. RuleList []RuleConfig `description:"配置规则列表"`
  15. MaxValue float64 `description:"最大值"`
  16. MinValue float64 `description:"最小值"`
  17. DataDateType string `description:"日期类型,枚举值:交易日、自然日"`
  18. }
  19. type RuleConfig struct {
  20. RuleType int `description:"预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值,9:动态环差"`
  21. Value string `description:"值/计算公式"`
  22. EmptyType int `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
  23. MaxEmptyType int `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
  24. EndDate string `description:"截止日期"`
  25. EdbInfoIdArr []EdbInfoFromTag `description:"指标信息"`
  26. }
  27. type EditPredictEdbInfoReq struct {
  28. EdbInfoId int `description:"指标ID"`
  29. ClassifyId int `description:"分类id"`
  30. EdbName string `description:"指标名称"`
  31. RuleList []RuleConfig `description:"配置规则列表"`
  32. }
  33. type PredictEdbConf struct {
  34. ConfigId int `gorm:"primaryKey;autoIncrement;column:config_id" description:"规则id"`
  35. PredictEdbInfoId int `description:"预测指标id"`
  36. SourceEdbInfoId int `description:"来源指标id"`
  37. RuleType int `description:"预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值"`
  38. FixedValue float64 `description:"固定值"`
  39. Value string `description:"配置的值"`
  40. EmptyType int `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
  41. MaxEmptyType int `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
  42. EndDate time.Time `description:"截止日期"`
  43. ModifyTime time.Time `description:"修改时间"`
  44. CreateTime time.Time `description:"添加时间"`
  45. }
  46. type PredictEdbConfAndData struct {
  47. ConfigId int `gorm:"primaryKey;autoIncrement;column:config_id" description:"规则id"`
  48. PredictEdbInfoId int `orm:"column(predict_edb_info_id)" description:"预测指标id"`
  49. SourceEdbInfoId int `description:"来源指标id"`
  50. RuleType int `description:"预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值,9:动态环差"`
  51. FixedValue float64 `description:"固定值"`
  52. Value string `description:"配置的值"`
  53. EmptyType int `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
  54. MaxEmptyType int `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
  55. EndDate time.Time `description:"截止日期"`
  56. ModifyTime time.Time `description:"修改时间"`
  57. CreateTime time.Time `description:"添加时间"`
  58. DataList []*EdbInfoSearchData `description:"动态数据" gorm:"-"`
  59. }
  60. func GetPredictEdbConfListById(edbInfoId int) (items []*PredictEdbConf, err error) {
  61. sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? ORDER BY config_id ASC`
  62. err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Scan(&items).Error
  63. return
  64. }
  65. func GetPredictEdbConfAndDataListById(edbInfoId int) (items []*PredictEdbConfAndData, err error) {
  66. sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? ORDER BY config_id ASC`
  67. err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Scan(&items).Error
  68. return
  69. }
  70. func GetPredictEdbConfListByConfigIdList(configIdList []int) (items []*PredictEdbConf, err error) {
  71. num := len(configIdList)
  72. if num <= 0 {
  73. return
  74. }
  75. sql := ` SELECT * FROM predict_edb_conf WHERE config_id in (` + utils.GetOrmInReplace(num) + `) ORDER BY config_id ASC`
  76. err = global.DEFAULT_DmSQL.Raw(sql, configIdList).Scan(&items).Error
  77. return
  78. }