Эх сурвалжийг харах

fix:跨品种分析,添加图表时所选的标签,品种未关联指标时,不应支持保存

Roc 11 сар өмнө
parent
commit
00059803b1

+ 112 - 0
services/data/cross_variety/chart.go

@@ -661,6 +661,62 @@ func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *da
 		_, err = data_manage.AddChartClassify(chartClassify)
 	}
 
+	// 数据校验(品种、标签、指标)
+	{
+		// 标签m
+		var xTagInfo, yTagInfo *cross_varietyModel.ChartTag
+		{
+			tagList, tmpErr := cross_varietyModel.GetTagListByIdList([]int{req.TagX, req.TagY})
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			for _, v := range tagList {
+				if v.ChartTagId == req.TagX {
+					xTagInfo = v
+				} else if v.ChartTagId == req.TagY {
+					yTagInfo = v
+				}
+			}
+		}
+		if xTagInfo == nil {
+			errMsg = "找不到对应的X轴标签"
+			err = errors.New(errMsg)
+			return
+		}
+		if yTagInfo == nil {
+			errMsg = "找不到对应的Y轴标签"
+			err = errors.New(errMsg)
+			return
+		}
+
+		_, _, edbInfoIdList, tmpErr := GetXYEdbIdList(req.TagX, req.TagY, req.VarietyList)
+		if tmpErr != nil {
+			err = errors.New("获取标签配置的品种失败,ERR:" + tmpErr.Error())
+			return
+		}
+
+		if len(edbInfoIdList) <= 0 {
+			errMsg = "品种未配置指标"
+			err = errors.New(errMsg)
+			isSendEmail = false
+			return
+		}
+		mappingList, tmpErr := data_manage.GetChartEdbMappingListByEdbInfoIdList(edbInfoIdList)
+		if tmpErr != nil {
+			errMsg = "获取指标信息失败"
+			err = errors.New("获取指标信息失败,ERR:" + tmpErr.Error())
+			return
+		}
+
+		if len(mappingList) <= 0 {
+			errMsg = "关联指标为空"
+			err = errors.New(errMsg)
+			isSendEmail = false
+			return
+		}
+	}
+
 	var chartInfoId int
 	// 判断图表是否存在
 	//var condition string
@@ -859,6 +915,62 @@ func EditChartInfo(req request.EditChartReq, sysUser *system.Admin) (chartItem *
 		isSendEmail = false
 		return
 	}
+	
+	// 数据校验(品种、标签、指标)
+	{
+		// 标签m
+		var xTagInfo, yTagInfo *cross_varietyModel.ChartTag
+		{
+			tagList, tmpErr := cross_varietyModel.GetTagListByIdList([]int{req.TagX, req.TagY})
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			for _, v := range tagList {
+				if v.ChartTagId == req.TagX {
+					xTagInfo = v
+				} else if v.ChartTagId == req.TagY {
+					yTagInfo = v
+				}
+			}
+		}
+		if xTagInfo == nil {
+			errMsg = "找不到对应的X轴标签"
+			err = errors.New(errMsg)
+			return
+		}
+		if yTagInfo == nil {
+			errMsg = "找不到对应的Y轴标签"
+			err = errors.New(errMsg)
+			return
+		}
+
+		_, _, edbInfoIdList, tmpErr := GetXYEdbIdList(req.TagX, req.TagY, req.VarietyList)
+		if tmpErr != nil {
+			err = errors.New("获取标签配置的品种失败,ERR:" + tmpErr.Error())
+			return
+		}
+
+		if len(edbInfoIdList) <= 0 {
+			errMsg = "品种未配置指标"
+			err = errors.New(errMsg)
+			isSendEmail = false
+			return
+		}
+		mappingList, tmpErr := data_manage.GetChartEdbMappingListByEdbInfoIdList(edbInfoIdList)
+		if tmpErr != nil {
+			errMsg = "获取指标信息失败"
+			err = errors.New("获取指标信息失败,ERR:" + tmpErr.Error())
+			return
+		}
+
+		if len(mappingList) <= 0 {
+			errMsg = "关联指标为空"
+			err = errors.New(errMsg)
+			isSendEmail = false
+			return
+		}
+	}
 
 	//判断图表是否存在
 	//var condition string