common.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package models
  2. import "eta/eta_index_lib/utils"
  3. // BaseEdbInfoInterface 基础指标接口
  4. type BaseEdbInfoInterface interface {
  5. Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string)
  6. Edit(params EditCalculateBatchParams) (err error, errMsg string)
  7. Refresh(params RefreshParams) (err error, errMsg string)
  8. GetSourceName() string
  9. }
  10. // AddCalculateBatchParams 添加的请求参
  11. type AddCalculateBatchParams struct {
  12. Req *EdbInfoCalculateBatchSaveReq
  13. FromEdbInfo *EdbInfo
  14. EdbCode string
  15. UniqueCode string
  16. SysUserId int
  17. SysUserRealName string
  18. }
  19. // EditCalculateBatchParams 编辑的请求参
  20. type EditCalculateBatchParams struct {
  21. Req *EdbInfoCalculateBatchEditReq
  22. EdbInfo *EdbInfo
  23. FromEdbInfo *EdbInfo
  24. }
  25. // RefreshParams 编辑的请求参
  26. type RefreshParams struct {
  27. EdbInfo *EdbInfo
  28. FromEdbInfo *EdbInfo
  29. StartDate string
  30. EndDate string
  31. }
  32. // GetBaseEdbInfoModel 获取普通指标的model
  33. func GetBaseEdbInfoModel(source int) (baseEdbInfoModel BaseEdbInfoInterface) {
  34. switch source {
  35. case utils.DATA_SOURCE_CALCULATE_LJZZJ:
  36. baseEdbInfoModel = Ljzzj{}
  37. case utils.DATA_SOURCE_CALCULATE_LJZ:
  38. baseEdbInfoModel = Ljz{}
  39. case utils.DATA_SOURCE_CALCULATE_LJZNCZJ:
  40. baseEdbInfoModel = LjzNczj{}
  41. case utils.DATA_SOURCE_CALCULATE_STANDARD_DEVIATION:
  42. baseEdbInfoModel = StandardDeviation{}
  43. case utils.DATA_SOURCE_CALCULATE_PERCENTILE:
  44. baseEdbInfoModel = Percentile{}
  45. case utils.DATA_SOURCE_CALCULATE_ZSXY:
  46. baseEdbInfoModel = ExponentialSmoothing{}
  47. default:
  48. }
  49. return
  50. }
  51. // BatchSaveCalculateBatchParams 编辑的请求参
  52. type BatchSaveCalculateBatchParams struct {
  53. Req EdbInfoCalculateBatchSaveReq
  54. EdbInfo *EdbInfo
  55. FromEdbInfo *EdbInfo
  56. EdbCode string
  57. UniqueCode string
  58. SysUserId int
  59. SysUserRealName string
  60. }
  61. // BasePredictEdbInfoInterface 基础指标接口
  62. type BasePredictEdbInfoInterface interface {
  63. Add(params BatchSaveCalculateBatchParams) (edbInfo *EdbInfo, latestDateStr string, latestValue float64, err error, errMsg string)
  64. Edit(params BatchSaveCalculateBatchParams) (latestDateStr string, latestValue float64, err error, errMsg string)
  65. Refresh(params RefreshParams) (latestDateStr string, latestValue float64, err error, errMsg string)
  66. GetSourceName() string
  67. }
  68. // GetBasePredictEdbInfoModel 获取预测指标的model
  69. func GetBasePredictEdbInfoModel(source int) (baseEdbInfoModel BasePredictEdbInfoInterface) {
  70. switch source {
  71. case utils.DATA_SOURCE_PREDICT_CALCULATE_TBZ:
  72. baseEdbInfoModel = PredictTb{}
  73. case utils.DATA_SOURCE_PREDICT_CALCULATE_LJZZJ:
  74. baseEdbInfoModel = PredictLjzzj{}
  75. case utils.DATA_SOURCE_PREDICT_CALCULATE_LJZ:
  76. baseEdbInfoModel = PredictLjz{}
  77. case utils.DATA_SOURCE_PREDICT_CALCULATE_LJZNCZJ:
  78. baseEdbInfoModel = PredictLjzNczj{}
  79. case utils.DATA_SOURCE_PREDICT_CALCULATE_STANDARD_DEVIATION:
  80. baseEdbInfoModel = PredictStandardDeviation{}
  81. case utils.DATA_SOURCE_PREDICT_CALCULATE_PERCENTILE:
  82. baseEdbInfoModel = PredictPercentile{}
  83. case utils.DATA_SOURCE_PREDICT_CALCULATE_ZSXY:
  84. baseEdbInfoModel = PredictExponentialSmoothing{}
  85. default:
  86. }
  87. return
  88. }