base_from_usda_fas.go 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package data_manage
  2. import (
  3. "eta/eta_api/utils"
  4. "time"
  5. "github.com/beego/beego/v2/client/orm"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. )
  8. type BaseFromUsdaFasIndex struct {
  9. BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"`
  10. ClassifyId int
  11. IndexCode string
  12. IndexName string
  13. Frequency string
  14. Unit string
  15. Sort int
  16. CreateTime time.Time
  17. ModifyTime time.Time
  18. }
  19. type BaseFromUsdaFasIndexList struct {
  20. BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"`
  21. ClassifyId int
  22. Interface string
  23. EdbInfoId int
  24. EdbUniqueCode string `description:"指标库唯一编码"`
  25. EdbClassifyId int `description:"指标库分类ID"`
  26. IndexCode string
  27. IndexName string
  28. Frequency string
  29. Unit string
  30. Sort int
  31. CreateTime string
  32. ModifyTime string
  33. EdbExist int `description:"指标库是否已添加:0-否;1-是"`
  34. DataList []*BaseFromUsdaFasData
  35. Paging *paging.PagingItem `description:"分页数据"`
  36. }
  37. type BaseFromUsdaFasIndexSearchList struct {
  38. List []*BaseFromUsdaFasIndexList
  39. Paging *paging.PagingItem `description:"分页数据"`
  40. }
  41. type UsdaFasSingleDataResp struct {
  42. BaseFromUsdaFasIndexId int
  43. ClassifyId int
  44. EdbInfoId int
  45. IndexCode string
  46. IndexName string
  47. Frequency string
  48. Unit string
  49. StartTime string
  50. CreateTime string
  51. ModifyTime string
  52. EdbExist int `description:"指标库是否已添加:0-否;1-是"`
  53. Data []*UsdaFasSingleData
  54. }
  55. type UsdaFasSingleData struct {
  56. Value string `orm:"column(value)" description:"日期"`
  57. DataTime string `orm:"column(data_time)" description:"值"`
  58. }
  59. func GetUsdaFasIndexByClassifyId(classifyId int) (items []*BaseFromUsdaFasIndex, err error) {
  60. o := orm.NewOrmUsingDB("data")
  61. sql := ` SELECT base_from_usda_fas_index_id, classify_id, index_code, index_name FROM base_from_usda_fas_index WHERE classify_id=? ORDER BY sort ASC, base_from_usda_fas_index_id ASC `
  62. _, err = o.Raw(sql, classifyId).QueryRows(&items)
  63. return
  64. }
  65. func GetUsdaFasIndex(condition string, pars interface{}) (items []*BaseFromUsdaFasIndexList, err error) {
  66. o := orm.NewOrmUsingDB("data")
  67. sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 `
  68. if condition != "" {
  69. sql += condition
  70. }
  71. sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id asc`
  72. _, err = o.Raw(sql, pars).QueryRows(&items)
  73. return
  74. }
  75. func GetUsdaFasIndexPage(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromUsdaFasIndexList, err error) {
  76. o := orm.NewOrmUsingDB("data")
  77. sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 `
  78. if condition != "" {
  79. sql += condition
  80. }
  81. sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id asc LIMIT ?,?`
  82. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  83. return
  84. }
  85. func GetUsdaFasIndexPageCount(condition string, pars interface{}) (count int, err error) {
  86. o := orm.NewOrmUsingDB("data")
  87. sql := ` SELECT COUNT(1) AS count FROM base_from_usda_fas_index WHERE 1=1 `
  88. if condition != "" {
  89. sql += condition
  90. }
  91. err = o.Raw(sql, pars).QueryRow(&count)
  92. return
  93. }
  94. func GetUsdaFasIndexDataCount(indexCode string) (count int, err error) {
  95. o := orm.NewOrmUsingDB("data")
  96. sql := ` SELECT COUNT(1) AS count FROM base_from_usda_fas_data WHERE index_code=? `
  97. err = o.Raw(sql, indexCode).QueryRow(&count)
  98. return
  99. }
  100. func GetUsdaFasIndexDataByDataTime(indexCodes []string, startDate, endDate string) (items []*BaseFromUsdaFasData, err error) {
  101. o := orm.NewOrmUsingDB("data")
  102. sql := ` SELECT * FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCodes)) + `) and data_time >=? and data_time <? ORDER BY data_time DESC `
  103. _, err = o.Raw(sql, indexCodes, startDate, endDate).QueryRows(&items)
  104. return
  105. }
  106. func GetUsdaFasIndexDataTimePageByCodes(indexCodes []string, startSize, pageSize int) (dataTimes []string, err error) {
  107. o := orm.NewOrmUsingDB("data")
  108. sql := ` SELECT data_time FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCodes)) + `) GROUP BY data_time ORDER BY data_time DESC LIMIT ?,? `
  109. _, err = o.Raw(sql, indexCodes, startSize, pageSize).QueryRows(&dataTimes)
  110. return
  111. }
  112. func GetUsdaFasIndexDataTimePageCount(indexCodes []string) (count int, err error) {
  113. o := orm.NewOrmUsingDB("data")
  114. sql := ` SELECT COUNT(1) AS count FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCodes)) + `) GROUP BY data_time `
  115. err = o.Raw(sql, indexCodes).QueryRow(&count)
  116. return
  117. }
  118. func GetUsdaFasIndexDataByCodes(indexCode []string) (items []*BaseFromUsdaFasData, err error) {
  119. if len(indexCode) == 0 {
  120. return
  121. }
  122. o := orm.NewOrmUsingDB("data")
  123. sql := ` SELECT * FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCode)) + `) ORDER BY data_time DESC `
  124. _, err = o.Raw(sql, indexCode).QueryRows(&items)
  125. return
  126. }
  127. // GetUsdaFasByConditionAndFrequency 根据条件获取涌益咨询指标列表
  128. func GetUsdaFasByConditionAndFrequency(condition, frequency string, pars []interface{}) (items []*BaseFromUsdaFasIndex, err error) {
  129. o := orm.NewOrmUsingDB("data")
  130. sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 `
  131. if condition != "" {
  132. sql += condition
  133. }
  134. sql += ` AND frequency=?`
  135. sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id ASC`
  136. _, err = o.Raw(sql, pars, frequency).QueryRows(&items)
  137. return
  138. }
  139. func GetUsdaFasFrequencyByCondition(condition string, pars []interface{}) (items []string, err error) {
  140. sql := `SELECT DISTINCT frequency FROM base_from_usda_fas_index WHERE 1=1 `
  141. if condition != "" {
  142. sql += condition
  143. }
  144. sql += ` ORDER BY FIELD(frequency,'日度','周度','旬度','月度','季度','半年度','年度') `
  145. o := orm.NewOrmUsingDB("data")
  146. _, err = o.Raw(sql, pars...).QueryRows(&items)
  147. return
  148. }
  149. // GetUsdaFasDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
  150. func GetUsdaFasDataDataTimeByIndexId(indexIdList []int) (items []string, err error) {
  151. if len(indexIdList) == 0 {
  152. return
  153. }
  154. o := orm.NewOrmUsingDB("data")
  155. sql := ` SELECT DISTINCT data_time FROM base_from_usda_fas_data WHERE base_from_usda_fas_index_id IN (` + utils.GetOrmInReplace(len(indexIdList)) + `) ORDER BY data_time DESC`
  156. _, err = o.Raw(sql, indexIdList).QueryRows(&items)
  157. return
  158. }
  159. type BaseFromUsdaFasData struct {
  160. BaseFromUsdaFasDataId int `orm:"column(base_from_usda_fas_data_id);pk"`
  161. BaseFromUsdaFasIndexId int
  162. IndexCode string
  163. DataTime string
  164. Value string
  165. CreateTime string
  166. ModifyTime string
  167. DataTimestamp int64
  168. }
  169. type BaseFromUsdaFasIndexSearchItem struct {
  170. BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"`
  171. ClassifyId int
  172. ParentClassifyId int
  173. IndexCode string
  174. IndexName string
  175. }
  176. // GetUsdaFasItemList 模糊查询UsdaFas数据库指标列表
  177. func GetUsdaFasItemList(condition string) (items []*BaseFromUsdaFasIndexSearchItem, err error) {
  178. o := orm.NewOrmUsingDB("data")
  179. sql := "SELECT * FROM base_from_usda_fas_index WHERE 1=1"
  180. if condition != "" {
  181. sql += condition
  182. }
  183. _, err = o.Raw(sql).QueryRows(&items)
  184. return
  185. }
  186. func GetUsdaFasIndexDataByCode(indexCode string) (list []*BaseFromUsdaFasData, err error) {
  187. o := orm.NewOrmUsingDB("data")
  188. sql := `SELECT * FROM base_from_usda_fas_data WHERE index_code=? `
  189. _, err = o.Raw(sql, indexCode).QueryRows(&list)
  190. return
  191. }
  192. func GetBaseFromUsdaFasIndexByIndexCode(indexCode string) (list *BaseFromUsdaFasIndex, err error) {
  193. o := orm.NewOrmUsingDB("data")
  194. sql := ` SELECT * FROM base_from_usda_fas_index WHERE index_code=? `
  195. err = o.Raw(sql, indexCode).QueryRow(&list)
  196. return
  197. }
  198. type BaseFromUsdaFasIndexType struct {
  199. Type2 string `orm:"column(type_2)"`
  200. Type3 string `orm:"column(type_3)"`
  201. }
  202. // Update 更新UsdaFas指标基础信息
  203. func (item *BaseFromUsdaFasIndex) Update(cols []string) (err error) {
  204. o := orm.NewOrmUsingDB("data")
  205. _, err = o.Update(item, cols...)
  206. return
  207. }
  208. // EditUsdaFasIndexInfoResp 新增指标的返回
  209. type EditUsdaFasIndexInfoResp struct {
  210. BaseFromUsdaFasIndexId int `description:"指标ID"`
  211. IndexCode string `description:"指标code"`
  212. }
  213. type UsdaFasIndexSource2EdbReq struct {
  214. EdbCode string
  215. EdbName string
  216. Frequency string
  217. Unit string
  218. ClassifyId int
  219. AdminId int
  220. AdminRealName string
  221. }