From ae90ed3ab9d8253fb3ccd00ea615155787bd06e1 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Sun, 26 Sep 2021 17:54:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ck=20=E6=97=B6=E9=97=B4=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/provider/ck/CKQueryProvider.java | 73 +++++++++++++++---- .../src/views/system/datasource/DsTree.vue | 2 +- 2 files changed, 60 insertions(+), 15 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java index 410b05a06e..e661b23015 100644 --- a/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java @@ -803,12 +803,29 @@ public class CKQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { whereValue = "'%" + value + "%'"; } else { - whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value); + if(field.getDeType() == DeTypeConstants.DE_TIME){ + whereValue = String.format(CKConstants.toDateTime, "'" + value + "'"); + }else { + whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value); + } } - list.add(SQLObj.builder() - .whereField(whereName) - .whereTermAndValue(whereTerm + whereValue) - .build()); + if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "null")){ + list.add(SQLObj.builder() + .whereField(whereName) + .whereTermAndValue("is null") + .build()); + }else if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")){ + list.add(SQLObj.builder() + .whereField(whereName) + .whereTermAndValue("is not null") + .build()); + }else { + list.add(SQLObj.builder() + .whereField(whereName) + .whereTermAndValue(whereTerm + whereValue) + .build()); + } + } return list; } @@ -870,10 +887,23 @@ public class CKQueryProvider extends QueryProvider { } else { whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value.get(0)); } - list.add(SQLObj.builder() - .whereField(whereName) - .whereTermAndValue(whereTerm + whereValue) - .build()); + + if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "null")){ + list.add(SQLObj.builder() + .whereField(whereName) + .whereTermAndValue("is null") + .build()); + }else if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "not_null")){ + list.add(SQLObj.builder() + .whereField(whereName) + .whereTermAndValue("is not null") + .build()); + }else { + list.add(SQLObj.builder() + .whereField(whereName) + .whereTermAndValue(whereTerm + whereValue) + .build()); + } } return list; } @@ -991,11 +1021,26 @@ public class CKQueryProvider extends QueryProvider { } else { whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, f.getValue()); } - list.add(SQLObj.builder() - .whereField(fieldAlias) - .whereAlias(fieldAlias) - .whereTermAndValue(whereTerm + whereValue) - .build()); + + if(y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "null")){ + list.add(SQLObj.builder() + .whereField(fieldAlias) + .whereAlias(fieldAlias) + .whereTermAndValue("is null") + .build()); + }else if(y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")){ + list.add(SQLObj.builder() + .whereField(fieldAlias) + .whereAlias(fieldAlias) + .whereTermAndValue("is not null") + .build()); + }else { + list.add(SQLObj.builder() + .whereField(fieldAlias) + .whereAlias(fieldAlias) + .whereTermAndValue(whereTerm + whereValue) + .build()); + } }); } return list; diff --git a/frontend/src/views/system/datasource/DsTree.vue b/frontend/src/views/system/datasource/DsTree.vue index f1b5e482fc..2eb2680db0 100644 --- a/frontend/src/views/system/datasource/DsTree.vue +++ b/frontend/src/views/system/datasource/DsTree.vue @@ -156,7 +156,7 @@ export default { return 'PostgreSQL' } else if (type === 'es') { return 'Elasticsearch' - } else if (type === 'ch') { + } else if (type === 'ck') { return 'ClickHouse' } },