edb_info_resp.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. )
  7. type EdbInfoResp struct {
  8. EdbInfoId int `gorm:"primaryKey" `
  9. EdbInfoType int `description:"指标类型,0:普通指标,1:预测指标"`
  10. SourceName string `description:"来源名称"`
  11. Source int `description:"来源id"`
  12. EdbCode string `description:"指标编码"`
  13. EdbName string `description:"指标名称"`
  14. EdbNameEn string `description:"英文指标名称"`
  15. EdbNameSource string `description:"指标名称来源"`
  16. Frequency string `description:"频率"`
  17. Unit string `description:"单位"`
  18. UnitEn string `description:"英文单位"`
  19. StartDate string `description:"起始日期"`
  20. EndDate string `description:"终止日期"`
  21. ClassifyId int `description:"分类id"`
  22. SysUserId int
  23. SysUserRealName string
  24. UniqueCode string `description:"指标唯一编码"`
  25. CreateTime string
  26. ModifyTime string
  27. BaseModifyTime string
  28. MinValue float64 `description:"指标最小值"`
  29. MaxValue float64 `description:"指标最大值"`
  30. CalculateFormula string `description:"计算公式"`
  31. EdbType int `description:"指标类型:1:基础指标,2:计算指标"`
  32. Sort int `description:"排序字段"`
  33. LatestDate string `description:"数据最新日期(实际日期)"`
  34. LatestValue float64 `description:"数据最新值(实际值)"`
  35. EndValue float64 `description:"数据的最新值(预测日期的最新值)"`
  36. MoveType int `description:"移动方式:1:领先(默认),2:滞后"`
  37. MoveFrequency string `description:"移动频度"`
  38. NoUpdate int8 `description:"是否停止更新,0:继续更新;1:停止更新"`
  39. ServerUrl string `description:"服务器地址"`
  40. ChartImage string `description:"图表图片"`
  41. Calendar string `description:"公历/农历" orm:"default(公历);"`
  42. DataDateType string `orm:"column(data_date_type);size(255);null;default(交易日)"`
  43. ManualSave int `description:"是否有手动保存过上下限: 0-否; 1-是"`
  44. EmptyType int `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
  45. MaxEmptyType int `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
  46. TerminalCode string `description:"终端编码,用于配置在机器上"`
  47. DataUpdateTime string `description:"最近一次数据发生变化的时间"`
  48. ErDataUpdateDate string `description:"本次更新,数据发生变化的最早日期"`
  49. SourceIndexName string `description:"数据源中的指标名称"`
  50. SubSource int `description:"子数据来源:0:经济数据库,1:日期序列"`
  51. SubSourceName string `description:"子数据来源名称"`
  52. IndicatorCode string `description:"指标代码"`
  53. StockCode string `description:"证券代码"`
  54. Extra string `description:"指标额外配置"`
  55. IsJoinPermission int `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
  56. }
  57. // ConvertToResp
  58. // @Description:
  59. // @receiver m
  60. // @return *EdbInfoResp
  61. // @return error
  62. func (m EdbInfo) ConvertToResp() (*EdbInfoResp, error) {
  63. result := new(EdbInfoResp)
  64. jsonBytes, err := json.Marshal(m)
  65. if err != nil {
  66. return nil, fmt.Errorf("failed to marshal input: %w", err)
  67. }
  68. err = json.Unmarshal(jsonBytes, result)
  69. if err != nil {
  70. return nil, fmt.Errorf("failed to unmarshal input: %w", err)
  71. }
  72. // 通过反射处理时间字段
  73. fieldsToProcess := []string{"CreateTime", "ModifyTime", "BaseModifyTime"}
  74. err = utils.ReflectSetField(m, result, fieldsToProcess, utils.FormatDateTime)
  75. if err != nil {
  76. return result, err
  77. }
  78. // 通过反射处理时间字段
  79. fieldsToProcess = []string{"StartDate", "EndDate"}
  80. err = utils.ReflectSetField(m, result, fieldsToProcess, utils.FormatDate)
  81. return result, err
  82. }
  83. // ConvertToResp
  84. // @Description: 转成需要输出的格式
  85. // @receiver m
  86. func (m *EdbInfoList) ConvertToResp() {
  87. m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
  88. m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
  89. m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
  90. m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
  91. m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
  92. return
  93. }