|
@@ -130,13 +130,11 @@ public class RuleServiceImpl implements RuleService {
|
|
|
if (min == null || min.isEmpty()) {
|
|
if (min == null || min.isEmpty()) {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
- String[] split = min.split(",");
|
|
|
|
|
- for (String sp : split) {
|
|
|
|
|
- if (sp.equals(value)) {
|
|
|
|
|
- return true;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return false;
|
|
|
|
|
|
|
+ boolean contains = Arrays.stream(min.split(","))
|
|
|
|
|
+ .anyMatch(sp -> sp.trim().equals(value.trim()));
|
|
|
|
|
+ // "1"(EQ):在列表中匹配;"6"(NE):不在列表中匹配
|
|
|
|
|
+ boolean isEqgate = OperatorConstant.InputNumber.EQ.getCode().equals(linkVo.getOperator());
|
|
|
|
|
+ return isEqgate ? contains : !contains;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private boolean inputNumberEqual(RuleAttrLinkVo linkVo, String value) {
|
|
private boolean inputNumberEqual(RuleAttrLinkVo linkVo, String value) {
|
|
@@ -165,7 +163,7 @@ public class RuleServiceImpl implements RuleService {
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
} else if (OperatorConstant.InputNumber.NE.getCode().equals(linkVo.getOperator())) {// 不包含:不在 [min, max] 区间内
|
|
} else if (OperatorConstant.InputNumber.NE.getCode().equals(linkVo.getOperator())) {// 不包含:不在 [min, max] 区间内
|
|
|
- if (min > v && max < v) {
|
|
|
|
|
|
|
+ if (min > v || max < v) {
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -174,27 +172,32 @@ public class RuleServiceImpl implements RuleService {
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean inputTagEqual(RuleAttrLinkVo linkVo, String value) {
|
|
private boolean inputTagEqual(RuleAttrLinkVo linkVo, String value) {
|
|
|
- //将值进行分割
|
|
|
|
|
-
|
|
|
|
|
- AtomicBoolean returnBool = new AtomicBoolean(false);
|
|
|
|
|
-
|
|
|
|
|
- List<String> equalsMap = new ArrayList<>();
|
|
|
|
|
- //字符型评分
|
|
|
|
|
- equalsMap.add("CharacterBasedRating");
|
|
|
|
|
- //交强字符型评分
|
|
|
|
|
- equalsMap.add("JqCharacterBasedRating");
|
|
|
|
|
- //商业字符型评分
|
|
|
|
|
- equalsMap.add("SyCharacterBasedRating");
|
|
|
|
|
-
|
|
|
|
|
- return returnBool.get();
|
|
|
|
|
|
|
+ String min = linkVo.getMin();
|
|
|
|
|
+ if (min == null || min.isEmpty() || value == null) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ String[] split = min.split(",");
|
|
|
|
|
+ List<String> equalsMap = Arrays.asList(
|
|
|
|
|
+ "CharacterBasedRating", "JqCharacterBasedRating", "SyCharacterBasedRating");
|
|
|
|
|
+ boolean matched;
|
|
|
|
|
+ if (equalsMap.contains(linkVo.getAttrCode())) {
|
|
|
|
|
+ matched = Arrays.stream(split).anyMatch(value::equals);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ matched = Arrays.stream(split).anyMatch(value::contains);
|
|
|
|
|
+ }
|
|
|
|
|
+ boolean isEqgate = OperatorConstant.InputNumber.EQ.getCode().equals(linkVo.getOperator());
|
|
|
|
|
+ return isEqgate ? matched : !matched;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean selectEqual(RuleAttrLinkVo linkVo, String value) {
|
|
private boolean selectEqual(RuleAttrLinkVo linkVo, String value) {
|
|
|
- if (linkVo.getMin() != null && linkVo.getMin().contains(value)) {
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ String min = linkVo.getMin();
|
|
|
|
|
+ if (min == null || min.isEmpty() || value == null) {
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
- return false;
|
|
|
|
|
|
|
+ boolean contains = min.contains(value);
|
|
|
|
|
+ boolean isEqgate = OperatorConstant.InputNumber.EQ.getCode().equals(linkVo.getOperator());
|
|
|
|
|
+ return isEqgate ? contains : !contains;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private boolean radioEqual(RuleAttrLinkVo linkVo, String value) {
|
|
private boolean radioEqual(RuleAttrLinkVo linkVo, String value) {
|
|
@@ -204,6 +207,7 @@ public class RuleServiceImpl implements RuleService {
|
|
|
boolean valueBool = Boolean.valueOf(value);
|
|
boolean valueBool = Boolean.valueOf(value);
|
|
|
if (linkVo.getMin().equals("5") || linkVo.getMin().equals("6")) {
|
|
if (linkVo.getMin().equals("5") || linkVo.getMin().equals("6")) {
|
|
|
minValue = linkVo.getMin().equals("5") ? false : true;
|
|
minValue = linkVo.getMin().equals("5") ? false : true;
|
|
|
|
|
+ valueBool = value.equals("5") ? false : true;
|
|
|
}
|
|
}
|
|
|
if (linkVo.getOperator().equals(OperatorConstant.InputNumber.EQ.getCode())) {
|
|
if (linkVo.getOperator().equals(OperatorConstant.InputNumber.EQ.getCode())) {
|
|
|
return minValue == valueBool;
|
|
return minValue == valueBool;
|
|
@@ -249,6 +253,10 @@ public class RuleServiceImpl implements RuleService {
|
|
|
if (v.isAfter(max) || v.isEqual(max)) {
|
|
if (v.isAfter(max) || v.isEqual(max)) {
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
+ } else if (OperatorConstant.DateTime.NE.getCode().equals(linkVo.getOperator())) {
|
|
|
|
|
+ if (!(v.isAfter(min) && v.isBefore(max))) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|