|
@@ -0,0 +1,663 @@
|
|
|
+package controllers
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_edb_lib/models"
|
|
|
+ "hongze/hongze_edb_lib/utils"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+type EdbController struct {
|
|
|
+ BaseAuthController
|
|
|
+}
|
|
|
+
|
|
|
+// Search
|
|
|
+// @Title 新增指标-查询指标信息接口
|
|
|
+// @Description 查询指标信息接口
|
|
|
+// @Params Source query int true "指标来源;1:同花顺;2:Wind;3:彭博 ..."
|
|
|
+// @Params EdbCode query string true "指标编码"
|
|
|
+// @Success 200 {object} data_manage.EditEdbInfoReq
|
|
|
+// @router /add [post]
|
|
|
+func (this *ThsController) Search() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ var cacheKey string
|
|
|
+ defer func() {
|
|
|
+ utils.Rc.Delete(cacheKey)
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ source, _ := this.GetInt("Source")
|
|
|
+ edbCode := this.GetString("EdbCode")
|
|
|
+ edbCode = strings.Trim(edbCode, "\t")
|
|
|
+ edbCode = strings.Trim(edbCode, " ")
|
|
|
+ edbCode = strings.Replace(edbCode, "\t", "", -1)
|
|
|
+ if source <= 0 {
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if edbCode == "" {
|
|
|
+ br.Msg = "请输入指标ID"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := new(models.EdbInfoSearchResp)
|
|
|
+ //判断指标是否存在
|
|
|
+ item, err := models.GetEdbInfoByEdbCode(source, edbCode)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "根据指标编码获取指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+
|
|
|
+ dateNow := time.Now()
|
|
|
+
|
|
|
+ startDate := dateNow.AddDate(-30, 0, 0).Format(utils.FormatDate)
|
|
|
+
|
|
|
+ searchItem := new(models.EdbInfoSearch)
|
|
|
+ if source == utils.DATA_SOURCE_THS {
|
|
|
+ dataItems, err := models.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_THS, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Ths已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("ths len:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ fmt.Println("ths data exist")
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ edbInfoMaxAndMinInfo, err := models.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Ths日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = edbInfoMaxAndMinInfo.MinDate
|
|
|
+ searchItem.EndDate = edbInfoMaxAndMinInfo.MaxDate
|
|
|
+ } else {
|
|
|
+ endDate := dateNow.AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
|
|
|
+ searchItem, err = data.GetEdbDataByThs(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_WIND {
|
|
|
+ fmt.Println("wind data exist")
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_WIND, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Wind已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("wind dataItems:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataWindMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取wind日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ endDate := dateNow.Format(utils.FormatDate)
|
|
|
+ searchItem, err = data.GetEdbDataByWind(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "wind 获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_PB {
|
|
|
+ fmt.Println("pb data exist")
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_PB, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Pb已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("pb dataItems:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataPbMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Pb日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ endDate := dateNow.AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
|
|
|
+ startDate := dateNow.AddDate(-30, 0, 0).Format(utils.FormatDateUnSpace)
|
|
|
+ searchItem, err = data.GetEdbDataByPb(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "彭博数据获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_MANUAL { //手工数据指标
|
|
|
+ endDate := dateNow.AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_MANUAL, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Ths已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("ths len:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ fmt.Println("ths data exist")
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataManualMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Ths日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ searchItem, err = data_manage.GetEdbDataByManual(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取指标信息
|
|
|
+ manualInfo, err := models.GetEdbinfoByTradeCode(edbCode)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取手工指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if manualInfo != nil {
|
|
|
+ searchItem.Frequency = manualInfo.Frequency
|
|
|
+ searchItem.Unit = manualInfo.Unit
|
|
|
+ searchItem.EdbName = manualInfo.SecName
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if source == utils.DATA_SOURCE_LZ {
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LZ, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取隆众已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("ths len:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ fmt.Println("ths data exist")
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataLzMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取隆众日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ endDate := dateNow.AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
|
|
|
+ searchItem, err = data_manage.GetEdbDataByLz(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取隆众数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取指标信息
|
|
|
+ lzInfo, err := data_manage.GetLongzhongSurveyProductByCode(edbCode)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取手工指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if lzInfo != nil {
|
|
|
+ frequency := lzInfo.Frequency
|
|
|
+ var frequencyStr string
|
|
|
+ if frequency == 1 {
|
|
|
+ frequencyStr = "日度"
|
|
|
+ } else if frequency == 2 {
|
|
|
+ frequencyStr = "周度"
|
|
|
+ } else if frequency == 3 {
|
|
|
+ frequencyStr = "月度"
|
|
|
+ } else if frequency == 4 {
|
|
|
+ frequencyStr = "季度"
|
|
|
+ } else if frequency == 5 {
|
|
|
+ frequencyStr = "年度"
|
|
|
+ } else if frequency == 99 {
|
|
|
+ frequencyStr = "无固定频率"
|
|
|
+ }
|
|
|
+ searchItem.Frequency = frequencyStr
|
|
|
+ searchItem.Unit = lzInfo.UnitName
|
|
|
+ searchItem.EdbName = lzInfo.SampleName + lzInfo.BreedName + lzInfo.QuotaName
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_YS { //有色网
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_YS, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Ys已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("dataItems:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataYsMaxAndMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取YS日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ endDate := dateNow.AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
|
|
|
+ searchItem, err = data_manage.GetEdbDataByYs(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetEdbDataByYs Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if searchItem.StartDate == "" {
|
|
|
+ minDate, maxDate, _ := data_manage.GetEdbDataYsMaxAndMinDate(edbCode)
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取指标信息
|
|
|
+ smmInfo, err := data_manage.GetBaseFromSmmIndexByIndexCode(edbCode)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取有色指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if smmInfo != nil {
|
|
|
+ searchItem.Frequency = smmInfo.Frequency
|
|
|
+ searchItem.Unit = smmInfo.Unit
|
|
|
+ searchItem.EdbName = smmInfo.IndexName
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if source == utils.DATA_SOURCE_GL { //钢联
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataGlMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取钢联日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ endDate := dateNow.AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
|
|
|
+ searchItem, err = data_manage.GetEdbDataByGl(edbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取钢联数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取指标信息
|
|
|
+ glInfo, err := data_manage.GetGlIndexByCode(edbCode)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取钢联指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if glInfo != nil {
|
|
|
+ searchItem.Frequency = glInfo.FrequencyName
|
|
|
+ searchItem.Unit = glInfo.UnitName
|
|
|
+ searchItem.EdbName = glInfo.IndexName
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_ZZ { //郑商所
|
|
|
+ var suffix string
|
|
|
+ if strings.Contains(edbCode, "deal") {
|
|
|
+ suffix = "deal"
|
|
|
+ } else if strings.Contains(edbCode, "buy") {
|
|
|
+ suffix = "buy"
|
|
|
+ } else if strings.Contains(edbCode, "sold") {
|
|
|
+ suffix = "sold"
|
|
|
+ }
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取郑商所已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataZzMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取郑商所日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ searchItem, err = data_manage.GetEdbDataByZz(edbCode, suffix, startDate, "")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetEdbDataByZz Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if searchItem.StartDate == "" {
|
|
|
+ minDate, maxDate, _ := data_manage.GetEdbDataZzMaxOrMinDate(edbCode)
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取指标信息
|
|
|
+ allInfo, err := data_manage.GetBaseInfoFromZhengzhouByIndexCode(edbCode, suffix)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取郑商所指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var zzInfo *data_manage.BaseInfoFromZz
|
|
|
+ if allInfo != nil {
|
|
|
+ zzInfo = allInfo[0]
|
|
|
+ }
|
|
|
+ if zzInfo != nil {
|
|
|
+ searchItem.Frequency = "日度"
|
|
|
+ searchItem.Unit = "手"
|
|
|
+ if suffix == "deal" {
|
|
|
+ searchItem.EdbName = zzInfo.DealName
|
|
|
+ } else if suffix == "buy" {
|
|
|
+ searchItem.EdbName = zzInfo.BuyName
|
|
|
+ } else {
|
|
|
+ searchItem.EdbName = zzInfo.SoldName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_DL { //大商所
|
|
|
+ var suffix string
|
|
|
+ if strings.Contains(edbCode, "deal") {
|
|
|
+ suffix = "deal"
|
|
|
+ } else if strings.Contains(edbCode, "buy") {
|
|
|
+ suffix = "buy"
|
|
|
+ } else if strings.Contains(edbCode, "sold") {
|
|
|
+ suffix = "sold"
|
|
|
+ }
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取大商所已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataDlMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取大商所日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ searchItem, err = data_manage.GetEdbDataByDl(edbCode, suffix, startDate, "")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetEdbDataByDl Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if searchItem.StartDate == "" {
|
|
|
+ minDate, maxDate, _ := data_manage.GetEdbDataDlMaxOrMinDate(edbCode)
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取指标信息
|
|
|
+ allInfo, err := data_manage.GetBaseInfoFromDalianByIndexCode(edbCode, suffix)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取大商所指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var dlInfo *data_manage.BaseInfoFromDl
|
|
|
+ if allInfo != nil {
|
|
|
+ dlInfo = allInfo[0]
|
|
|
+ }
|
|
|
+ if dlInfo != nil {
|
|
|
+ searchItem.Frequency = "日度"
|
|
|
+ searchItem.Unit = "手"
|
|
|
+ if suffix == "deal" {
|
|
|
+ searchItem.EdbName = dlInfo.DealName
|
|
|
+ } else if suffix == "buy" {
|
|
|
+ searchItem.EdbName = dlInfo.BuyName
|
|
|
+ } else {
|
|
|
+ searchItem.EdbName = dlInfo.SoldName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_SH { //上期所
|
|
|
+ var suffix string
|
|
|
+ if strings.Contains(edbCode, "deal") {
|
|
|
+ suffix = "deal"
|
|
|
+ } else if strings.Contains(edbCode, "buy") {
|
|
|
+ suffix = "buy"
|
|
|
+ } else if strings.Contains(edbCode, "sold") {
|
|
|
+ suffix = "sold"
|
|
|
+ }
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取上期所已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataShMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取上期所日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ searchItem, err = data_manage.GetEdbDataBySh(edbCode, suffix, startDate, "")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetEdbDataBySh Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if searchItem.StartDate == "" {
|
|
|
+ minDate, maxDate, _ := data_manage.GetEdbDataShMaxOrMinDate(edbCode)
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取指标信息
|
|
|
+ allInfo, err := data_manage.GetBaseInfoFromShByIndexCode(edbCode, suffix)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取上期所指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var shInfo *data_manage.BaseInfoFromSh
|
|
|
+ if allInfo != nil {
|
|
|
+ shInfo = allInfo[0]
|
|
|
+ }
|
|
|
+ if shInfo != nil {
|
|
|
+ searchItem.Frequency = "日度"
|
|
|
+ searchItem.Unit = "手"
|
|
|
+ if suffix == "deal" {
|
|
|
+ searchItem.EdbName = shInfo.DealName
|
|
|
+ } else if suffix == "buy" {
|
|
|
+ searchItem.EdbName = shInfo.BuyName
|
|
|
+ } else {
|
|
|
+ searchItem.EdbName = shInfo.SoldName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_CFFEX { //中金所
|
|
|
+ var suffix string
|
|
|
+ if strings.Contains(edbCode, "deal") {
|
|
|
+ suffix = "deal"
|
|
|
+ } else if strings.Contains(edbCode, "buy") {
|
|
|
+ suffix = "buy"
|
|
|
+ } else if strings.Contains(edbCode, "sold") {
|
|
|
+ suffix = "sold"
|
|
|
+ }
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取中金所已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataCffexMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取中金所日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ searchItem, err = data_manage.GetEdbDataByCffex(edbCode, suffix, startDate, "")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetEdbDataByCffex Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if searchItem.StartDate == "" {
|
|
|
+ minDate, maxDate, _ := data_manage.GetEdbDataCffexMaxOrMinDate(edbCode)
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取指标信息
|
|
|
+ allInfo, err := data_manage.GetBaseInfoFromCffexByIndexCode(edbCode, suffix)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取中金所指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var cffexInfo *data_manage.BaseInfoFromCffex
|
|
|
+ if allInfo != nil {
|
|
|
+ cffexInfo = allInfo[0]
|
|
|
+ }
|
|
|
+ if cffexInfo != nil {
|
|
|
+ searchItem.Frequency = "日度"
|
|
|
+ searchItem.Unit = "手"
|
|
|
+ if suffix == "deal" {
|
|
|
+ searchItem.EdbName = cffexInfo.DealName
|
|
|
+ } else if suffix == "buy" {
|
|
|
+ searchItem.EdbName = cffexInfo.BuyName
|
|
|
+ } else {
|
|
|
+ searchItem.EdbName = cffexInfo.SoldName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_SHFE { //上期能源
|
|
|
+ var suffix string
|
|
|
+ if strings.Contains(edbCode, "deal") {
|
|
|
+ suffix = "deal"
|
|
|
+ } else if strings.Contains(edbCode, "buy") {
|
|
|
+ suffix = "buy"
|
|
|
+ } else if strings.Contains(edbCode, "sold") {
|
|
|
+ suffix = "sold"
|
|
|
+ }
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取上期能源已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataShfeMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取上期能源日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ searchItem, err = data_manage.GetEdbDataByShfe(edbCode, suffix, startDate, "")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetEdbDataByShfe Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if searchItem.StartDate == "" {
|
|
|
+ minDate, maxDate, _ := data_manage.GetEdbDataShfeMaxOrMinDate(edbCode)
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取指标信息
|
|
|
+ allInfo, err := data_manage.GetBaseInfoFromShfeByIndexCode(edbCode, suffix)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取上期能源指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var shfeInfo *data_manage.BaseInfoFromShfe
|
|
|
+ if allInfo != nil {
|
|
|
+ shfeInfo = allInfo[0]
|
|
|
+ }
|
|
|
+ if shfeInfo != nil {
|
|
|
+ searchItem.Frequency = "日度"
|
|
|
+ searchItem.Unit = "手"
|
|
|
+ if suffix == "deal" {
|
|
|
+ searchItem.EdbName = shfeInfo.DealName
|
|
|
+ } else if suffix == "buy" {
|
|
|
+ searchItem.EdbName = shfeInfo.BuyName
|
|
|
+ } else {
|
|
|
+ searchItem.EdbName = shfeInfo.SoldName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if source == utils.DATA_SOURCE_GIE { //欧洲天然气
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.Status = 2
|
|
|
+ resp.SearchItem = searchItem
|
|
|
+ }
|
|
|
+}
|