فهرست منبع

Merge branch 'hotfix/correl_chart_edb_delete' of eta_server/eta_api into master

xyxie 5 ماه پیش
والد
کامیت
bbd2b48a36

+ 123 - 1
controllers/data_manage/chart_common.go

@@ -11,10 +11,12 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/excel"
 	"eta/eta_api/utils"
 	"fmt"
+	"strings"
 	"time"
 )
 
@@ -83,6 +85,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_DEFAULT:
 		resp, isOk, msg, errMsg := GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -94,6 +108,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_FUTURE_GOOD:
 		resp, isOk, msg, errMsg := future_good.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -105,6 +131,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_FUTURE_GOOD_PROFIT:
 		resp, isOk, msg, errMsg := future_good.GetFutureGoodProfitChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -116,6 +154,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_CORRELATION, utils.CHART_SOURCE_ROLLING_CORRELATION:
 		resp, isOk, msg, errMsg := correlation.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -127,6 +177,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_LINE_EQUATION:
 		resp, isOk, msg, errMsg := line_equation.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -138,6 +200,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, utils.CHART_SOURCE_LINE_FEATURE_PERCENTILE, utils.CHART_SOURCE_LINE_FEATURE_FREQUENCY:
 		resp, isOk, msg, errMsg := line_feature.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -149,6 +223,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_CROSS_HEDGING:
 		resp, isOk, msg, errMsg := cross_variety.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -160,6 +246,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_BALANCE_EXCEL:
 		resp, isOk, msg, errMsg := getBalanceChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -171,6 +269,18 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 	case utils.CHART_SOURCE_RANGE_ANALYSIS:
 		resp, isOk, msg, errMsg := range_analysis.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
 		if !isOk {
+			if strings.Contains(errMsg, utils.ErrNoRow()) {
+				endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
+				resp.EdbInfoList = endInfoList
+				resp.ChartInfo = chartInfo
+				resp.Status = false
+
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
 			br.Msg = msg
 			br.ErrMsg = errMsg
 			return
@@ -188,7 +298,19 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 
 func getBalanceChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCache bool, sysUser *system.Admin) (resp *data_manage.ChartInfoDetailFromUniqueCodeResp, isOk bool, msg, errMsg string) {
 	resp = new(data_manage.ChartInfoDetailFromUniqueCodeResp)
-
+	defer func() {
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,getBalanceChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
+	}()
 	resp, isOk, msg, errMsg = data.CheckBalanceChartCacheAndPermission(chartInfo, isCache, sysUser)
 	if isOk {
 		return

+ 7 - 0
controllers/data_manage/chart_info.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_api/models/data_manage/response"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
 	"eta/eta_api/services/data/excel"
@@ -2680,6 +2681,12 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				utils.FileLog.Info("查询图表详情失败,GetChartInfoDetailFromUniqueCode err:" + errMsg)
+				go alarm_msg.SendAlarmMsg("查询图表详情失败,GetChartInfoDetailFromUniqueCode,errmsg:"+errMsg, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 12 - 5
controllers/data_manage/correlation/correlation_chart_info.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/correlation/request"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	correlationServ "eta/eta_api/services/data/correlation"
 	"eta/eta_api/services/data/data_manage_permission"
@@ -1012,11 +1013,6 @@ func (this *CorrelationChartInfoController) DetailFromUniqueCode() {
 		br.ErrMsg = errMsg
 		return
 	}
-	if !isOk {
-		br.Msg = msg
-		br.ErrMsg = errMsg
-		return
-	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -1563,6 +1559,17 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,correlation.GetChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 12 - 0
controllers/data_manage/cross_variety/chart_info.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_api/models/data_manage/cross_variety/request"
 	"eta/eta_api/models/data_manage/cross_variety/response"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/cross_variety"
 	"eta/eta_api/services/data/data_manage_permission"
@@ -1609,6 +1610,17 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,cross_variety.GetChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 11 - 0
controllers/data_manage/edb_info.go

@@ -4142,6 +4142,17 @@ func (this *EdbInfoController) RelationChartList() {
 			chartIdMap[v.ChartInfoId] = true
 		}
 	}
+	// 查询相关性的图表
+	correlationChart := new(data_manage.ChartInfoCorrelation)
+	correlationChartId, err := correlationChart.GetChartInfoIdByEdb(edbInfoId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取图表信息失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+	if correlationChartId > 0 {
+		chartIdMap[correlationChartId] = true
+	}
 	// 查询跨品种的图表
 	tagXList, err := cross_variety.GetChartInfoCrossVarietyByXEdbInfoId(edbInfoId)
 	if err != nil && err.Error() != utils.ErrNoRow() {

+ 12 - 0
controllers/data_manage/future_good/future_good_chart_info.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_api/models/data_manage/future_good/request"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
 	future_goodServ "eta/eta_api/services/data/future_good"
@@ -1615,6 +1616,17 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,future_good.GetChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 12 - 0
controllers/data_manage/future_good/future_good_profit_chart_info.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_api/models/data_manage/future_good/request"
 	"eta/eta_api/models/data_manage/future_good/response"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
 	future_goodServ "eta/eta_api/services/data/future_good"
@@ -1260,6 +1261,17 @@ func GetFutureGoodProfitChartInfoDetailFromUniqueCode(chartInfo *data_manage.Cha
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,future_good.GetFutureGoodProfitChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 12 - 0
controllers/data_manage/line_equation/line_chart_info.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_api/models/data_manage/line_equation/request"
 	"eta/eta_api/models/data_manage/line_equation/response"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
 	"eta/eta_api/services/data/line_equation"
@@ -1291,6 +1292,17 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,line_equation.GetChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 12 - 0
controllers/data_manage/line_feature/chart_info.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_api/models/data_manage/line_feature/request"
 	"eta/eta_api/models/data_manage/line_feature/response"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
 	lineFeatureServ "eta/eta_api/services/data/line_feature"
@@ -2388,6 +2389,17 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,line_feature.GetChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 12 - 0
controllers/data_manage/range_analysis/chart_info.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/chart_theme"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
 	rangeServ "eta/eta_api/services/data/range_analysis"
@@ -731,6 +732,17 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 				}
 			}
 		}
+		if !isOk {
+			if errMsg != "" {
+				uniqueCode := ""
+				if chartInfo != nil {
+					uniqueCode = chartInfo.UniqueCode
+				}
+				tmpTip := fmt.Sprintf("查询图表详情失败,range_analysis.GetChartInfoDetailFromUniqueCode UniqueCode:%s,err:%s", uniqueCode, errMsg)
+				utils.FileLog.Info(tmpTip)
+				go alarm_msg.SendAlarmMsg(tmpTip, 3)
+			}
+		}
 	}()
 
 	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取

+ 16 - 0
models/data_manage/chart_info_correlation.go

@@ -398,3 +398,19 @@ type FactorCorrelationEditDetail struct {
 	CorrelationConfig CorrelationConfig                      `description:"相关性基础配置"`
 	CorrelationMatrix []FactorEdbSeriesCorrelationMatrixItem `description:"相关性矩阵"`
 }
+
+func (m *ChartInfoCorrelation) GetChartEdbMappingCount(edbInfoId int) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT COUNT(1) AS count FROM %s WHERE edb_info_id_first=? or edb_info_id_second=?`
+	sql = fmt.Sprintf(sql, m.TableName())
+	err = o.Raw(sql, edbInfoId, edbInfoId).QueryRow(&count)
+	return
+}
+
+func (m *ChartInfoCorrelation) GetChartInfoIdByEdb(edbInfoId int) (chartInfoId int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT correlation_chart_info_id FROM %s WHERE edb_info_id_first=? or edb_info_id_second=?`
+	sql = fmt.Sprintf(sql, m.TableName())
+	err = o.Raw(sql, edbInfoId, edbInfoId).QueryRow(&chartInfoId)
+	return
+}

+ 25 - 0
services/data/edb_classify.go

@@ -593,6 +593,19 @@ func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus
 			tipsMsg = "当前指标已用作画图,不可删除"
 			return
 		}
+		// 查询是否用于相关性图表
+		correlationChart := new(data_manage.ChartInfoCorrelation)
+		correlationChartCount, tmpErr := correlationChart.GetChartEdbMappingCount(edbInfoId)
+		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+			errMsg = "删除失败"
+			err = errors.New("判断指标是否被用于相关性图表失败,Err:" + tmpErr.Error())
+			return
+		}
+		if correlationChartCount > 0 {
+			deleteStatus = 3
+			tipsMsg = "当前指标已用作画图,不可删除"
+			return
+		}
 		//判断指标是否用于计算
 		{
 			calculateCount, tmpErr := data_manage.GetEdbInfoCalculateMappingCount(edbInfoId)
@@ -811,6 +824,18 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 			errMsg = "当前指标已用作画图,不可删除"
 			return
 		}
+		// 查询是否用于相关性图表
+		correlationChart := new(data_manage.ChartInfoCorrelation)
+		correlationChartCount, tmpErr := correlationChart.GetChartEdbMappingCount(edbInfoId)
+		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+			errMsg = "删除失败"
+			err = errors.New("判断指标是否被用于相关性图表失败,Err:" + tmpErr.Error())
+			return
+		}
+		if correlationChartCount > 0 {
+			errMsg = "当前指标已用作画图,不可删除"
+			return
+		}
 
 		//如果是普通指标,那么还需要判断是否被预测指标作为源指标
 		if edbInfo.EdbInfoType == 0 {