From 8f37a452e8cb8231ccdd624713c2be440b91bca0 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 10 Apr 2023 11:57:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20Oracle=20=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=20=E8=8E=B7=E5=8F=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A1=A8=E5=AD=97=E6=AE=B5=E9=94=99=E8=AF=AF=20#4933?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/datasource/JdbcProvider.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index 3393e120fa..17ffcd33cf 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -94,7 +94,11 @@ public class JdbcProvider extends DefaultJdbcProvider { tableNamePattern = String.format(MySQLConstants.KEYWORD_TABLE, tableNamePattern); } } - ResultSet resultSet = databaseMetaData.getColumns(null, "%", tableNamePattern, "%"); + String schemaPattern = "%"; + if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.oracle.name())) { + schemaPattern = databaseMetaData.getUserName(); + } + ResultSet resultSet = databaseMetaData.getColumns(null, schemaPattern, tableNamePattern, "%"); while (resultSet.next()) { String tableName = resultSet.getString("TABLE_NAME"); String database; From c70115bd6322e6611bc1d4a006442568d7780e8b Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 10 Apr 2023 15:38:49 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20CK=20=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E8=81=94=E5=8A=A8=E6=97=B6=E9=97=B4=E7=AD=9B=E9=80=89=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/query/ck/CKQueryProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index 1df605c23a..733b7fcaea 100644 --- a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -1151,7 +1151,7 @@ public class CKQueryProvider extends QueryProvider { whereName = String.format(CKConstants.formatDateTime, String.format(CKConstants.toDateTime, cast), format); } if (field.getDeExtractType() == 1) { - whereName = String.format(CKConstants.formatDateTime, originName, format); + whereName = originName; } } else if (field.getDeType() == 2 || field.getDeType() == 3) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { From 5762cb633c301fbda82c7afccc9e08cccb9de020 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 10 Apr 2023 16:51:40 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20API=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=AD=E5=8C=85=E5=90=AB{}=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/ApiDefinitionRequest.java | 1 + .../provider/datasource/ApiProvider.java | 10 ++++++++ frontend/src/lang/en.js | 2 ++ frontend/src/lang/tw.js | 2 ++ frontend/src/lang/zh.js | 2 ++ .../system/datasource/ApiHttpRequestForm.vue | 25 ++++++++++++++++++- .../system/datasource/DsConfiguration.vue | 2 ++ 7 files changed, 43 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java index 6f403541f5..9209c1ee25 100644 --- a/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinitionRequest.java @@ -9,6 +9,7 @@ import java.util.Map; @Data public class ApiDefinitionRequest { private List> headers = new ArrayList<>(); + private List> arguments = new ArrayList<>(); private JSONObject body = new JSONObject(); private AuthManager authManager = new AuthManager(); diff --git a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index 913168cf15..8ceb6910b1 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -28,6 +28,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @@ -145,6 +146,15 @@ public class ApiProvider extends Provider { switch (apiDefinition.getMethod()) { case "GET": + List params = new ArrayList<>(); + for (Map argument : apiDefinition.getRequest().getArguments()) { + if(StringUtils.isNotEmpty(argument.get("name")) && StringUtils.isNotEmpty(argument.get("value"))){ + params.add(argument.get("name") + "=" + URLEncoder.encode(argument.get("value"))); + } + } + if(CollectionUtils.isNotEmpty(params)){ + apiDefinition.setUrl(apiDefinition.getUrl() + "?" + StringUtils.join(params, "&")); + } response = HttpClientUtil.get(apiDefinition.getUrl().trim(), httpClientConfig); break; case "POST": diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 4b96813d7f..69354b8cd6 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1926,6 +1926,8 @@ export default { jsonpath_info: 'Please fill in JsonPath', req_param: 'Request parameters', headers: 'Request header', + query_param: "QUERY param", + query_info: "Follow in the address bar? The following parameters, such as: updateAPI? id=112", key: 'Key', value: 'Value', data_path: 'Extract data', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 33d9d8adb8..eebb8c4b66 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1920,6 +1920,8 @@ export default { jsonpath_info: '請輸入JsonPath', req_param: '請求參數', headers: '請求頭', + query_param: "QUERY參數", + query_info: "地址欄中跟在?後面的參數,如:updateapi? id=112", key: '鍵', value: '值', data_path: '提取數據', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 94d0b27d51..18f7b604de 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1936,6 +1936,8 @@ export default { jsonpath_info: '请填入JsonPath', req_param: '请求参数', headers: '请求头', + query_param: "QUERY參數", + query_info: "地址栏中跟在?后面的参数,如: updateapi?id=112", key: '键', value: '值', data_path: '提取数据', diff --git a/frontend/src/views/system/datasource/ApiHttpRequestForm.vue b/frontend/src/views/system/datasource/ApiHttpRequestForm.vue index 2938b467cc..6534da3c85 100644 --- a/frontend/src/views/system/datasource/ApiHttpRequestForm.vue +++ b/frontend/src/views/system/datasource/ApiHttpRequestForm.vue @@ -36,6 +36,27 @@ /> + + + + {{ $t('datasource.query_param') }} +
+
{{ request.arguments.length - 1 }}
+
+
+
+ +
+ import ApiKeyValue from '@/views/system/datasource/ApiKeyValue' import ApiBody from '@/views/system/datasource/ApiBody' +import ApiVariable from '@/views/system/datasource/ApiVariable.vue' import ApiAuthConfig from '@/views/system/datasource/ApiAuthConfig' import { Body, KeyValue } from '@/views/system/datasource/ApiTestModel' import Convert from '@/views/system/datasource/convert' @@ -87,7 +109,8 @@ export default { components: { ApiAuthConfig, ApiBody, - ApiKeyValue + ApiKeyValue, + ApiVariable }, props: { method: String, diff --git a/frontend/src/views/system/datasource/DsConfiguration.vue b/frontend/src/views/system/datasource/DsConfiguration.vue index b76c5fbec4..abbc54dd32 100644 --- a/frontend/src/views/system/datasource/DsConfiguration.vue +++ b/frontend/src/views/system/datasource/DsConfiguration.vue @@ -993,6 +993,7 @@ export default { method: 'GET', request: { headers: [{}], + arguments: [], body: { type: '', raw: '', @@ -1009,6 +1010,7 @@ export default { dataPath: '', request: { headers: [], + arguments: [], body: { type: '', raw: '',