gl_data.go 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. )
  7. type GlClassify struct {
  8. BreedShortName string `orm:"column(BREED_SHORT_NAME)" description:"分类名称"`
  9. }
  10. func GetGlSurveyClassify() (items []*GlClassify, err error) {
  11. //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 `
  12. //o := orm.NewOrmUsingDB("gl")
  13. //o.Raw(sql).QueryRows(&items)
  14. 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 `
  15. err = global.DmSQL["gl"].Raw(sql).Find(&items).Error
  16. return
  17. }
  18. type GlFrequency struct {
  19. Frequency string `description:"频度:1-日度 2-周度 3-月度 4-季度 5-年度 99-无固定频率"`
  20. }
  21. func GetGlFrequencyByClassifyId(breedShortName string) (items []*GlFrequency, err error) {
  22. //o := orm.NewOrmUsingDB("gl")
  23. //if breedShortName == "无" {
  24. // 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 `
  25. // _, err = o.Raw(sql).QueryRows(&items)
  26. // return
  27. //} else {
  28. // sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
  29. // _, err = o.Raw(sql, breedShortName).QueryRows(&items)
  30. // return
  31. //}
  32. if breedShortName == "无" {
  33. 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 `
  34. err = global.DmSQL["gl"].Raw(sql).Find(&items).Error
  35. return
  36. } else {
  37. //sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
  38. //_, err = o.Raw(sql, breedShortName).QueryRows(&items)
  39. sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
  40. err = global.DmSQL["gl"].Raw(sql, breedShortName).Find(&items).Error
  41. return
  42. }
  43. }
  44. type GlIndex struct {
  45. Id int `orm:"column(ID)"`
  46. IndexCode string `orm:"column(INDEX_CODE)"`
  47. IndexName string `orm:"column(INDEX_NAME)"`
  48. UnitName string `orm:"column(UNIT_NAME)"`
  49. FrequencyName string `orm:"column(FREQUENCY_NAME)"`
  50. UpdateTime string `orm:"column(UPDATE_TIME)"`
  51. }
  52. func GetGlIndex(breedShortName, frequency string) (items []*GlIndex, err error) {
  53. //o := orm.NewOrmUsingDB("gl")
  54. //if breedShortName == "无" {
  55. // sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
  56. // _, err = o.Raw(sql, frequency).QueryRows(&items)
  57. // return
  58. //} else {
  59. // sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME=? AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
  60. // _, err = o.Raw(sql, breedShortName, frequency).QueryRows(&items)
  61. // return
  62. //}
  63. if breedShortName == "无" {
  64. sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
  65. err = global.DmSQL["gl"].Raw(sql, frequency).Find(&items).Error
  66. return
  67. } else {
  68. sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME=? AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
  69. err = global.DmSQL["gl"].Raw(sql, breedShortName, frequency).Find(&items).Error
  70. return
  71. }
  72. }
  73. func GetGlFrequency(productName string) (items []*string, err error) {
  74. //sql := `SELECT DISTINCT FREQUENCY_NAME FROM mb_index_main_info WHERE BREED_SHORT_NAME=? ORDER BY FIELD(FREQUENCY_NAME,'日度','周度','旬度','月度','季度','半年','年度') `
  75. //o := orm.NewOrmUsingDB("gl")
  76. //_, err = o.Raw(sql, productName).QueryRows(&items)
  77. sql := `SELECT DISTINCT FREQUENCY_NAME FROM mb_index_main_info WHERE BREED_SHORT_NAME=? ORDER BY FIELD(FREQUENCY_NAME,'日度','周度','旬度','月度','季度','半年','年度') `
  78. err = global.DmSQL["gl"].Raw(sql, productName).Find(&items).Error
  79. return
  80. }
  81. type GlIndexList struct {
  82. Id int `orm:"column(ID)"`
  83. IndexCode string `orm:"column(INDEX_CODE)"`
  84. IndexName string `orm:"column(INDEX_NAME)"`
  85. UnitName string `orm:"column(UNIT_NAME)"`
  86. FrequencyName string `orm:"column(FREQUENCY_NAME)"`
  87. UpdateTime string `orm:"column(UPDATE_TIME)"`
  88. Paging *paging.PagingItem `description:"分页数据"`
  89. DataList []*GlIndexData
  90. }
  91. type GlIndexData struct {
  92. InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
  93. DataTime string `orm:"column(DATA_DATE)" description:"值"`
  94. }
  95. func GetGlIndexData(indexCode string, startSize, pageSize int) (items []*GlIndexData, err error) {
  96. //sql := ` SELECT * FROM mb_index_main_data WHERE INDEX_CODE=? ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC LIMIT ?,?`
  97. //sql := ` SELECT * FROM (
  98. //SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
  99. //ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC
  100. //)AS t
  101. //GROUP BY t.DATA_DATE
  102. //ORDER BY t.DATA_DATE DESC LIMIT ?,? `
  103. //o := orm.NewOrmUsingDB("gl")
  104. //_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
  105. sql := ` SELECT * FROM (
  106. SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
  107. ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC
  108. )AS t
  109. GROUP BY t.DATA_DATE
  110. ORDER BY t.DATA_DATE DESC LIMIT ?,? `
  111. err = global.DmSQL["gl"].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
  112. return
  113. }
  114. func GetGlIndexByCode(indexCode string) (items *GlIndex, err error) {
  115. //sql := ` SELECT * FROM mb_index_main_info WHERE INDEX_CODE=? `
  116. //o := orm.NewOrmUsingDB("gl")
  117. //err = o.Raw(sql, indexCode).QueryRow(&items)
  118. sql := ` SELECT * FROM mb_index_main_info WHERE INDEX_CODE=? `
  119. err = global.DmSQL["gl"].Raw(sql, indexCode).First(&items).Error
  120. return
  121. }
  122. func GetGlIndexDataCount(indexCode string) (count int, err error) {
  123. //o := orm.NewOrmUsingDB("gl")
  124. //sql := `SELECT COUNT(1) AS count FROM (
  125. // SELECT * FROM (
  126. // SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
  127. // ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC
  128. // )AS t
  129. // GROUP BY t.DATA_DATE
  130. // ORDER BY t.DATA_DATE DESC
  131. // )AS n `
  132. //err = o.Raw(sql, indexCode).QueryRow(&count)
  133. sql := `SELECT COUNT(1) AS count FROM (
  134. SELECT * FROM (
  135. SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
  136. ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC
  137. )AS t
  138. GROUP BY t.DATA_DATE
  139. ORDER BY t.DATA_DATE DESC
  140. )AS n `
  141. err = global.DmSQL["gl"].Raw(sql, indexCode).Scan(&count).Error
  142. return
  143. }
  144. type GlSearchIndex struct {
  145. Id int `orm:"column(ID)"`
  146. IndexCode string `orm:"column(INDEX_CODE)"`
  147. IndexName string `orm:"column(INDEX_NAME)"`
  148. UnitName string `orm:"column(UNIT_NAME)"`
  149. FrequencyName string `orm:"column(FREQUENCY_NAME)"`
  150. UpdateTime string `orm:"column(UPDATE_TIME)"`
  151. BreedShortName string `orm:"column(BREED_SHORT_NAME)"`
  152. }
  153. // GetGlItemList 模糊查询隆众数据库指标列表
  154. func GetGlItemList(keyword string) (items []*GlSearchIndex, err error) {
  155. //o := orm.NewOrmUsingDB("gl")
  156. //sql := "SELECT * FROM mb_index_main_info WHERE CONCAT(INDEX_NAME,INDEX_CODE) LIKE ? "
  157. //_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
  158. sql := "SELECT * FROM mb_index_main_info WHERE CONCAT(INDEX_NAME,INDEX_CODE) LIKE ? "
  159. err = global.DmSQL["gl"].Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
  160. return
  161. }
  162. func GetGlDataMaxCount(classifyName string) (count int, err error) {
  163. //o := orm.NewOrmUsingDB("gl")
  164. //sql := `SELECT MAX(t.num) AS count FROM (
  165. // SELECT COUNT(1) AS num FROM mb_index_main_info AS a
  166. // INNER JOIN mb_index_main_data AS b ON a.INDEX_CODE=b.INDEX_CODE
  167. // WHERE a.BREED_SHORT_NAME=?
  168. // GROUP BY a.INDEX_CODE
  169. // )AS t `
  170. //err = o.Raw(sql, classifyName).QueryRow(&count)
  171. sql := `SELECT MAX(t.num) AS count FROM (
  172. SELECT COUNT(1) AS num FROM mb_index_main_info AS a
  173. INNER JOIN mb_index_main_data AS b ON a.INDEX_CODE=b.INDEX_CODE
  174. WHERE a.BREED_SHORT_NAME=?
  175. GROUP BY a.INDEX_CODE
  176. )AS t `
  177. err = global.DmSQL["gl"].Raw(sql, classifyName).Scan(&count).Error
  178. return
  179. }
  180. func GetGlDataByCode(indexCode string) (items []*GlIndexData, err error) {
  181. // o := orm.NewOrmUsingDB("gl")
  182. // sql := `SELECT
  183. // *
  184. //FROM
  185. // ( SELECT * FROM mb_index_main_data WHERE INDEX_CODE = ? GROUP BY UPDATE_TIME DESC, DATA_DATE DESC ) a
  186. //GROUP BY
  187. // a.DATA_DATE DESC `
  188. // _, err = o.Raw(sql, indexCode).QueryRows(&items)
  189. sql := `SELECT
  190. *
  191. FROM
  192. ( SELECT * FROM mb_index_main_data WHERE INDEX_CODE = ? GROUP BY UPDATE_TIME DESC, DATA_DATE DESC ) a
  193. GROUP BY
  194. a.DATA_DATE DESC `
  195. err = global.DmSQL["gl"].Raw(sql, indexCode).Find(&items).Error
  196. return
  197. }