edb_data_hisugar.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "gorm.io/gorm"
  7. )
  8. type HisugarData struct {
  9. InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
  10. DataTime string `orm:"column(DATA_DATE)" description:"值"`
  11. }
  12. func GetEdbDataHisugarMaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
  13. //o := orm.NewOrmUsingDB("data")
  14. sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_hisugar WHERE edb_code=? `
  15. //err = o.Raw(sql, edbCode).QueryRow(&minDate, &maxDate)
  16. var maxAndMinDate MaxAndMinDate
  17. err = global.DbMap[utils.DbNameIndex].Raw(sql, edbCode).First(&maxAndMinDate).Error
  18. if err != nil {
  19. return
  20. }
  21. minDate = maxAndMinDate.MinDate.Format(utils.FormatDate)
  22. maxDate = maxAndMinDate.MaxDate.Format(utils.FormatDate)
  23. return
  24. }
  25. type BaseFromHisugarIndexItem struct {
  26. //BaseFromSciIndexId int `orm:"column(base_from_hisugar_index_id);pk"` // 主键,自动递增
  27. BaseFromSciIndexId int `gorm:"column:base_from_hisugar_index_id;primaryKey"` // 主键,自动递增
  28. IndexCode string // 指标编码
  29. IndexName string // 指标名称
  30. ClassifyId int // 分类Id
  31. Unit string // 单位
  32. Frequency string // 频度
  33. Describe string // 指标描述
  34. CreateTime string // 创建时间
  35. ModifyTime string // 修改时间
  36. }
  37. // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
  38. func (m *BaseFromHisugarIndexItem) AfterFind(db *gorm.DB) (err error) {
  39. m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
  40. m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
  41. return
  42. }
  43. func (m *BaseFromHisugarIndexItem) ConvDateTimeStr() {
  44. m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
  45. m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
  46. return
  47. }
  48. // GetBaseInfoFromHisugarByIndexCode 获取指标信息
  49. func GetBaseInfoFromHisugarByIndexCode(indexCode string) (item *BaseFromHisugarIndexItem, err error) {
  50. //o := orm.NewOrmUsingDB("data")
  51. sql := `SELECT * FROM base_from_hisugar_index WHERE index_code=? `
  52. sql = fmt.Sprintf(sql)
  53. //err = o.Raw(sql, indexCode).QueryRow(&item)
  54. err = global.DbMap[utils.DbNameIndex].Raw(sql, indexCode).First(&item).Error
  55. if err != nil {
  56. return
  57. }
  58. item.ConvDateTimeStr()
  59. return
  60. }