gl_data.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package data_manage
  2. import (
  3. "github.com/rdlucklib/rdluck_tools/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. )
  6. type GlClassify struct {
  7. BreedShortName string `orm:"column(BREED_SHORT_NAME)" description:"分类名称"`
  8. }
  9. func GetGlSurveyClassify() (items []*GlClassify, err error) {
  10. sql := ` SELECT CASE WHEN BREED_SHORT_NAME IS NULL THEN '无' ELSE BREED_SHORT_NAME END BREED_SHORT_NAME FROM mb_index_main_info GROUP BY BREED_SHORT_NAME ORDER BY BREED_SHORT_NAME ASC `
  11. o := orm.NewOrm()
  12. o.Using("gl")
  13. o.Raw(sql).QueryRows(&items)
  14. return
  15. }
  16. type GlFrequency struct {
  17. Frequency string `description:"频度:1-日度 2-周度 3-月度 4-季度 5-年度 99-无固定频率"`
  18. }
  19. func GetGlFrequencyByClassifyId(breedShortName string) (items []*GlFrequency, err error) {
  20. o := orm.NewOrm()
  21. o.Using("gl")
  22. if breedShortName == "无" {
  23. sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
  24. _, err = o.Raw(sql).QueryRows(&items)
  25. return
  26. } else {
  27. sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
  28. _, err = o.Raw(sql, breedShortName).QueryRows(&items)
  29. return
  30. }
  31. }
  32. type GlIndex struct {
  33. Id int `orm:"column(ID)"`
  34. IndexCode string `orm:"column(INDEX_CODE)"`
  35. IndexName string `orm:"column(INDEX_NAME)"`
  36. UnitName string `orm:"column(UNIT_NAME)"`
  37. FrequencyName string `orm:"column(FREQUENCY_NAME)"`
  38. UpdateTime string `orm:"column(UPDATE_TIME)"`
  39. }
  40. func GetGlIndex(breedShortName, frequency string) (items []*GlIndex, err error) {
  41. o := orm.NewOrm()
  42. o.Using("gl")
  43. if breedShortName == "无" {
  44. sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
  45. _, err = o.Raw(sql, frequency).QueryRows(&items)
  46. return
  47. } else {
  48. sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME=? AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
  49. _, err = o.Raw(sql, breedShortName, frequency).QueryRows(&items)
  50. return
  51. }
  52. }
  53. type GlIndexList struct {
  54. Id int `orm:"column(ID)"`
  55. IndexCode string `orm:"column(INDEX_CODE)"`
  56. IndexName string `orm:"column(INDEX_NAME)"`
  57. UnitName string `orm:"column(UNIT_NAME)"`
  58. FrequencyName string `orm:"column(FREQUENCY_NAME)"`
  59. UpdateTime string `orm:"column(UPDATE_TIME)"`
  60. Paging *paging.PagingItem `description:"分页数据"`
  61. DataList []*GlIndexData
  62. }
  63. type GlIndexData struct {
  64. InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
  65. DataTime string `orm:"column(DATA_DATE)" description:"值"`
  66. }
  67. func GetGlIndexData(indexCode string, startSize, pageSize int) (items []*GlIndexData, err error) {
  68. //sql := ` SELECT * FROM mb_index_main_data WHERE INDEX_CODE=? ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC LIMIT ?,?`
  69. sql := ` SELECT * FROM (
  70. SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=?
  71. ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC
  72. )AS t
  73. GROUP BY t.DATA_DATE
  74. ORDER BY t.DATA_DATE DESC LIMIT ?,? `
  75. o := orm.NewOrm()
  76. o.Using("gl")
  77. _, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
  78. return
  79. }
  80. func GetGlIndexByCode(indexCode string) (items *GlIndex, err error) {
  81. sql := ` SELECT * FROM mb_index_main_info WHERE INDEX_CODE=? `
  82. o := orm.NewOrm()
  83. o.Using("gl")
  84. err = o.Raw(sql, indexCode).QueryRow(&items)
  85. return
  86. }
  87. func GetGlIndexDataCount(indexCode string) (count int, err error) {
  88. o := orm.NewOrm()
  89. o.Using("gl")
  90. sql := `SELECT COUNT(1) AS count FROM (
  91. SELECT * FROM (
  92. SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=?
  93. ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC
  94. )AS t
  95. GROUP BY t.DATA_DATE
  96. ORDER BY t.DATA_DATE DESC
  97. )AS n `
  98. err = o.Raw(sql, indexCode).QueryRow(&count)
  99. return
  100. }