From 0145f67d7da3ad069b7e9e229802d42de14bbc82 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 10 Apr 2024 13:57:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=87=E6=9C=AC=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8E=E6=88=96=E6=9D=A1=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E7=B2=BE=E5=87=86=E3=80=81=E6=A8=A1=E7=B3=8A=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/engine/trans/ExtWhere2Str.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java b/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java index 452e21ddac..8ad1817749 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java +++ b/core/core-backend/src/main/java/io/dataease/engine/trans/ExtWhere2Str.java @@ -102,7 +102,13 @@ public class ExtWhere2Str { String whereTerm = Utils.transFilterTerm(request.getOperator()); String whereValue = ""; - if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { + if (StringUtils.containsIgnoreCase(request.getOperator(), "-")) { + String[] split = request.getOperator().split("-"); + String term1 = split[0]; + String logic = split[1]; + String term2 = split[2]; + whereValue = term1 + getValue(term1, value.get(0)) + logic + whereName + term2 + getValue(term2, value.get(1)); + } else if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { // 过滤空数据 if (value.contains(SQLConstants.EMPTY_SIGN)) { whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null "; @@ -144,4 +150,14 @@ public class ExtWhere2Str { meta.setExtWheresDialect(fieldsDialect); } + private static String getValue(String term, String value) { + switch (term) { + case "like": + return "'%" + value + "%'"; + case "eq": + return "'" + value + "'"; + } + return null; + } + }