|
@@ -2,6 +2,7 @@ package com.jfireel.expression.node.impl;
|
|
|
|
|
|
import com.jfireel.expression.Expression;
|
|
|
import com.jfireel.expression.token.Operator;
|
|
|
+import com.jfireel.expression.util.ValueUtil;
|
|
|
import com.jfireel.expression.util.number.MultiplyUtil;
|
|
|
import com.mixsmart.utils.CustomFunction;
|
|
|
import com.mixsmart.utils.StringUtils;
|
|
@@ -9,6 +10,7 @@ import com.mixsmart.utils.StringUtils;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -34,6 +36,11 @@ public class MutliNode extends OperatorResultNode {
|
|
|
String leftValueStr = Collections.nCopies(n, leftValue).stream().map(StringUtils::handleNull).collect(Collectors.joining("*"));
|
|
|
return CustomFunction.dXd(rightValue, leftValueStr, 1, 1);
|
|
|
}
|
|
|
+ if (leftValue instanceof List || rightValue instanceof List) {
|
|
|
+ Object[] leftAndRight = ValueUtil.obtain(leftOperand.calculate(variables), rightOperand.calculate(variables));
|
|
|
+ leftValue = leftAndRight[0];
|
|
|
+ rightValue = leftAndRight[1];
|
|
|
+ }
|
|
|
if (leftValue instanceof String && StringUtils.isNumber(leftValue)) {
|
|
|
leftValue = new BigDecimal(leftValue.toString());
|
|
|
}
|