base_from_sci_hq_data.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. type BaseFromSciHqData struct {
  8. SciHqDataId int `orm:"column(sci_hq_data_id);pk" gorm:"primaryKey"`
  9. BaseFromSciHqIndexId int `description:"指标id"`
  10. IndexCode string `description:"指标编码"`
  11. DataTime string `description:"数据日期"`
  12. Value float64 `description:"数据值"`
  13. CreateTime time.Time `description:"创建时间"`
  14. ModifyTime time.Time `description:"修改时间"`
  15. DataTimestamp int64 `description:"数据时间戳"`
  16. }
  17. // GetSciHqDataByIndexId 根据指标id获取指标数据
  18. func GetSciHqDataByIndexId(indexId int) (items []*BaseFromSciHqData, err error) {
  19. o := global.DbMap[utils.DbNameIndex]
  20. sql := ` SELECT * FROM base_from_sci_hq_data WHERE base_from_sci_hq_index_id=? ORDER BY data_time DESC`
  21. err = o.Raw(sql, indexId).Find(&items).Error
  22. return
  23. }
  24. // GetSciHqDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
  25. func GetSciHqDataDataTimeByIndexId(indexIdList []int) (items []string, err error) {
  26. if len(indexIdList) == 0 {
  27. return
  28. }
  29. o := global.DbMap[utils.DbNameIndex]
  30. 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`
  31. err = o.Raw(sql, indexIdList).Find(&items).Error
  32. if err != nil {
  33. return
  34. }
  35. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  36. for i := range items {
  37. items[i] = utils.GormDateStrToDateStr(items[i])
  38. }
  39. }
  40. return
  41. }
  42. func GetSciHqIndexDataByCode(indexCode string) (items []*BaseFromSciHqData, err error) {
  43. o := global.DbMap[utils.DbNameIndex]
  44. sql := ` SELECT * FROM base_from_sci_hq_data WHERE index_code=? ORDER BY data_time DESC `
  45. err = o.Raw(sql, indexCode).Find(&items).Error
  46. return
  47. }
  48. func GetSciHqIndexDataCount(indexCode string) (count int, err error) {
  49. o := global.DbMap[utils.DbNameIndex]
  50. sql := ` SELECT COUNT(1) AS count FROM base_from_sci_hq_data WHERE index_code=? `
  51. err = o.Raw(sql, indexCode).Scan(&count).Error
  52. return
  53. }