guagnzhouqihuo.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package data_source
  2. import (
  3. "eta/eta_api/controllers"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/data_source"
  6. )
  7. // 广州期货交易所
  8. type DataSourceController struct {
  9. controllers.BaseAuthController
  10. }
  11. // ComTradeCountryList
  12. // @Title 获取广州期货交易所分类
  13. // @Description 获取广州期货交易所分类
  14. // @Success 200 {object} []data_manage.ComTradeCountryItem
  15. // @router /gfex/classify/list [get]
  16. func (this *DataSourceController) GfexClassifyList() {
  17. br := new(models.BaseResponse).Init()
  18. defer func() {
  19. this.Data["json"] = br
  20. this.ServeJSON()
  21. }()
  22. sysUser := this.SysUser
  23. if sysUser == nil {
  24. br.Msg = "请登录"
  25. br.ErrMsg = "请登录,SysUser Is Empty"
  26. br.Ret = 408
  27. return
  28. }
  29. gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
  30. classifyList, err := gzqhObj.GetBaseFromTradeGuangzhouClassifyAll()
  31. if err != nil {
  32. br.Msg = "获取分类失败"
  33. br.ErrMsg = "获取分类失败,Err:" + err.Error()
  34. return
  35. }
  36. classifyMap := make(map[int][]*data_source.BaseFromTradeGuangzhouClassifyView)
  37. for _, v := range classifyList {
  38. if v.ParentId == 0 {
  39. continue
  40. }
  41. if items, ok := classifyMap[v.ParentId]; !ok {
  42. list := make([]*data_source.BaseFromTradeGuangzhouClassifyView, 0)
  43. list = append(list, v)
  44. classifyMap[v.ParentId] = list
  45. } else {
  46. items = append(items, v)
  47. classifyMap[v.ParentId] = items
  48. }
  49. }
  50. classifyItems := make([]*data_source.BaseFromTradeGuangzhouClassifyView, 0)
  51. for _, v := range classifyList {
  52. if v.ParentId == 0 {
  53. v.Children = classifyMap[v.BaseFromTradeGuangzhouClassifyId]
  54. classifyItems = append(classifyItems, v)
  55. }
  56. }
  57. br.Ret = 200
  58. br.Success = true
  59. br.Msg = "获取成功"
  60. br.Data = classifyItems
  61. }
  62. // ComTradeCountryList
  63. // @Title 获取广州期货交易所数据最大日期
  64. // @Description 获取广州期货交易所数据最大日期
  65. // @Success 200 {object} []data_source.ComTradeCountryItem
  66. // @router /gfex/max/date [get]
  67. func (this *DataSourceController) GfexMaxDate() {
  68. br := new(models.BaseResponse).Init()
  69. defer func() {
  70. this.Data["json"] = br
  71. this.ServeJSON()
  72. }()
  73. sysUser := this.SysUser
  74. if sysUser == nil {
  75. br.Msg = "请登录"
  76. br.ErrMsg = "请登录,SysUser Is Empty"
  77. br.Ret = 408
  78. return
  79. }
  80. gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
  81. maxDate, err := gzqhObj.GetBaseFromTradeGuangzhouMaxDate()
  82. if err != nil {
  83. br.ErrMsg = "获取最新日期失败,Err:" + err.Error()
  84. br.Msg = "获取最新日期失败"
  85. return
  86. }
  87. br.Ret = 200
  88. br.Success = true
  89. br.Msg = "获取成功"
  90. br.Data = maxDate
  91. }
  92. // ComTradeCountryList
  93. // @Title 获取广州期货交易所-分类下合约
  94. // @Description 获取广州期货交易所-分类下合约
  95. // @Param BaseFromTradeGuangzhouClassifyId query int true "分类id"
  96. // @Param TradeDate query string true "日期"
  97. // @Success 200 {object} []data_source.BaseFromTradeGuangzhouContract
  98. // @router /gfex/contract [get]
  99. func (this *DataSourceController) GfexContract() {
  100. br := new(models.BaseResponse).Init()
  101. defer func() {
  102. this.Data["json"] = br
  103. this.ServeJSON()
  104. }()
  105. sysUser := this.SysUser
  106. if sysUser == nil {
  107. br.Msg = "请登录"
  108. br.ErrMsg = "请登录,SysUser Is Empty"
  109. br.Ret = 408
  110. return
  111. }
  112. baseFromTradeGuangzhouClassifyId, _ := this.GetInt("BaseFromTradeGuangzhouClassifyId", 0)
  113. if baseFromTradeGuangzhouClassifyId <= 0 {
  114. br.Msg = "参数错误"
  115. br.Msg = "分类id错误"
  116. return
  117. }
  118. tradeDate := this.GetString("TradeDate")
  119. if tradeDate == "" {
  120. br.Msg = "参数错误"
  121. br.Msg = "交易日期不能为空"
  122. return
  123. }
  124. gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
  125. list, err := gzqhObj.GetBaseFromTradeGuangzhouContract(baseFromTradeGuangzhouClassifyId, tradeDate)
  126. if err != nil {
  127. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  128. br.Msg = "获取数据失败"
  129. return
  130. }
  131. br.Ret = 200
  132. br.Success = true
  133. br.Msg = "获取成功"
  134. br.Data = list
  135. }
  136. // ComTradeCountryList
  137. // @Title 获取广州期货交易所-分类下指标信息
  138. // @Description 获取广州期货交易所-分类下指标信息
  139. // @Param BaseFromTradeGuangzhouClassifyId query int true "分类id"
  140. // @Param BaseFromTradeGuangzhouContractId query int true "合约id"
  141. // @Param TradeDate query string true "日期"
  142. // @Success 200 {object} []data_source.BaseFromTradeGuangzhouContract
  143. // @router /gfex/index_data [get]
  144. func (this *DataSourceController) GfexIndexData() {
  145. br := new(models.BaseResponse).Init()
  146. defer func() {
  147. this.Data["json"] = br
  148. this.ServeJSON()
  149. }()
  150. sysUser := this.SysUser
  151. if sysUser == nil {
  152. br.Msg = "请登录"
  153. br.ErrMsg = "请登录,SysUser Is Empty"
  154. br.Ret = 408
  155. return
  156. }
  157. baseFromTradeGuangzhouClassifyId, _ := this.GetInt("BaseFromTradeGuangzhouClassifyId", 0)
  158. if baseFromTradeGuangzhouClassifyId <= 0 {
  159. br.Msg = "参数错误"
  160. br.ErrMsg = "分类id错误"
  161. return
  162. }
  163. tradeDate := this.GetString("TradeDate")
  164. if tradeDate == "" {
  165. br.Msg = "参数错误"
  166. br.ErrMsg = "交易日期不能为空"
  167. return
  168. }
  169. baseFromTradeGuangzhouContractId, _ := this.GetInt("BaseFromTradeGuangzhouContractId")
  170. var condition string
  171. var pars []interface{}
  172. condition += ` a.data_time=? `
  173. pars = append(pars, tradeDate)
  174. condition += ` AND b.base_from_trade_guangzhou_classify_id=? `
  175. pars = append(pars, baseFromTradeGuangzhouClassifyId)
  176. if baseFromTradeGuangzhouContractId > 0 {
  177. condition += ` AND c.base_from_trade_guangzhou_contract_id=? `
  178. pars = append(pars, baseFromTradeGuangzhouContractId)
  179. }
  180. gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
  181. list, err := gzqhObj.GetBaseFromTradeGuangzhouIndex(condition, pars)
  182. if err != nil {
  183. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  184. br.Msg = "获取数据失败"
  185. return
  186. }
  187. br.Ret = 200
  188. br.Success = true
  189. br.Msg = "获取成功"
  190. br.Data = list
  191. }