base_from_sci_hq_data.go 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package data_manage
  2. import (
  3. "eta/eta_api/utils"
  4. "time"
  5. "github.com/beego/beego/v2/client/orm"
  6. )
  7. type BaseFromSciHqData struct {
  8. SciHqDataId int `orm:"column(sci_hq_data_id);pk;auto"`
  9. BaseFromSciHqIndexId int `description:"指标id"`
  10. IndexCode string `description:"指标编码"`
  11. DataTime time.Time `description:"数据日期"`
  12. Value float64 `description:"数据值"`
  13. CreateTime time.Time `description:"创建时间"`
  14. ModifyTime time.Time `description:"修改时间"`
  15. DataTimestamp int64 `description:"数据时间戳"`
  16. }
  17. type BaseFromSciHqDataItem struct {
  18. SciHqDataId int `orm:"column(sci_hq_data_id);pk;auto"`
  19. BaseFromSciHqIndexId int `description:"指标id"`
  20. IndexCode string `description:"指标编码"`
  21. DataTime string `description:"数据日期"`
  22. Value float64 `description:"数据值"`
  23. CreateTime string `description:"创建时间"`
  24. ModifyTime string `description:"修改时间"`
  25. DataTimestamp int64 `description:"数据时间戳"`
  26. }
  27. func (m *BaseFromSciHqData) ToItem() (item *BaseFromSciHqDataItem) {
  28. return &BaseFromSciHqDataItem{
  29. SciHqDataId: m.SciHqDataId,
  30. BaseFromSciHqIndexId: m.BaseFromSciHqIndexId,
  31. IndexCode: m.IndexCode,
  32. DataTime: m.DataTime.Format(utils.FormatDate),
  33. Value: m.Value,
  34. CreateTime: m.CreateTime.Format(utils.FormatDateTime),
  35. ModifyTime: m.ModifyTime.Format(utils.FormatDateTime),
  36. DataTimestamp: m.DataTimestamp,
  37. }
  38. }
  39. // GetSciHqDataByIndexId 根据指标id获取指标数据
  40. func GetSciHqDataByIndexId(indexId int) (items []*BaseFromSciHqDataItem, err error) {
  41. var ormList []*BaseFromSciHqData
  42. items = make([]*BaseFromSciHqDataItem, 0)
  43. o := orm.NewOrmUsingDB("data")
  44. sql := ` SELECT * FROM base_from_sci_hq_data WHERE base_from_sci_hq_index_id=? ORDER BY data_time DESC`
  45. _, err = o.Raw(sql, indexId).QueryRows(&ormList)
  46. if err != nil {
  47. return
  48. }
  49. for _, ormItem := range ormList {
  50. items = append(items, ormItem.ToItem())
  51. }
  52. return
  53. }
  54. // GetSciHqDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
  55. func GetSciHqDataDataTimeByIndexId(indexIdList []int) (items []time.Time, err error) {
  56. if len(indexIdList) == 0 {
  57. return
  58. }
  59. o := orm.NewOrmUsingDB("data")
  60. sql := ` SELECT DISTINCT data_time FROM base_from_sci_hq_data WHERE base_from_sci_hq_index_id IN (` + utils.GetOrmInReplace(len(indexIdList)) + `) ORDER BY data_time DESC`
  61. _, err = o.Raw(sql, indexIdList).QueryRows(&items)
  62. return
  63. }
  64. func GetSciHqIndexDataByCode(indexCode string) (items []*BaseFromSciHqDataItem, err error) {
  65. var ormList []*BaseFromSciHqData
  66. items = make([]*BaseFromSciHqDataItem, 0)
  67. o := orm.NewOrmUsingDB("data")
  68. sql := ` SELECT * FROM base_from_sci_hq_data WHERE index_code=? ORDER BY data_time DESC `
  69. _, err = o.Raw(sql, indexCode).QueryRows(&ormList)
  70. if err != nil {
  71. return
  72. }
  73. for _, ormItem := range ormList {
  74. items = append(items, ormItem.ToItem())
  75. }
  76. return
  77. }
  78. func GetSciHqIndexDataCount(indexCode string) (count int, err error) {
  79. o := orm.NewOrmUsingDB("data")
  80. sql := ` SELECT COUNT(1) AS count FROM base_from_sci_hq_data WHERE index_code=? `
  81. err = o.Raw(sql, indexCode).QueryRow(&count)
  82. return
  83. }