Browse Source

替换计算引擎

hongze 7 months ago
parent
commit
8fd29d5c54
1 changed files with 8 additions and 20 deletions
  1. 8 20
      models/base_from_calculate.go

+ 8 - 20
models/base_from_calculate.go

@@ -572,6 +572,12 @@ func ReplaceFormula(edbInfoIdArr []*EdbInfo, valArr, valArrMax map[int]float64,
 	if strings.Contains(formulaStr, "MAX()") || strings.Contains(formulaStr, "MIN()") {
 	if strings.Contains(formulaStr, "MAX()") || strings.Contains(formulaStr, "MIN()") {
 		return ""
 		return ""
 	}
 	}
+
+	formulaStr = strings.Replace(formulaStr, "MAX", "max", -1)
+	formulaStr = strings.Replace(formulaStr, "MIN", "min", -1)
+	formulaStr = strings.Replace(formulaStr, "LN", "ln", -1)
+	formulaStr = strings.Replace(formulaStr, "LOG", "log", -1)
+
 	if replaceCount == len(formulaMap) {
 	if replaceCount == len(formulaMap) {
 		return formulaStr
 		return formulaStr
 	} else {
 	} else {
@@ -602,7 +608,7 @@ func GetFormulaReplace(index, edbInfoId int, formulaStr string, edbInfoIdBytes [
 }
 }
 
 
 // GetFormulaMap 获取计算公式的map
 // GetFormulaMap 获取计算公式的map
-func GetFormulaMapBack() map[string]string {
+func GetFormulaMap() map[string]string {
 	funMap := make(map[string]string)
 	funMap := make(map[string]string)
 	funMap["MAX"] = "[@@]"
 	funMap["MAX"] = "[@@]"
 	funMap["MIN"] = "[@!]"
 	funMap["MIN"] = "[@!]"
@@ -618,23 +624,6 @@ func GetFormulaMapBack() map[string]string {
 	return funMap
 	return funMap
 }
 }
 
 
-// GetFormulaMap 获取计算公式的map
-func GetFormulaMap() map[string]string {
-	funMap := make(map[string]string)
-	funMap["max"] = "[@@]"
-	funMap["min"] = "[@!]"
-	funMap["abs"] = "[@#]"
-	funMap["ceil"] = "[@$]"
-	funMap["cos"] = "[@%]"
-	funMap["floor"] = "[@^]"
-	funMap["mod"] = "[@&]"
-	funMap["pow"] = "[@*]"
-	funMap["round"] = "[@`]"
-	funMap["le"] = "[@-]"
-	funMap["exp"] = "[@+]"
-	return funMap
-}
-
 // CalculateBatchSaveReq 添加计算指标的请求参数
 // CalculateBatchSaveReq 添加计算指标的请求参数
 type CalculateBatchSaveReq struct {
 type CalculateBatchSaveReq struct {
 	EdbList          []*CalculateEdbInfoItem        //需要批量计算的指标列表
 	EdbList          []*CalculateEdbInfoItem        //需要批量计算的指标列表
@@ -723,8 +712,7 @@ func CheckFormula2(edbInfoArr []*EdbInfo, formulaMap map[string]string, formulaS
 		valArr[v.EdbInfoId] = 100 + float64(k)
 		valArr[v.EdbInfoId] = 100 + float64(k)
 	}
 	}
 
 
-	//formulaStr = strings.ToUpper(formulaStr)
-	formulaStr = strings.ToLower(formulaStr)
+	formulaStr = strings.ToUpper(formulaStr)
 	// 预设里的max和min无需特殊处理
 	// 预设里的max和min无需特殊处理
 	valArrMax := make(map[int]float64)
 	valArrMax := make(map[int]float64)
 	formulaFormStr := ReplaceFormula(edbInfoArr, valArr, valArrMax, formulaMap, formulaStr, edbInfoIdBytes, false)
 	formulaFormStr := ReplaceFormula(edbInfoArr, valArr, valArrMax, formulaMap, formulaStr, edbInfoIdBytes, false)