Explorar o código

fix: 持仓分析图-另存为、删除

hsun hai 6 meses
pai
achega
b0996efe40

+ 18 - 9
controllers/trade_analysis/warehouse_classify.go

@@ -7,7 +7,6 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/data"
-	correlationServ "eta/eta_api/services/data/correlation"
 	"eta/eta_api/services/data/data_manage_permission"
 	"eta/eta_api/utils"
 	"fmt"
@@ -464,6 +463,24 @@ func (this *WarehouseClassifyController) DeleteChartClassify() {
 			go data.EsDeleteMyChartInfoByMyChartIds(myIds)
 		}
 
+		// 删除图例和多图关联
+		seriesOb := new(data_manage.ChartSeries)
+		{
+			cond := fmt.Sprintf("chart_info_id = ?")
+			pars := make([]interface{}, 0)
+			pars = append(pars, chartInfo.ChartInfoId)
+			if e = seriesOb.RemoveByCondition(cond, pars); e != nil {
+				br.Msg = "删除失败"
+				br.ErrMsg = fmt.Sprintf("删除图表关联图例失败, %v", e)
+				return
+			}
+		}
+		if e = data_manage.RemoveMultiConfigChartMappingByChartInfoId(chartInfo.ChartInfoId); e != nil {
+			br.Msg = "删除失败"
+			br.ErrMsg = fmt.Sprintf("删除图表多图配置关联失败, %v", e)
+			return
+		}
+
 		var condition string
 		var pars []interface{}
 		condition += " AND chart_classify_id=? AND source = ? "
@@ -512,14 +529,6 @@ func (this *WarehouseClassifyController) DeleteChartClassify() {
 			}
 		}
 
-		// 删除图表关联
-		e = correlationServ.RemoveCorrelationRelate(chartInfo.ChartInfoId)
-		if e != nil {
-			br.Msg = "删除失败"
-			br.ErrMsg = fmt.Sprintf("删除关联失败, %v", e)
-			return
-		}
-
 		//新增操作日志
 		{
 			chartLog := new(data_manage.ChartInfoLog)

+ 10 - 0
models/data_manage/chart_series.go

@@ -382,3 +382,13 @@ func (c *ChartSeries) CreateMulti(items []*ChartSeries) (err error) {
 	_, err = o.InsertMulti(utils.MultiAddNum, items)
 	return
 }
+
+func (m *ChartSeries) RemoveByCondition(condition string, pars []interface{}) (err error) {
+	if condition == "" {
+		return
+	}
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
+	_, err = o.Raw(sql, pars).Exec()
+	return
+}

+ 7 - 0
models/data_manage/multiple_graph_config_chart_mapping.go

@@ -196,3 +196,10 @@ func ReplaceMultipleGraphConfigChartEdb(oldEdbInfo, newEdbInfo *EdbInfo) (replac
 	}
 	return
 }
+
+func RemoveMultiConfigChartMappingByChartInfoId(chartInfoId int) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `DELETE FROM multiple_graph_config_chart_mapping WHERE chart_info_id = ?`
+	_, err = o.Raw(sql, chartInfoId).Exec()
+	return
+}

+ 26 - 29
services/data/trade_analysis/warehouse.go

@@ -124,11 +124,6 @@ func AddWarehouseChart(req data_manage.AddChartInfoReq, extraConfig tradeAnalysi
 	chartInfo.ExtraConfig = req.ExtraConfig
 	chartInfo.DateTypeNum = req.DateTypeNum
 	chartInfo.MinMaxSave = req.MinMaxSave
-	//_, e := data_manage.AddChartInfo(chartInfo)
-	//if e != nil {
-	//	err = fmt.Errorf("新增持仓分析图表失败, %v", e)
-	//	return
-	//}
 
 	// 图例信息-由于持仓分析图表无指标, 图例信息就不存在chart_edb_mapping里了, 而是chart_series
 	seriesList := make([]*data_manage.ChartSeries, 0)
@@ -136,7 +131,6 @@ func AddWarehouseChart(req data_manage.AddChartInfoReq, extraConfig tradeAnalysi
 		t := new(data_manage.ChartSeries)
 		t.SeriesName = v.EdbAliasName
 		t.SeriesNameEn = v.EdbAliasName
-		t.ChartInfoId = chartInfo.ChartInfoId
 		t.IsAxis = v.IsAxis
 		t.UniqueFlag = v.UniqueFlag
 		t.CreateTime = time.Now().Local()
@@ -148,21 +142,9 @@ func AddWarehouseChart(req data_manage.AddChartInfoReq, extraConfig tradeAnalysi
 	multiChartMapping := new(data_manage.MultipleGraphConfigChartMapping)
 	if extraConfig.MultipleGraphConfigId > 0 {
 		multiChartMapping.MultipleGraphConfigId = extraConfig.MultipleGraphConfigId
-		multiChartMapping.ChartInfoId = chartInfo.ChartInfoId
 		multiChartMapping.Source = utils.CHART_SOURCE_TRADE_ANALYSIS_PROCESS
 		multiChartMapping.CreateTime = time.Now().Local()
 		multiChartMapping.ModifyTime = time.Now().Local()
-		//multipleGraphConfigChartMapping := &data_manage.MultipleGraphConfigChartMapping{
-		//	MultipleGraphConfigId: extraConfig.MultipleGraphConfigId,
-		//	ChartInfoId:           chartInfo.ChartInfoId,
-		//	Source:                utils.CHART_SOURCE_TRADE_ANALYSIS_PROCESS,
-		//	ModifyTime:            time.Now(),
-		//	CreateTime:            time.Now(),
-		//}
-		//if err = data_manage.AddMultipleGraphConfigChartMapping(multipleGraphConfigChartMapping); err != nil {
-		//	err = fmt.Errorf("持仓分析图表关联多图配置失败, %v", e)
-		//	return
-		//}
 	}
 
 	// 新增
@@ -232,17 +214,17 @@ func CopyWarehouseChart(classifyId int, chartName string, originChart *data_mana
 	}
 
 	// 新增配置并绑定图表
-	multipleGraphConfig := &data_manage.MultipleGraphConfig{
+	multiConfigCopy := &data_manage.MultipleGraphConfig{
 		SysUserId:       adminId,
 		SysUserRealName: adminRealName,
 		ModifyTime:      time.Now(),
 		CreateTime:      time.Now(),
 	}
-	if e := data_manage.AddMultipleGraphConfig(multipleGraphConfig); e != nil {
+	if e := data_manage.AddMultipleGraphConfig(multiConfigCopy); e != nil {
 		err = fmt.Errorf("新增持仓分析多图配置失败, %v", e)
 		return
 	}
-	extraConfig.MultipleGraphConfigId = multipleGraphConfig.MultipleGraphConfigId
+	extraConfig.MultipleGraphConfigId = multiConfigCopy.MultipleGraphConfigId
 	configByte, e := json.Marshal(extraConfig)
 	if e != nil {
 		err = fmt.Errorf("图表配置格式化失败, %v", e)
@@ -287,23 +269,38 @@ func CopyWarehouseChart(classifyId int, chartName string, originChart *data_mana
 		Instructions:      originChart.Instructions,
 		MarkersLines:      originChart.MarkersLines,
 		MarkersAreas:      originChart.MarkersAreas,
+		DateTypeNum:       originChart.DateTypeNum,
 	}
-	_, e = data_manage.AddChartInfo(chartInfo)
+
+	// 图例信息
+	seriesList, e := data_manage.GetChartSeriesByChartInfoId(originChart.ChartInfoId)
 	if e != nil {
-		err = fmt.Errorf("新增持仓分析图失败, %v", e)
+		err = fmt.Errorf("获取图例信息失败, %v", e)
 		return
 	}
+	seriesCopy := make([]*data_manage.ChartSeries, 0)
+	for _, v := range seriesList {
+		t := new(data_manage.ChartSeries)
+		t.SeriesName = v.SeriesName
+		t.SeriesNameEn = v.SeriesNameEn
+		t.IsAxis = v.IsAxis
+		t.UniqueFlag = v.UniqueFlag
+		t.CreateTime = time.Now().Local()
+		t.ModifyTime = time.Now().Local()
+		seriesCopy = append(seriesCopy, t)
+	}
 
 	// 新增图表-多图配置关联
 	configChartMapping := &data_manage.MultipleGraphConfigChartMapping{
-		MultipleGraphConfigId: extraConfig.MultipleGraphConfigId,
-		ChartInfoId:           chartInfo.ChartInfoId,
+		MultipleGraphConfigId: multiConfigCopy.MultipleGraphConfigId,
 		Source:                utils.CHART_SOURCE_TRADE_ANALYSIS_PROCESS,
-		ModifyTime:            time.Now(),
-		CreateTime:            time.Now(),
+		ModifyTime:            time.Now().Local(),
+		CreateTime:            time.Now().Local(),
 	}
-	if e = data_manage.AddMultipleGraphConfigChartMapping(configChartMapping); e != nil {
-		err = fmt.Errorf("持仓分析图表关联多图配置失败, %v", e)
+
+	// 新增
+	if e = tradeAnalysisModel.CreateWarehouseChart(chartInfo, seriesCopy, configChartMapping); e != nil {
+		err = fmt.Errorf("新增图表失败, %v", e)
 		return
 	}