calculate_residual_analysis_config.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. type CalculateResidualAnalysisConfig struct {
  9. CalculateResidualAnalysisConfigId int `gorm:"column:calculate_residual_analysis_config_id;primaryKey" description:"自增id"`
  10. Config string `gorm:"column:config" description:"计算参数配置"`
  11. SysUserId int `gorm:"column:sys_user_id" description:"操作人id"`
  12. CreateTime time.Time `gorm:"column:create_time" description:"创建时间"`
  13. ModifyTime time.Time `gorm:"column:modify_time" description:"修改时间"`
  14. }
  15. type ResidualAnalysisConfig struct {
  16. ResidualType int `description:"残差类型: 1-映射残差 2-拟合残差"`
  17. DateType int `json:"dateType" description:"时间类型 -1-自定义时间 0-至今 n-枚举时间(近n年)"`
  18. StartDate string `json:"startDate"`
  19. EndDate string `json:"endDate"`
  20. IsOrder bool `description:"true:正序,false:逆序"`
  21. IndexType int `json:"indexType" description:"1-标准指标 2-领先指标"`
  22. LeadValue int `json:"leadValue" description:"领先值"`
  23. LeadFrequency string `json:"leadFrequency" description:"领先频度"`
  24. LeftIndexMin float64 `description:"指标A左侧下限"`
  25. LeftIndexMax float64 `description:"指标A左侧上限"`
  26. RightIndexMin float64 `description:"指标B右侧下限"`
  27. RightIndexMax float64 `description:"指标B右侧上限"`
  28. ResidualIndexMin float64 `description:"残差指标下限"`
  29. ResidualIndexMax float64 `description:"残差指标上限"`
  30. ContrastIndexMin float64 `description:"对比指标下限"`
  31. ContrastIndexMax float64 `description:"对比指标上限"`
  32. }
  33. // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
  34. func (m *ResidualAnalysisConfig) AfterFind(db *gorm.DB) (err error) {
  35. m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
  36. m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
  37. return
  38. }
  39. // GetResidualAnalysisConfigById 根据配置id查询配置信息
  40. func GetResidualAnalysisConfigById(edbInfoId int) (residualAnalysisConfig CalculateResidualAnalysisConfig, err error) {
  41. sql := `SELECT t2.* FROM calculate_residual_analysis_config_mapping t1
  42. join calculate_residual_analysis_config t2 on t1.calculate_residual_analysis_config_id = t2.calculate_residual_analysis_config_id
  43. WHERE t1.edb_info_id = ? and index_type!=3 and index_type !=4`
  44. err = global.DEFAULT_DB.Raw(sql, edbInfoId).First(&residualAnalysisConfig).Error
  45. return
  46. }