Prechádzať zdrojové kódy

预测指标的指标运算

xyxie 1 rok pred
rodič
commit
451ad8d417
1 zmenil súbory, kde vykonal 20 pridanie a 11 odobranie
  1. 20 11
      controllers/base_from_predict_calculate.go

+ 20 - 11
controllers/base_from_predict_calculate.go

@@ -335,11 +335,18 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		formulaStr += v.FromTag + ","
 		edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
 	}
-	formulaMap := utils.CheckFormula(req.CalculateFormula)
-	for _, v := range formulaMap {
-		if !strings.Contains(formulaStr, v) {
-			br.Msg = "公式错误,请重新填写"
-			return
+	formulaSlice, err := utils.CheckFormulaJson(req.CalculateFormula)
+	if err != nil {
+		br.Msg = "公式格式错误,请重新填写"
+		return
+	}
+	for _, formula := range formulaSlice {
+		formulaMap := utils.CheckFormula(formula)
+		for _, v := range formulaMap {
+			if !strings.Contains(formulaStr, v) {
+				br.Msg = "公式错误,请重新填写"
+				return
+			}
 		}
 	}
 
@@ -408,12 +415,14 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 			calculateMappingList = append(calculateMappingList, calculateMappingItem)
 		}
 	}
-
-	//预先计算,判断公式是否正常
-	ok, _ := models.CheckFormula2(edbInfoList, formulaMap, calculateFormula, edbInfoIdBytes)
-	if !ok {
-		br.Msg = "生成计算指标失败,请使用正确的计算公式"
-		return
+	for _, v := range formulaSlice {
+		formulaMap := utils.CheckFormula(v)
+		//预先计算,判断公式是否正常
+		ok, _ := models.CheckFormula2(edbInfoList, formulaMap, v, edbInfoIdBytes)
+		if !ok {
+			br.Msg = "生成计算指标失败,请使用正确的计算公式"
+			return
+		}
 	}
 
 	//处理同名指标