|
@@ -5,6 +5,9 @@ import (
|
|
|
"fmt"
|
|
|
"hongze/hongze_chart_lib/models"
|
|
|
"hongze/hongze_chart_lib/models/data_manage"
|
|
|
+ "hongze/hongze_chart_lib/models/data_manage/future_good"
|
|
|
+ "hongze/hongze_chart_lib/models/data_manage/future_good/request"
|
|
|
+ "hongze/hongze_chart_lib/models/data_manage/future_good/response"
|
|
|
"hongze/hongze_chart_lib/services/data"
|
|
|
correlationServ "hongze/hongze_chart_lib/services/data/correlation"
|
|
|
future_goodServ "hongze/hongze_chart_lib/services/data/future_good"
|
|
@@ -87,6 +90,17 @@ func (this *ChartController) CommonChartInfoDetailFromUniqueCode() {
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
+ case utils.CHART_SOURCE_FUTURE_GOOD_PROFIT:
|
|
|
+ resp, isOk, msg, errMsg := GetFutureGoodProfitChartInfoDetailFromUniqueCode(chartInfo, key)
|
|
|
+ if !isOk {
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = errMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
case utils.CHART_SOURCE_CORRELATION, utils.CHART_SOURCE_ROLLING_CORRELATION:
|
|
|
resp, isOk, msg, errMsg := GetCorrelationChartInfoDetailFromUniqueCode(chartInfo, key)
|
|
|
if !isOk {
|
|
@@ -206,6 +220,97 @@ func GetFutureGoodChartInfoDetailFromUniqueCode(chartInfo *models.ChartInfo, key
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// GetFutureGoodProfitChartInfoDetailFromUniqueCode 根据编码获取商品利润图表详情
|
|
|
+func GetFutureGoodProfitChartInfoDetailFromUniqueCode(chartInfo *models.ChartInfo, key string) (resp *models.ChartInfoDetailResp, isOk bool, msg, errMsg string) {
|
|
|
+ resp = new(models.ChartInfoDetailResp)
|
|
|
+
|
|
|
+ chartInfoId := chartInfo.ChartInfoId
|
|
|
+
|
|
|
+ // 商品利润曲线图的一些配置
|
|
|
+ var extraConf request.ChartInfoReq
|
|
|
+ err := json.Unmarshal([]byte(chartInfo.ExtraConfig), &extraConf)
|
|
|
+ if err != nil {
|
|
|
+ msg = "商品利润曲线图配置异常"
|
|
|
+ errMsg = "商品利润曲线图配置异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbList := make([]*models.ChartEdbInfoMapping, 0)
|
|
|
+ edbInfoMapping, err := models.GetEtaEdbChartEdbMapping(chartInfoId)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取商品利润图表,基础指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbList = append(edbList, edbInfoMapping)
|
|
|
+ futureGoodEdbInfoMappingList, err := models.GetFutureGoodEdbChartEdbMappingList(chartInfoId)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取商品利润图表,商品指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbList = append(edbList, futureGoodEdbInfoMappingList...)
|
|
|
+ if len(edbList) <= 0 {
|
|
|
+ msg = "商品利润曲线图表指标异常"
|
|
|
+ errMsg = "商品利润曲线图表指标异常"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ xDataList := make([]models.XData, 0)
|
|
|
+ yDataList := make([]models.YData, 0)
|
|
|
+
|
|
|
+ // 查找商品利润图表的扩展信息
|
|
|
+ chartInfoFutureGoodProfit := new(future_good.ChartInfoFutureGoodProfit)
|
|
|
+ if err = chartInfoFutureGoodProfit.GetItemById(chartInfo.ChartInfoId); err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取基础相关性图表信息失败, Err: " + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = json.Unmarshal([]byte(chartInfoFutureGoodProfit.XValue), &xDataList)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "转换X轴数据失败, Err: " + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = json.Unmarshal([]byte(chartInfoFutureGoodProfit.YValue), &yDataList)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "转换Y轴数据失败, Err: " + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ warnEdbList := make([]string, 0)
|
|
|
+ baseEdbInfo := edbList[0] //现货指标
|
|
|
+ for _, v := range edbList {
|
|
|
+ if v.IsNullData {
|
|
|
+ warnEdbList = append(warnEdbList, v.EdbName+"("+v.EdbCode+")")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ chartInfo.UnitEn = baseEdbInfo.UnitEn
|
|
|
+
|
|
|
+ resp.ChartInfo = chartInfo
|
|
|
+ resp.EdbInfoList = edbList
|
|
|
+ resp.DataResp = response.ProfitFutureGoodChartResp{
|
|
|
+ YDataList: yDataList,
|
|
|
+ XDataList: xDataList,
|
|
|
+ ProfitName: chartInfoFutureGoodProfit.ProfitName + "盘面利润",
|
|
|
+ ProfitEnName: chartInfoFutureGoodProfit.ProfitEnName,
|
|
|
+ Extra: extraConf,
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将数据加入缓存
|
|
|
+ if utils.Re == nil {
|
|
|
+ data, _ := json.Marshal(resp)
|
|
|
+ utils.Rc.Put(key, data, 2*time.Hour)
|
|
|
+ }
|
|
|
+ isOk = true
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// FutureGoodChartInfoRefresh
|
|
|
// @Title 商品价格图表刷新接口
|
|
|
// @Description 商品价格图表刷新接口
|