base_from_sci_hq_data.go 2.3 KB

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