From 5275c28bd397a0ad48815c49563995b05cb070cc Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 9 Nov 2023 16:34:18 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E6=96=B0=E5=BC=80=E5=8F=91=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E6=8F=92=E4=BB=B6=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=AD=98=E5=9C=A8=E4=BD=BF=E7=94=A8=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E6=BA=90=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E5=88=99=E6=97=A0=E6=B3=95=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/controller/sys/SysPluginController.java | 2 +- .../main/java/io/dataease/service/sys/PluginService.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java b/core/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java index 782953a328..a3f81c0aeb 100644 --- a/core/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java +++ b/core/backend/src/main/java/io/dataease/controller/sys/SysPluginController.java @@ -58,7 +58,7 @@ public class SysPluginController { @RequiresPermissions("plugin:upload") public Map update(@PathVariable("pluginId") Long pluginId, @RequestParam("file") MultipartFile file) throws Exception { DeFileUtils.validateFile(file); - if (pluginService.uninstall(pluginId)) { + if (pluginService.uninstallForUpdate(pluginId, true)) { return pluginService.localInstall(file); } return null; diff --git a/core/backend/src/main/java/io/dataease/service/sys/PluginService.java b/core/backend/src/main/java/io/dataease/service/sys/PluginService.java index 9df89c03dc..f3589418d9 100644 --- a/core/backend/src/main/java/io/dataease/service/sys/PluginService.java +++ b/core/backend/src/main/java/io/dataease/service/sys/PluginService.java @@ -221,6 +221,10 @@ public class PluginService { * @return */ public Boolean uninstall(Long pluginId) { + return uninstallForUpdate(pluginId, false); + } + + public Boolean uninstallForUpdate(Long pluginId, boolean forUpdate) { MyPlugin myPlugin = myPluginMapper.selectByPrimaryKey(pluginId); if (ObjectUtils.isEmpty(myPlugin)) { String msg = "当前插件不存在"; @@ -232,7 +236,7 @@ public class PluginService { CacheUtils.removeAll(AuthConstants.USER_ROLE_CACHE_NAME); CacheUtils.removeAll(AuthConstants.USER_PERMISSION_CACHE_NAME); - if (myPlugin.getCategory().equalsIgnoreCase("datasource")) { + if (myPlugin.getCategory().equalsIgnoreCase("datasource") && !forUpdate) { if (CollectionUtils.isNotEmpty(datasourceService.selectByType(myPlugin.getDsType()))) { DEException.throwException(Translator.get("i18n_plugin_not_allow_delete")); } From dcfaeb33b37abe2428b15d961f4b5842b8883eba Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 9 Nov 2023 17:06:20 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20=E6=89=80=E6=9C=89=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E7=99=BB=E5=BD=95=EF=BC=8C=E5=9D=87=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E8=A6=81=E6=B1=82=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/auth/server/AuthServer.java | 5 +++++ core/frontend/src/App.vue | 6 ++++-- core/frontend/src/store/modules/user.js | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/core/backend/src/main/java/io/dataease/auth/server/AuthServer.java index 9f1b2b082a..3684ff8869 100644 --- a/core/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/core/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -196,6 +196,11 @@ public class AuthServer implements AuthApi { } if (user.getIsAdmin() && user.getPassword().equals("40b8893ea9ebc2d631c4bb42bb1e8996")) { result.put("passwordModified", false); + result.put("defaultPwd", "dataease"); + } + if (!user.getIsAdmin() && user.getPassword().equals("83d923c9f1d8fcaa46cae0ed2aaa81b5")) { + result.put("passwordModified", false); + result.put("defaultPwd", DEFAULT_PWD); } } diff --git a/core/frontend/src/App.vue b/core/frontend/src/App.vue index 380888af6b..40f3077521 100644 --- a/core/frontend/src/App.vue +++ b/core/frontend/src/App.vue @@ -13,7 +13,7 @@ :title="$t('user.change_password')" :show-close="false" > - + @@ -28,7 +28,8 @@ export default { components: { PluginCom, PasswordUpdateForm }, data() { return { - showPasswordModifiedDialog: false + showPasswordModifiedDialog: false, + defaultPwd: 'dataease' } }, computed: { @@ -46,6 +47,7 @@ export default { }, mounted() { const passwordModified = JSON.parse(localStorage.getItem('passwordModified')) + this.defaultPwd = localStorage.getItem('defaultPwd') if (typeof passwordModified === 'boolean') { this.$store.commit('user/SET_PASSWORD_MODIFIED', passwordModified) } diff --git a/core/frontend/src/store/modules/user.js b/core/frontend/src/store/modules/user.js index 4156ec3ea9..a49152b1c6 100644 --- a/core/frontend/src/store/modules/user.js +++ b/core/frontend/src/store/modules/user.js @@ -86,6 +86,9 @@ const actions = { if (Object.prototype.hasOwnProperty.call(data, 'passwordModified')) { passwordModified = data.passwordModified } + if (Object.prototype.hasOwnProperty.call(data, 'defaultPwd')) { + localStorage.setItem('defaultPwd', data.defaultPwd) + } commit('SET_PASSWORD_MODIFIED', passwordModified) localStorage.setItem('passwordModified', passwordModified) resolve() From 1bff8251c1cf68dd14cc3cdc0d26374504cd2faf Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 9 Nov 2023 17:25:04 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20=E5=9C=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E9=85=8D=E7=BD=AE=E9=A1=B5=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=AF=B7=E6=B1=82=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E7=9A=84=E6=8E=A7=E5=88=B6=EF=BC=8C=E9=BB=98=E8=AE=A4=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4=E4=B8=BA=EF=BC=9A?= =?UTF-8?q?30s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/datasource/ApiDefinition.java | 1 + .../provider/datasource/ApiProvider.java | 9 ++------ .../system/datasource/DsConfiguration.vue | 23 +++++++++++++++++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java b/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java index 540081cefa..f786e37618 100644 --- a/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java +++ b/core/backend/src/main/java/io/dataease/controller/request/datasource/ApiDefinition.java @@ -17,6 +17,7 @@ public class ApiDefinition { private List fields; private ApiDefinitionRequest request; private String dataPath; + private Integer queryTimeout; private String status; private List> data = new ArrayList<>(); private List jsonFields = new ArrayList<>(); diff --git a/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java b/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java index b9478cb16e..31d26fce1c 100644 --- a/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/datasource/ApiProvider.java @@ -37,14 +37,10 @@ public class ApiProvider extends Provider { private static String path = "['%s']"; - @Resource - private SystemParameterService systemParameterService; - @Override public List getData(DatasourceRequest datasourceRequest) throws Exception { - BasicInfo basicInfo = systemParameterService.basicInfo(); ApiDefinition apiDefinition = checkApiDefinition(datasourceRequest); - String response = execHttpRequest(apiDefinition, StringUtils.isNotBlank(basicInfo.getFrontTimeOut()) ? Integer.parseInt(basicInfo.getFrontTimeOut()) : 10); + String response = execHttpRequest(apiDefinition, apiDefinition.getQueryTimeout() == null || apiDefinition.getQueryTimeout()<=0 ? 30 : apiDefinition.getQueryTimeout()); return fetchResult(response, apiDefinition); } @@ -68,12 +64,11 @@ public class ApiProvider extends Provider { } public Map fetchResultAndField(DatasourceRequest datasourceRequest) throws Exception { - BasicInfo basicInfo = systemParameterService.basicInfo(); Map result = new HashMap<>(); List dataList = new ArrayList<>(); List fieldList = new ArrayList<>(); ApiDefinition apiDefinition = checkApiDefinition(datasourceRequest); - String response = execHttpRequest(apiDefinition, StringUtils.isNotBlank(basicInfo.getFrontTimeOut()) ? Integer.parseInt(basicInfo.getFrontTimeOut()) : 10); + String response = execHttpRequest(apiDefinition, apiDefinition.getQueryTimeout() == null || apiDefinition.getQueryTimeout()<=0 ? 30 : apiDefinition.getQueryTimeout()); fieldList = getTableFields(apiDefinition); result.put("fieldList", fieldList); diff --git a/core/frontend/src/views/system/datasource/DsConfiguration.vue b/core/frontend/src/views/system/datasource/DsConfiguration.vue index 53dea4b597..34b9f4894d 100644 --- a/core/frontend/src/views/system/datasource/DsConfiguration.vue +++ b/core/frontend/src/views/system/datasource/DsConfiguration.vue @@ -525,6 +525,20 @@ + + + + + +
{{ $t('datasource.req_param') }} @@ -981,6 +995,13 @@ export default { trigger: 'blur' } ], + 'apiQueryTimeout': [ + { + required: true, + message: i18n.t('datasource.please_input_query_timeout'), + trigger: 'blur' + } + ], dataPath: [ { required: true, @@ -1001,6 +1022,7 @@ export default { name: '', url: '', method: 'GET', + queryTimeout: 30, request: { headers: [{}], arguments: [], @@ -1018,6 +1040,7 @@ export default { url: '', method: 'GET', dataPath: '', + queryTimeout: 30, request: { headers: [], arguments: [], From e2f59d5da4bb87c55f8a01ae428d56610cfc94ad Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 9 Nov 2023 17:51:29 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20decimal=E7=B1=BB=E5=9E=8B=E5=BA=94?= =?UTF-8?q?=E8=AF=A5=E6=98=A0=E5=B0=84=E4=B8=BADoris=E7=9A=84DECIMALV3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/provider/engine/doris/DorisDDLProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java index 374fa8460f..011eb80edc 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java @@ -73,7 +73,7 @@ public class DorisDDLProvider extends DDLProviderImpl { break; case 3: if(datasetTableField.getType().equalsIgnoreCase("DECIMAL") && datasetTableField.getAccuracy() != 0){ - Column_Fields.append("DECIMAL(" + datasetTableField.getSize() + "," + datasetTableField.getAccuracy() + ")").append(",`"); + Column_Fields.append("DecimalV3(" + datasetTableField.getSize() + "," + datasetTableField.getAccuracy() + ")").append(",`"); }else { Column_Fields.append("DOUBLE").append(",`"); } From f83d6ac88012400fd9b62ea4645e4bb5b18cd2f0 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Fri, 10 Nov 2023 16:52:09 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20=E3=80=90=E4=BB=AA=E8=A1=A8?= =?UTF-8?q?=E6=9D=BF=E3=80=91=E6=96=87=E6=9C=AC=E6=90=9C=E7=B4=A2=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=94=AF=E6=8C=81=20SQL=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/panel/filter/filterMain/FilterControl.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/frontend/src/views/panel/filter/filterMain/FilterControl.vue b/core/frontend/src/views/panel/filter/filterMain/FilterControl.vue index 4bec477cef..d4ce4b3a16 100644 --- a/core/frontend/src/views/panel/filter/filterMain/FilterControl.vue +++ b/core/frontend/src/views/panel/filter/filterMain/FilterControl.vue @@ -368,7 +368,7 @@ export default { this.showParams = true this.isRangeParamWidget = this.widget.isRangeParamWidget && this.widget.isRangeParamWidget() } - if ('timeYearWidget,timeMonthWidget,timeDateWidget,textSelectWidget,numberSelectWidget'.indexOf(this.widget.name) !== -1) { + if ('textInputWidget,timeYearWidget,timeMonthWidget,timeDateWidget,textSelectWidget,numberSelectWidget'.indexOf(this.widget.name) !== -1) { this.showParams = true } }, From 3a11d762c03d8a16f218007770c7a42533a2b927 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Fri, 10 Nov 2023 17:10:32 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20oracle=20=E6=94=AF=E6=8C=81=20?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E9=9B=86"US7ASCII",=20"AL32UTF8"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/plugins/common/constants/DatasourceTypes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/constants/DatasourceTypes.java b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/constants/DatasourceTypes.java index 1ded945483..ad6f1c77df 100644 --- a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/constants/DatasourceTypes.java +++ b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/constants/DatasourceTypes.java @@ -15,7 +15,7 @@ public enum DatasourceTypes { pg("pg", "PostgreSQL", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null,true, DatabaseClassification.OLTP), kingbase("kingbase", "KingBase", "\"", "\"", "\"", "\"", "", false, DatasourceCalculationMode.DIRECT, null,null,true, DatabaseClassification.OLTP), sqlServer("sqlServer", "SQL Server", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null,true, DatabaseClassification.OLTP), - oracle("oracle", "Oracle", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, Arrays.asList("Default", "GBK", "BIG5", "ISO-8859-1", "UTF-8", "UTF-16", "CP850", "EUC_JP", "EUC_KR"), Arrays.asList("Default", "GBK", "UTF-8"),true, DatabaseClassification.OLTP), + oracle("oracle", "Oracle", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, Arrays.asList("Default", "GBK", "BIG5", "ISO-8859-1", "UTF-8", "UTF-16", "CP850", "EUC_JP", "EUC_KR", "US7ASCII", "AL32UTF8"), Arrays.asList("Default", "GBK", "UTF-8"),true, DatabaseClassification.OLTP), mongo("mongo", "MongoDB", "`", "`", "\"", "\"", "rebuildschema=true&authSource=admin", true, DatasourceCalculationMode.DIRECT, null, null,true, DatabaseClassification.OLTP), ck("ck", "ClickHouse", "`", "`", "", "", "", true, DatasourceCalculationMode.DIRECT, null, null,true, DatabaseClassification.OLAP), db2("db2", "Db2", "\"", "\"", "\"", "\"", "", true, DatasourceCalculationMode.DIRECT_AND_SYNC, null, null,true, DatabaseClassification.OLTP),