base_from_usda_fas.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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 GetUsdaFasIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromUsdaFasData, err error) {
  101. o := orm.NewOrmUsingDB("data")
  102. sql := ` SELECT * FROM base_from_usda_fas_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
  103. _, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
  104. return
  105. }
  106. func GetUsdaFasIndexDataByCodes(indexCode []string) (items []*BaseFromUsdaFasData, err error) {
  107. if len(indexCode) == 0 {
  108. return
  109. }
  110. o := orm.NewOrmUsingDB("data")
  111. sql := ` SELECT * FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCode)) + `) ORDER BY data_time DESC `
  112. _, err = o.Raw(sql, indexCode).QueryRows(&items)
  113. return
  114. }
  115. // GetUsdaFasByConditionAndFrequency 根据条件获取涌益咨询指标列表
  116. func GetUsdaFasByConditionAndFrequency(condition, frequency string, pars []interface{}) (items []*BaseFromUsdaFasIndex, err error) {
  117. o := orm.NewOrmUsingDB("data")
  118. sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 `
  119. if condition != "" {
  120. sql += condition
  121. }
  122. sql += ` AND frequency=?`
  123. sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id ASC`
  124. _, err = o.Raw(sql, pars, frequency).QueryRows(&items)
  125. return
  126. }
  127. func GetUsdaFasFrequencyByCondition(condition string, pars []interface{}) (items []string, err error) {
  128. sql := `SELECT DISTINCT frequency FROM base_from_usda_fas_index WHERE 1=1 `
  129. if condition != "" {
  130. sql += condition
  131. }
  132. sql += ` ORDER BY FIELD(frequency,'日度','周度','旬度','月度','季度','半年度','年度') `
  133. o := orm.NewOrmUsingDB("data")
  134. _, err = o.Raw(sql, pars...).QueryRows(&items)
  135. return
  136. }
  137. // GetUsdaFasDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
  138. func GetUsdaFasDataDataTimeByIndexId(indexIdList []int) (items []string, err error) {
  139. if len(indexIdList) == 0 {
  140. return
  141. }
  142. o := orm.NewOrmUsingDB("data")
  143. 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`
  144. _, err = o.Raw(sql, indexIdList).QueryRows(&items)
  145. return
  146. }
  147. type BaseFromUsdaFasData struct {
  148. BaseFromUsdaFasDataId int `orm:"column(base_from_usda_fas_data_id);pk"`
  149. BaseFromUsdaFasIndexId int
  150. IndexCode string
  151. DataTime string
  152. Value string
  153. CreateTime string
  154. ModifyTime string
  155. DataTimestamp int64
  156. }
  157. type BaseFromUsdaFasIndexSearchItem struct {
  158. BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"`
  159. ClassifyId int
  160. ParentClassifyId int
  161. IndexCode string
  162. IndexName string
  163. }
  164. // GetUsdaFasItemList 模糊查询UsdaFas数据库指标列表
  165. func GetUsdaFasItemList(condition string) (items []*BaseFromUsdaFasIndexSearchItem, err error) {
  166. o := orm.NewOrmUsingDB("data")
  167. sql := "SELECT * FROM base_from_usda_fas_index WHERE 1=1"
  168. if condition != "" {
  169. sql += condition
  170. }
  171. _, err = o.Raw(sql).QueryRows(&items)
  172. return
  173. }
  174. func GetUsdaFasIndexDataByCode(indexCode string) (list []*BaseFromUsdaFasData, err error) {
  175. o := orm.NewOrmUsingDB("data")
  176. sql := `SELECT * FROM base_from_usda_fas_data WHERE index_code=? `
  177. _, err = o.Raw(sql, indexCode).QueryRows(&list)
  178. return
  179. }
  180. func GetBaseFromUsdaFasIndexByIndexCode(indexCode string) (list *BaseFromUsdaFasIndex, err error) {
  181. o := orm.NewOrmUsingDB("data")
  182. sql := ` SELECT * FROM base_from_usda_fas_index WHERE index_code=? `
  183. err = o.Raw(sql, indexCode).QueryRow(&list)
  184. return
  185. }
  186. type BaseFromUsdaFasIndexType struct {
  187. Type2 string `orm:"column(type_2)"`
  188. Type3 string `orm:"column(type_3)"`
  189. }
  190. // Update 更新UsdaFas指标基础信息
  191. func (item *BaseFromUsdaFasIndex) Update(cols []string) (err error) {
  192. o := orm.NewOrmUsingDB("data")
  193. _, err = o.Update(item, cols...)
  194. return
  195. }
  196. // EditUsdaFasIndexInfoResp 新增指标的返回
  197. type EditUsdaFasIndexInfoResp struct {
  198. BaseFromUsdaFasIndexId int `description:"指标ID"`
  199. IndexCode string `description:"指标code"`
  200. }
  201. type UsdaFasIndexSource2EdbReq struct {
  202. EdbCode string
  203. EdbName string
  204. Frequency string
  205. Unit string
  206. ClassifyId int
  207. AdminId int
  208. AdminRealName string
  209. }