icpi.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. package data_source
  2. import (
  3. "eta_gn/eta_api/global"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "time"
  6. )
  7. //type BaseFromIcpiIndex struct {
  8. // BaseFromIcpiIndexId int `orm:"column(base_from_icpi_index_id);pk"`
  9. // BaseFromIcpiClassifyId int `description:"分类id"`
  10. // IndexCode string `description:"指标编码"`
  11. // IndexName string `description:"指标名称"`
  12. // Frequency string `description:"频度"`
  13. // StartDate time.Time `description:"开始日期"`
  14. // EndDate time.Time `description:"结束日期"`
  15. // CreateTime time.Time `description:"创建时间"`
  16. // ModifyTime time.Time `description:"修改时间"`
  17. //}
  18. type BaseFromIcpiIndex struct {
  19. BaseFromIcpiIndexId int `gorm:"primaryKey;column:base_from_icpi_index_id;type:int(11);not null"`
  20. BaseFromIcpiClassifyId int `gorm:"column:base_from_icpi_classify_id;type:int(11);default:0"` // 分类
  21. IndexCode string `gorm:"unique;column:index_code;type:varchar(100);default:''"` // 指标编码
  22. IndexName string `gorm:"column:index_name;type:varchar(100);default:''"` // 指标名称
  23. Frequency string `gorm:"column:frequency;type:varchar(20);default:''"` // 频度
  24. Unit string `gorm:"column:unit;type:varchar(20);default:''"` // 单位
  25. StartDate time.Time `gorm:"column:start_date;type:date"` // 开始日期
  26. EndDate time.Time `gorm:"column:end_date;type:date"` // 结束日期
  27. CreateTime time.Time `gorm:"column:create_time;type:datetime"` // 创建时间
  28. ModifyTime time.Time `gorm:"column:modify_time;type:datetime"` // 修改时间
  29. }
  30. //type BaseFromIcpiData struct {
  31. // BaseFromIcpiDataId int `orm:"column(base_from_icpi_data_id);pk"`
  32. // BaseFromIcpiIndexId int `description:"指标id"`
  33. // IndexCode string `description:"指标编码"`
  34. // DataTime string `description:"日期"`
  35. // Value string `description:"值"`
  36. // CreateTime time.Time `description:"创建时间"`
  37. // ModifyTime time.Time `description:"修改时间"`
  38. //}
  39. type BaseFromIcpiData struct {
  40. BaseFromIcpiDataId int `gorm:"primaryKey;column:base_from_icpi_data_id;type:int(11);not null"`
  41. BaseFromIcpiIndexId int `gorm:"index:idx_base_from_icpi_index_id;column:base_from_icpi_index_id;type:int(11);default:0"` // 指标id
  42. IndexCode string `gorm:"uniqueIndex:idex_code_date;index:idx_index_code;column:index_code;type:varchar(100);default:''"` // 指标编码
  43. DataTime string `gorm:"uniqueIndex:idex_code_date;column:data_time;type:date"` // 数据日期
  44. Value float64 `gorm:"column:value;type:double"` // 数据值
  45. CreateTime time.Time `gorm:"column:create_time;type:datetime"` // 创建时间
  46. ModifyTime time.Time `gorm:"column:modify_time;type:datetime"` // 修改时间
  47. }
  48. //type BaseFromIcpiClassify struct {
  49. // BaseFromIcpiClassifyId int `orm:"column(base_from_icpi_classify_id);pk"`
  50. // ClassifyName string `description:"分类名称"`
  51. // ClassifyNameEn string `description:"英文名称"`
  52. // ParentId int `description:"上级id"`
  53. // CreateTime string `description:"创建时间"`
  54. // ModifyTime string `description:"修改时间"`
  55. //}
  56. type BaseFromIcpiClassify struct {
  57. BaseFromIcpiClassifyId int `gorm:"primaryKey;column:base_from_icpi_classify_id;type:int(11);not null"`
  58. ClassifyName string `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
  59. ClassifyNameEn string `gorm:"column:classify_name_en;type:varchar(255);default:''"` // 英文名称
  60. ParentId int `gorm:"column:parent_id;type:int(11) unsigned;default:0"` // 上级id
  61. ModifyTime string `gorm:"column:modify_time;type:datetime"` // 修改时间
  62. CreateTime string `gorm:"column:create_time;type:datetime"` // 创建时间
  63. }
  64. func (obj *BaseFromIcpiIndex) GetBaseFromIcpiClassifyAll() (list []*BaseFromIcpiClassify, err error) {
  65. //o := orm.NewOrmUsingDB("data")
  66. sql := `SELECT * FROM base_from_icpi_classify `
  67. //_, err = o.Raw(sql).QueryRows(&list)
  68. err = global.DmSQL["data"].Raw(sql).Find(&list).Error
  69. return
  70. }
  71. //type BaseFromIcpiDataView struct {
  72. // BaseFromIcpiDataId int `orm:"column(base_from_icpi_data_id);pk"`
  73. // BaseFromIcpiIndexId int `description:"指标id"`
  74. // IndexCode string `description:"指标编码"`
  75. // DataTime string `description:"日期"`
  76. // Value string `description:"值"`
  77. // CreateTime time.Time `description:"创建时间"`
  78. // ModifyTime time.Time `description:"修改时间"`
  79. //}
  80. type BaseFromIcpiDataView struct {
  81. BaseFromIcpiDataId int `gorm:"primaryKey;column:base_from_icpi_data_id;type:int(11);not null"`
  82. BaseFromIcpiIndexId int `gorm:"index:idx_base_from_icpi_index_id;column:base_from_icpi_index_id;type:int(11);default:0"` // 指标id
  83. IndexCode string `gorm:"uniqueIndex:idex_code_date;index:idx_index_code;column:index_code;type:varchar(100);default:''"` // 指标编码
  84. DataTime string `gorm:"uniqueIndex:idex_code_date;column:data_time;type:date"` // 数据日期
  85. Value string `gorm:"column:value;type:double"` // 数据值
  86. CreateTime time.Time `gorm:"column:create_time;type:datetime"` // 创建时间
  87. ModifyTime time.Time `gorm:"column:modify_time;type:datetime"` // 修改时间
  88. }
  89. //type BaseFromIcpiIndexView struct {
  90. // BaseFromIcpiIndexId int `description:"指标id"`
  91. // BaseFromIcpiClassifyId int `description:"分类id"`
  92. // IndexCode string `description:"指标编码"`
  93. // IndexName string `description:"指标名称"`
  94. // Frequency string `description:"频度"`
  95. // Unit string `description:"单位"`
  96. // StartDate string `description:"开始日期"`
  97. // EndDate string `description:"结束日期"`
  98. // CreateTime string `description:"创建时间"`
  99. // ModifyTime string `description:"修改时间"`
  100. // DataList []*BaseFromIcpiDataView
  101. // Paging *paging.PagingItem `description:"分页数据"`
  102. //}
  103. type BaseFromIcpiIndexView struct {
  104. BaseFromIcpiIndexId int `gorm:"primaryKey;column:base_from_icpi_index_id;type:int(11);not null"`
  105. BaseFromIcpiClassifyId int `gorm:"column:base_from_icpi_classify_id;type:int(11);default:0"` // 分类
  106. IndexCode string `gorm:"unique;column:index_code;type:varchar(100);default:''"` // 指标编码
  107. IndexName string `gorm:"column:index_name;type:varchar(100);default:''"` // 指标名称
  108. Frequency string `gorm:"column:frequency;type:varchar(20);default:''"` // 频度
  109. Unit string `gorm:"column:unit;type:varchar(20);default:''"` // 单位
  110. StartDate string `gorm:"column:start_date;type:date"` // 开始日期
  111. EndDate string `gorm:"column:end_date;type:date"` // 结束日期
  112. CreateTime string `gorm:"column:create_time;type:datetime"` // 创建时间
  113. ModifyTime string `gorm:"column:modify_time;type:datetime"` // 修改时间
  114. DataList []*BaseFromIcpiDataView `gorm:"-"`
  115. Paging *paging.PagingItem `description:"分页数据" gorm:"-"`
  116. }
  117. func (obj *BaseFromIcpiIndex) GetIcpiIndex(condition string, pars []interface{}) (items []*BaseFromIcpiIndexView, err error) {
  118. //o := orm.NewOrmUsingDB("data")
  119. sql := ` SELECT * FROM base_from_icpi_index WHERE 1=1 `
  120. if condition != "" {
  121. sql += condition
  122. }
  123. sql += `ORDER BY base_from_icpi_index_id ASC `
  124. //_, err = o.Raw(sql, pars).QueryRows(&items)
  125. err = global.DmSQL["data"].Raw(sql, pars...).Find(&items).Error
  126. return
  127. }
  128. func (obj *BaseFromIcpiIndex) GetIcpiIndexDataCount(indexCode string) (count int, err error) {
  129. //o := orm.NewOrmUsingDB("data")
  130. sql := ` SELECT COUNT(1) AS count FROM base_from_icpi_data WHERE index_code=? `
  131. //err = o.Raw(sql, indexCode).QueryRow(&count)
  132. err = global.DmSQL["data"].Raw(sql, indexCode).Scan(&count).Error
  133. return
  134. }
  135. func (obj *BaseFromIcpiIndex) GetIcpiIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromIcpiDataView, err error) {
  136. //o := orm.NewOrmUsingDB("data")
  137. sql := ` SELECT * FROM base_from_icpi_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
  138. //_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
  139. err = global.DmSQL["data"].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
  140. return
  141. }
  142. func (obj *BaseFromIcpiIndex) GetIcpiDataMaxCount(classifyId int) (count int, err error) {
  143. //o := orm.NewOrmUsingDB("data")
  144. sql := `SELECT MAX(t.num) AS count FROM (
  145. SELECT COUNT(1) AS num FROM base_from_icpi_index AS a
  146. INNER JOIN base_from_icpi_data AS b ON a.base_from_icpi_index_id=b.base_from_icpi_index_id
  147. WHERE a.base_from_icpi_classify_id=?
  148. GROUP BY a.base_from_icpi_index_id
  149. )AS t `
  150. //err = o.Raw(sql, classifyId).QueryRow(&count)
  151. err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
  152. return
  153. }
  154. func (obj *BaseFromIcpiIndex) GetIcpiIndexDataByCode(indexCode string) (items []*BaseFromIcpiDataView, err error) {
  155. //o := orm.NewOrmUsingDB("data")
  156. sql := ` SELECT * FROM base_from_icpi_data WHERE index_code=? ORDER BY data_time DESC `
  157. //_, err = o.Raw(sql, indexCode).QueryRows(&items)
  158. err = global.DmSQL["data"].Raw(sql, indexCode).Find(&items).Error
  159. return
  160. }