|
@@ -0,0 +1,209 @@
|
|
|
|
+package data_source
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "eta/eta_api/controllers"
|
|
|
|
+ "eta/eta_api/models"
|
|
|
|
+ "eta/eta_api/models/data_source"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+// 广州期货交易所
|
|
|
|
+type DataSourceController struct {
|
|
|
|
+ controllers.BaseAuthController
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ComTradeCountryList
|
|
|
|
+// @Title 获取广州期货交易所分类
|
|
|
|
+// @Description 获取广州期货交易所分类
|
|
|
|
+// @Success 200 {object} []data_manage.ComTradeCountryItem
|
|
|
|
+// @router /gfex/classify/list [get]
|
|
|
|
+func (this *DataSourceController) GfexClassifyList() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
|
|
|
|
+ classifyList, err := gzqhObj.GetBaseFromTradeGuangzhouClassifyAll()
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取分类失败"
|
|
|
|
+ br.ErrMsg = "获取分类失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ classifyMap := make(map[int][]*data_source.BaseFromTradeGuangzhouClassifyView)
|
|
|
|
+ for _, v := range classifyList {
|
|
|
|
+ if v.ParentId == 0 {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ if items, ok := classifyMap[v.ParentId]; !ok {
|
|
|
|
+ list := make([]*data_source.BaseFromTradeGuangzhouClassifyView, 0)
|
|
|
|
+ list = append(list, v)
|
|
|
|
+ classifyMap[v.ParentId] = list
|
|
|
|
+ } else {
|
|
|
|
+ items = append(items, v)
|
|
|
|
+ classifyMap[v.ParentId] = items
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ classifyItems := make([]*data_source.BaseFromTradeGuangzhouClassifyView, 0)
|
|
|
|
+ for _, v := range classifyList {
|
|
|
|
+ if v.ParentId == 0 {
|
|
|
|
+ v.Children = classifyMap[v.BaseFromTradeGuangzhouClassifyId]
|
|
|
|
+ classifyItems = append(classifyItems, v)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ br.Data = classifyItems
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ComTradeCountryList
|
|
|
|
+// @Title 获取广州期货交易所数据最大日期
|
|
|
|
+// @Description 获取广州期货交易所数据最大日期
|
|
|
|
+// @Success 200 {object} []data_source.ComTradeCountryItem
|
|
|
|
+// @router /gfex/max/date [get]
|
|
|
|
+func (this *DataSourceController) GfexMaxDate() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
|
|
|
|
+ maxDate, err := gzqhObj.GetBaseFromTradeGuangzhouMaxDate()
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.ErrMsg = "获取最新日期失败,Err:" + err.Error()
|
|
|
|
+ br.Msg = "获取最新日期失败"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ br.Data = maxDate
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ComTradeCountryList
|
|
|
|
+// @Title 获取广州期货交易所-分类下合约
|
|
|
|
+// @Description 获取广州期货交易所-分类下合约
|
|
|
|
+// @Param BaseFromTradeGuangzhouClassifyId query int true "分类id"
|
|
|
|
+// @Param TradeDate query string true "日期"
|
|
|
|
+// @Success 200 {object} []data_source.BaseFromTradeGuangzhouContract
|
|
|
|
+// @router /gfex/contract [get]
|
|
|
|
+func (this *DataSourceController) GfexContract() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ baseFromTradeGuangzhouClassifyId, _ := this.GetInt("BaseFromTradeGuangzhouClassifyId", 0)
|
|
|
|
+ if baseFromTradeGuangzhouClassifyId <= 0 {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.Msg = "分类id错误"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ tradeDate := this.GetString("TradeDate")
|
|
|
|
+ if tradeDate == "" {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.Msg = "交易日期不能为空"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
|
|
|
|
+ list, err := gzqhObj.GetBaseFromTradeGuangzhouContract(baseFromTradeGuangzhouClassifyId, tradeDate)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ br.Data = list
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ComTradeCountryList
|
|
|
|
+// @Title 获取广州期货交易所-分类下指标信息
|
|
|
|
+// @Description 获取广州期货交易所-分类下指标信息
|
|
|
|
+// @Param BaseFromTradeGuangzhouClassifyId query int true "分类id"
|
|
|
|
+// @Param BaseFromTradeGuangzhouContractId query int true "合约id"
|
|
|
|
+// @Param TradeDate query string true "日期"
|
|
|
|
+// @Success 200 {object} []data_source.BaseFromTradeGuangzhouContract
|
|
|
|
+// @router /gfex/index_data [get]
|
|
|
|
+func (this *DataSourceController) GfexIndexData() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ baseFromTradeGuangzhouClassifyId, _ := this.GetInt("BaseFromTradeGuangzhouClassifyId", 0)
|
|
|
|
+ if baseFromTradeGuangzhouClassifyId <= 0 {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.ErrMsg = "分类id错误"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ tradeDate := this.GetString("TradeDate")
|
|
|
|
+ if tradeDate == "" {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.ErrMsg = "交易日期不能为空"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ baseFromTradeGuangzhouContractId, _ := this.GetInt("BaseFromTradeGuangzhouContractId")
|
|
|
|
+
|
|
|
|
+ var condition string
|
|
|
|
+ var pars []interface{}
|
|
|
|
+
|
|
|
|
+ condition += ` a.data_time=? `
|
|
|
|
+ pars = append(pars, tradeDate)
|
|
|
|
+
|
|
|
|
+ condition += ` AND b.base_from_trade_guangzhou_classify_id=? `
|
|
|
|
+ pars = append(pars, baseFromTradeGuangzhouClassifyId)
|
|
|
|
+
|
|
|
|
+ if baseFromTradeGuangzhouContractId > 0 {
|
|
|
|
+ condition += ` AND c.base_from_trade_guangzhou_contract_id=? `
|
|
|
|
+ pars = append(pars, baseFromTradeGuangzhouContractId)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ gzqhObj := new(data_source.BaseFromTradeGuangzhouIndex)
|
|
|
|
+ list, err := gzqhObj.GetBaseFromTradeGuangzhouIndex(condition, pars)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ br.Data = list
|
|
|
|
+}
|