base_from_sci99.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package data_source
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "time"
  7. )
  8. // BaseFromSci99Index 代表卓创资讯-原始指标表的结构
  9. type BaseFromSci99Index struct {
  10. BaseFromSciIndexId int `orm:"column(base_from_sci_index_id);pk" gorm:"primaryKey"` // 主键,自动递增
  11. IndexCode string // 指标编码
  12. IndexName string // 指标名称
  13. ClassifyId int // 分类Id
  14. Unit string // 单位
  15. Frequency string // 频度
  16. Describe string // 指标描述
  17. CreateTime time.Time // 创建时间
  18. ModifyTime time.Time // 修改时间
  19. StartDate time.Time `description:"开始日期"`
  20. EndDate time.Time `description:"结束日期"`
  21. LatestValue float64 `description:"最新值"`
  22. }
  23. // BaseFromSci99Data 代表卓创资讯-原始指标数据表的结构
  24. type BaseFromSci99Data struct {
  25. BaseFromSciDataId int `orm:"column(base_from_sci_data_id);pk" gorm:"primaryKey"` // 主键,自动递增
  26. BaseFromSciIndexId int // 指标id
  27. IndexCode string // 指标编码
  28. DataTime string // 数据日期
  29. Value float64 // 数据值
  30. CreateTime time.Time // 创建时间
  31. ModifyTime time.Time // 修改时间
  32. }
  33. // BaseFromSci99Classify 代表卓创资讯-原始指标分类表的结构
  34. type BaseFromSci99Classify struct {
  35. BaseFromSciClassifyId int `orm:"column(base_from_sci_classify_id);pk" gorm:"primaryKey"` // 主键,自动递增
  36. ClassifyName string // 分类名称
  37. Sort int // 排序
  38. CreateTime time.Time // 创建时间
  39. ModifyTime time.Time // 修改时间
  40. }
  41. type BaseFromSci99DataItem struct {
  42. BaseFromSciDataId int `orm:"column(base_from_sci_data_id);pk" gorm:"primaryKey"` // 主键,自动递增
  43. BaseFromSciIndexId int // 指标id
  44. IndexCode string // 指标编码
  45. DataTime string // 数据日期
  46. Value float64 // 数据值
  47. CreateTime string // 创建时间
  48. ModifyTime string // 修改时间
  49. }
  50. type BaseFromSci99IndexList struct {
  51. BaseFromSciIndexId int `orm:"column(base_from_sci_index_id);pk" gorm:"primaryKey"` // 主键,自动递增
  52. IndexCode string // 指标编码
  53. IndexName string // 指标名称
  54. ClassifyId int // 分类Id
  55. Unit string // 单位
  56. Frequency string // 频度
  57. Describe string // 指标描述
  58. CreateTime string // 创建时间
  59. ModifyTime string // 修改时间
  60. DataList []*BaseFromSci99DataItem `gorm:"-"`
  61. Paging *paging.PagingItem `description:"分页数据" gorm:"-"`
  62. }
  63. // 添加数据
  64. func AddBaseFromSci99Index(item *BaseFromSci99Index) (lastId int64, err error) {
  65. o := global.DbMap[utils.DbNameIndex]
  66. err = o.Create(item).Error
  67. if err != nil {
  68. return
  69. }
  70. lastId = int64(item.BaseFromSciIndexId)
  71. return
  72. }
  73. func AddBaseFromSci99Classify(item *BaseFromSci99Classify) (lastId int64, err error) {
  74. o := global.DbMap[utils.DbNameIndex]
  75. err = o.Create(item).Error
  76. if err != nil {
  77. return
  78. }
  79. lastId = int64(item.BaseFromSciClassifyId)
  80. return
  81. }
  82. func AddBaseFromSci99DataMulti(item []*BaseFromSci99Data) (err error) {
  83. o := global.DbMap[utils.DbNameIndex]
  84. err = o.CreateInBatches(item, utils.MultiAddNum).Error
  85. return
  86. }
  87. func GetBaseFromSci99Classify() (list []*BaseFromSci99Classify, err error) {
  88. o := global.DbMap[utils.DbNameIndex]
  89. sql := `SELECT * FROM base_from_sci99_classify `
  90. err = o.Raw(sql).Find(&list).Error
  91. return
  92. }
  93. func GetSci99Index(condition string, pars interface{}) (items []*BaseFromSci99IndexList, err error) {
  94. o := global.DbMap[utils.DbNameIndex]
  95. sql := ` SELECT * FROM base_from_sci99_index WHERE 1=1 `
  96. if condition != "" {
  97. sql += condition
  98. }
  99. sql += `ORDER BY base_from_sci_index_id ASC `
  100. err = o.Raw(sql, pars).Find(&items).Error
  101. return
  102. }
  103. func GetSci99IndexDataCount(indexCode string) (count int, err error) {
  104. o := global.DbMap[utils.DbNameIndex]
  105. sql := ` SELECT COUNT(1) AS count FROM base_from_sci99_data WHERE index_code=? `
  106. err = o.Raw(sql, indexCode).Scan(&count).Error
  107. return
  108. }
  109. func GetSci99IndexData(indexCode string, startSize, pageSize int) (items []*BaseFromSci99DataItem, err error) {
  110. o := global.DbMap[utils.DbNameIndex]
  111. sql := ` SELECT * FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
  112. err = o.Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
  113. return
  114. }
  115. func GetSci99DataMaxCount(classifyId int) (count int, err error) {
  116. o := global.DbMap[utils.DbNameIndex]
  117. sql := `SELECT MAX(t.num) AS count FROM (
  118. SELECT COUNT(1) AS num FROM base_from_icpi_index AS a
  119. INNER JOIN base_from_icpi_data AS b ON a.base_from_icpi_index_id=b.base_from_icpi_index_id
  120. WHERE a.base_from_icpi_classify_id=?
  121. GROUP BY a.base_from_icpi_index_id
  122. )AS t `
  123. err = o.Raw(sql, classifyId).Scan(&count).Error
  124. return
  125. }
  126. func GetSci99IndexDataByCode(indexCode string) (items []*BaseFromSci99DataItem, err error) {
  127. o := global.DbMap[utils.DbNameIndex]
  128. sql := ` SELECT * FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC `
  129. err = o.Raw(sql, indexCode).Find(&items).Error
  130. return
  131. }
  132. func GetSci99IndexLatestDate(indexCode string) (ModifyTime string, err error) {
  133. o := global.DbMap[utils.DbNameIndex]
  134. sql := ` SELECT modify_time FROM base_from_sci99_data WHERE index_code=? ORDER BY modify_time DESC limit 1 `
  135. err = o.Raw(sql, indexCode).Scan(&ModifyTime).Error
  136. return
  137. }