|
@@ -13,6 +13,7 @@ import (
|
|
|
chartEdbMappingModel "hongze/hongze_yb/models/tables/chart_edb_mapping"
|
|
|
chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
|
|
|
"hongze/hongze_yb/models/tables/chart_info_correlation"
|
|
|
+ "hongze/hongze_yb/models/tables/chart_info_future_good_profit"
|
|
|
"hongze/hongze_yb/models/tables/chart_info_log"
|
|
|
"hongze/hongze_yb/models/tables/yb_my_chart"
|
|
|
"hongze/hongze_yb/services/alarm_msg"
|
|
@@ -78,6 +79,14 @@ func CommonChartInfoDetailFromUniqueCode(c *gin.Context) {
|
|
|
return
|
|
|
}
|
|
|
resp = tmpResp
|
|
|
+ case utils.CHART_SOURCE_FUTURE_GOOD_PROFIT:
|
|
|
+ resp, isOk, msg, errMsg := getFutureGoodChartInfoDetail(chartInfo, myChartClassifyId, user.GetInfoByClaims(c))
|
|
|
+ if !isOk {
|
|
|
+ response.FailMsg(msg, errMsg, c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkData("获取成功", resp, c)
|
|
|
+ return
|
|
|
case utils.CHART_SOURCE_CORRELATION, utils.CHART_SOURCE_ROLLING_CORRELATION:
|
|
|
tmpResp, isOk, msg, errMsg := getCorrelationChartInfoDetail(chartInfo, myChartClassifyId, user.GetInfoByClaims(c))
|
|
|
if !isOk {
|
|
@@ -231,6 +240,134 @@ func getFutureGoodChartInfoDetail(chartInfo *chartInfoModel.ChartInfoView, myCha
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// getFutureGoodProfitChartInfoDetail 获取商品利润曲线图表详情
|
|
|
+func getFutureGoodProfitChartInfoDetail(chartInfo *chartInfoModel.ChartInfoView, myChartClassifyId int, userInfo user.UserInfo) (resp *chart_info.ChartInfoDetailResp, isOk bool, msg, errMsg string) {
|
|
|
+ resp = new(chart_info.ChartInfoDetailResp)
|
|
|
+ // 获取图表信息
|
|
|
+ var err error
|
|
|
+ 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([]*chartEdbMappingModel.ChartEdbInfoMappingList, 0)
|
|
|
+ edbInfoMapping, err := chartEdbMappingModel.GetEtaEdbChartEdbMapping(chartInfoId)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取图表,现货指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbList = append(edbList, edbInfoMapping)
|
|
|
+ futureGoodEdbInfoMappingList, err := chartEdbMappingModel.GetFutureGoodEdbChartEdbMappingList(chartInfoId)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取图表的期货商品指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbList = append(edbList, futureGoodEdbInfoMappingList...)
|
|
|
+ if len(edbList) <= 0 {
|
|
|
+ msg = "商品利润曲线图表指标异常"
|
|
|
+ errMsg = "商品利润曲线图表指标异常"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ xDataList := make([]chart_info.XData, 0)
|
|
|
+ yDataList := make([]chart_info.YData, 0)
|
|
|
+
|
|
|
+ // 查找商品利润图表的扩展信息
|
|
|
+ chartInfoFutureGoodProfit := new(chart_info_future_good_profit.ChartInfoFutureGoodProfit)
|
|
|
+ if err = chartInfoFutureGoodProfit.GetItemById(chartInfoId); err != nil {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ baseEdbInfo := edbList[0] //现货指标
|
|
|
+ chartInfo.UnitEn = baseEdbInfo.UnitEn
|
|
|
+
|
|
|
+ sourceArr := []string{"同花顺"}
|
|
|
+ if baseEdbInfo.SourceName != "同花顺" {
|
|
|
+ sourceArr = append(sourceArr, baseEdbInfo.SourceName)
|
|
|
+ }
|
|
|
+ sourceArr = append(sourceArr, "弘则研究")
|
|
|
+ chartInfo.ChartSource = strings.Join(sourceArr, ",")
|
|
|
+
|
|
|
+ warnEdbList := make([]string, 0)
|
|
|
+ for _, v := range edbList {
|
|
|
+ if v.IsNullData {
|
|
|
+ warnEdbList = append(warnEdbList, v.EdbName+"("+v.EdbCode+")")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 访问记录-仅普通用户记录
|
|
|
+ ok, _, _ := user.GetAdminByUserInfo(userInfo)
|
|
|
+ if !ok {
|
|
|
+ go chart.SaveChartVisitLog(userInfo, chartInfo, myChartClassifyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 用户是否有收藏该图表
|
|
|
+ {
|
|
|
+ ob := new(yb_my_chart.YbMyChart)
|
|
|
+ cond := `user_id = ? AND chart_info_id = ?`
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, userInfo.UserID, chartInfo.ChartInfoId)
|
|
|
+ exists, e := ob.FetchByCondition(cond, pars)
|
|
|
+ if e != nil && e != utils.ErrNoRow {
|
|
|
+ msg = `操作失败`
|
|
|
+ errMsg = "获取用户图表失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ myChartInfo := new(responseModel.MyChartItem)
|
|
|
+ if exists != nil && exists.MyChartID > 0 {
|
|
|
+ myChartInfo.MyChartID = exists.MyChartID
|
|
|
+ myChartInfo.MyChartClassifyID = exists.MyChartClassifyID
|
|
|
+ myChartInfo.ChartInfoID = exists.ChartInfoID
|
|
|
+ myChartInfo.ChartName = exists.ChartName
|
|
|
+ myChartInfo.UniqueCode = exists.UniqueCode
|
|
|
+ myChartInfo.ChartImage = exists.ChartImage
|
|
|
+ myChartInfo.UserID = exists.UserID
|
|
|
+ myChartInfo.ReportID = exists.ReportID
|
|
|
+ myChartInfo.ReportChapterID = exists.ReportChapterID
|
|
|
+ myChartInfo.CreateTime = utils.TimeTransferString(utils.FormatDateTime, exists.CreateTime)
|
|
|
+ }
|
|
|
+
|
|
|
+ resp.MyChartInfo = myChartInfo
|
|
|
+ }
|
|
|
+
|
|
|
+ resp.ChartInfo = chartInfo
|
|
|
+ resp.EdbInfoList = edbList
|
|
|
+ resp.DataResp = chart_info.ProfitFutureGoodChartResp{
|
|
|
+ YDataList: yDataList,
|
|
|
+ XDataList: xDataList,
|
|
|
+ ProfitName: chartInfoFutureGoodProfit.ProfitName + "盘面利润",
|
|
|
+ ProfitEnName: chartInfoFutureGoodProfit.ProfitEnName,
|
|
|
+ Extra: extraConf,
|
|
|
+ }
|
|
|
+
|
|
|
+ isOk = true
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// RefreshFutureGoodChartInfo 刷新商品价格曲线图表信息
|
|
|
// @Tags 图库模块
|
|
|
// @Summary 刷新图表信息
|