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/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/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/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/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(",`"); } 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")); } 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() 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 } }, 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: [], 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),