coal_data.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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 BaseFromCoalmineMapping struct {
  9. BaseFromCoalmineMappingId int `orm:"column(base_from_coalmine_mapping_id);pk" gorm:"primaryKey"`
  10. IndexName string `description:"持买单量指标名称"`
  11. IndexCode string `description:"持买单量指标编码"`
  12. CreateTime string `description:"时间"`
  13. }
  14. // GetCoalItemList 模糊查询Smm数据库指标列表
  15. func GetCoalItemList(keyword string) (items []*BaseFromCoalmineMapping, err error) {
  16. o := global.DbMap[utils.DbNameIndex]
  17. sql := "SELECT * FROM base_from_coalmine_mapping WHERE CONCAT(index_name,index_code) LIKE ? "
  18. err = o.Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
  19. return
  20. }
  21. func GetCoalCompanyMaxCount(suffix, classifyName string) (count int, err error) {
  22. o := global.DbMap[utils.DbNameIndex]
  23. sql := `SELECT
  24. COALESCE(MAX(t.num), 0) AS count
  25. FROM
  26. (
  27. SELECT
  28. COUNT( 1 ) AS num
  29. FROM
  30. base_from_coalmine_%s
  31. WHERE
  32. group_name =?
  33. GROUP BY
  34. index_name ) AS t `
  35. sql = fmt.Sprintf(sql, suffix)
  36. err = o.Raw(sql, classifyName).Scan(&count).Error
  37. return
  38. }
  39. func GetCoalJsmMaxCount(classifyName string) (count int, err error) {
  40. o := global.DbMap[utils.DbNameIndex]
  41. sql := `SELECT
  42. COALESCE(MAX(t.num), 0) AS count
  43. FROM
  44. (
  45. SELECT
  46. COUNT( 1 ) AS num
  47. FROM
  48. base_from_coalmine_jsm_index
  49. WHERE
  50. province =?
  51. GROUP BY
  52. index_name ) AS t `
  53. err = o.Raw(sql, classifyName).Scan(&count).Error
  54. return
  55. }
  56. func GetCoalCount(suffix, indexCode string) (count int, err error) {
  57. o := global.DbMap[utils.DbNameIndex]
  58. sql := `SELECT
  59. COUNT( 1 ) AS num
  60. FROM
  61. base_from_coalmine_%s
  62. WHERE
  63. index_code =? `
  64. sql = fmt.Sprintf(sql, suffix)
  65. err = o.Raw(sql, indexCode).Scan(&count).Error
  66. return
  67. }
  68. type BaseFromCoalmineIndex struct {
  69. BaseFromCoalmineCompanyIndexId int
  70. IndexName string `description:"持买单量指标名称"`
  71. IndexCode string `description:"持买单量指标编码"`
  72. DealValue string `description:"成交量"`
  73. DataTime string `description:"数据日期"`
  74. Source string `description:"来源"`
  75. Province string `description:"省份"`
  76. City string `description:"城市"`
  77. GroupName string `description:"集团名称"`
  78. Unit string `description:"单位"`
  79. Frequency string `description:"频率"`
  80. CreateTime string `description:"插入时间"`
  81. ModifyTime string `description:"修改时间"`
  82. }
  83. func (m *BaseFromCoalmineIndex) AfterFind(db *gorm.DB) (err error) {
  84. m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
  85. m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
  86. m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
  87. return
  88. }
  89. func GetBaseFromCoalIndexByCode(suffix, indexCode string) (items []*BaseFromCoalmineIndex, err error) {
  90. o := global.DbMap[utils.DbNameIndex]
  91. sql := `SELECT * FROM base_from_coalmine_%s WHERE index_code=? ORDER BY data_time DESC`
  92. sql = fmt.Sprintf(sql, suffix)
  93. err = o.Raw(sql, indexCode).Find(&items).Error
  94. return
  95. }
  96. func GetClassifyFromCoalByGroupName(suffix, groupName string) (items []*string, err error) {
  97. o := global.DbMap[utils.DbNameIndex]
  98. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_%s WHERE group_name=? `
  99. sql = fmt.Sprintf(sql, suffix)
  100. err = o.Raw(sql, groupName).Find(&items).Error
  101. return
  102. }