From e85fed2a6adde189486cbc8465b3531b4b88b707 Mon Sep 17 00:00:00 2001 From: lisw Date: Tue, 9 Aug 2022 16:02:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=84=E5=88=99=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E5=88=A4=E6=96=AD(=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=8C=85=E5=90=AB)=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/datax/runner/ExecuteUtils.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/ExecuteUtils.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/ExecuteUtils.java index 61eaf09..a6a315f 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/ExecuteUtils.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/ExecuteUtils.java @@ -145,7 +145,8 @@ public class ExecuteUtils { result = !map.containsKey(paramOne); } break; - //数组之间的比较 + //数组之间的比较, + // 包含任意一个 case "array contains": JSONArray oneArray = JSON.parseArray(paramOne.toString()); JSONArray twoArray; @@ -157,8 +158,23 @@ public class ExecuteUtils { List oneList = oneArray.toJavaList(String.class); List twoList = twoArray.toJavaList(String.class); //包含任意一个,则返回true - result = oneList.stream().anyMatch(item-> twoList.contains(item)); + result = twoList.stream().anyMatch(item-> oneList.contains(item)); break; + //包含所有 + case "array all contains": + JSONArray oneAllArray = JSON.parseArray(paramOne.toString()); + JSONArray twoAllArray; + if(paramTwo!=null){ + twoAllArray = (JSONArray) JSONArray.toJSON(paramTwo.toString().split(",")); + }else{ + return false; + } + List oneAllList = oneAllArray.toJavaList(String.class); + List twoAllList = twoAllArray.toJavaList(String.class); + //包含所有,则返回true + result = twoAllList.stream().allMatch(item-> oneAllList.contains(item)); + break; + //不包含所有 case "array not contains": JSONArray oneArrayN = JSON.parseArray(paramOne.toString()); JSONArray twoArrayN; @@ -170,7 +186,7 @@ public class ExecuteUtils { List oneListN = oneArrayN.toJavaList(String.class); List twoListN = twoArrayN.toJavaList(String.class); //全不包含,则返回true - result = oneListN.stream().allMatch(item-> !twoListN.contains(item)); + result = twoListN.stream().allMatch(item-> !oneListN.contains(item)); break; } return result; @@ -252,6 +268,8 @@ public class ExecuteUtils { if (i == array.length - 2) { if ("length()".equals(array[array.length - 1])) { return JSON.toJavaObject(JSON.parseArray(JSON.toJSONString(o)), ArrayList.class).size(); + }else if("array()".equals(array[array.length -1])){ + return JSON.parseArray(JSON.toJSONString(o)); } } //未找到最后一个数组元素则将其识别为map