From d2ccad7261c3b4a0f48d654674945905a292ea92 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Fri, 23 Aug 2024 16:23:00 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20Oracle=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=95=B0=E6=8D=AE=E9=9B=86=E6=8F=90=E7=A4=BA?= =?UTF-8?q?no=20match=20found?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/datasource/provider/CalciteProvider.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java index 48f09f941d..98af3ba8fa 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java @@ -273,6 +273,9 @@ public class CalciteProvider extends Provider { } private boolean isDorisCatalog(DatasourceRequest datasourceRequest) { + if (!datasourceRequest.getDatasource().getType().equalsIgnoreCase("doris")) { + return false; + } DatasourceConfiguration configuration = JsonUtil.parseObject(datasourceRequest.getDatasource().getConfiguration(), Mysql.class); String database = ""; if (StringUtils.isEmpty(configuration.getUrlType()) || configuration.getUrlType().equalsIgnoreCase("hostName")) { @@ -284,7 +287,7 @@ public class CalciteProvider extends Provider { String[] databasePrams = matcher.group(3).split("\\?"); database = databasePrams[0]; } - return datasourceRequest.getDatasource().getType().equalsIgnoreCase("doris") && database.contains("."); + return database.contains("."); } @Override From f781cc25fd3127ebf44022e08b8007c06518bf64 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 26 Aug 2024 12:44:30 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dexcel=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/provider/ExcelUtils.java | 6 +-- .../datasource/server/DatasourceServer.java | 48 +++++++++++++++---- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java index ca691ee612..e927b6dca8 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java @@ -311,9 +311,6 @@ public class ExcelUtils { if (StringUtils.isEmpty(value) || value.length() > 19) { return "TEXT"; } - if (value.length() > 1 && value.startsWith("0")) { - return "TEXT"; - } String regex = "^\\d+(\\.\\d+)?$"; if (!value.matches(regex)) { return "TEXT"; @@ -322,6 +319,9 @@ public class ExcelUtils { Double d = Double.valueOf(value); double eps = 1e-10; if (d - Math.floor(d) < eps) { + if (value.length() > 1 && value.startsWith("0")) { + return "TEXT"; + } return "LONG"; } else { return "DOUBLE"; diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 0b4d40699b..526687f3ef 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -853,16 +853,18 @@ public class DatasourceServer implements DatasourceApi { for (ExcelSheetData sheet : excelFileData.getSheets()) { for (DatasetTableDTO datasetTableDTO : datasetTableDTOS) { if (excelDataTableName(datasetTableDTO.getTableName()).equals(sheet.getTableName()) || isCsv(file.getOriginalFilename())) { - List fieldNames = sheet.getFields().stream().map(TableField::getName).collect(Collectors.toList()); - List fieldTypes = sheet.getFields().stream().map(TableField::getFieldType).collect(Collectors.toList()); - Collections.sort(fieldNames); - Collections.sort(fieldTypes); + List newTableFields = sheet.getFields(); + newTableFields.sort((o1, o2) -> { + return o1.getName().compareTo(o2.getName()); + }); + datasourceRequest.setTable(datasetTableDTO.getTableName()); - List oldFieldNames = ExcelUtils.getTableFields(datasourceRequest).stream().map(TableField::getName).collect(Collectors.toList()); - List oldFieldTypes = ExcelUtils.getTableFields(datasourceRequest).stream().map(TableField::getFieldType).collect(Collectors.toList()); - Collections.sort(oldFieldNames); - Collections.sort(oldFieldTypes); - if (fieldNames.equals(oldFieldNames) && fieldTypes.equals(oldFieldTypes)) { + List oldTableFields = ExcelUtils.getTableFields(datasourceRequest); + oldTableFields.sort((o1, o2) -> { + return o1.getName().compareTo(o2.getName()); + }); + + if (isEqual(newTableFields, oldTableFields)) { sheet.setDeTableName(datasetTableDTO.getTableName()); excelSheetDataList.add(sheet); } @@ -888,6 +890,34 @@ public class DatasourceServer implements DatasourceApi { return excelFileData; } + private boolean isEqual(List newTableFields, List oldTableFields) { + boolean isEqual = true; + if (CollectionUtils.isEmpty(newTableFields) || CollectionUtils.isEmpty(oldTableFields)) { + isEqual = false; + } + for (int i = 0; i < newTableFields.size(); i++) { + if (!newTableFields.get(i).getName().equals(oldTableFields.get(i).getName())) { + isEqual = false; + break; + } + if (!newTableFields.get(i).getFieldType().equals(oldTableFields.get(i).getFieldType())) { + if (oldTableFields.get(i).getFieldType().equals("TEXT")) { + continue; + } + if (oldTableFields.get(i).getFieldType().equals("DOUBLE")) { + if (newTableFields.get(i).getFieldType().equals("LONG")) { + continue; + } + } + isEqual = false; + break; + } + } + + return isEqual; + + } + private boolean isCsv(String fileName) { String suffix = fileName.substring(fileName.lastIndexOf(".") + 1); return suffix.equalsIgnoreCase("csv"); From 0762fa28192cc07f8c8909c59833e46f23919abc Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 26 Aug 2024 15:05:14 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E5=AD=97=E4=BD=93=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/db/migration/V2.10__ddl.sql | 13 +++++ core/core-frontend/src/api/font.ts | 39 +++++++++++++++ .../src/views/system/font/index.vue | 35 +++++++++++-- .../io/dataease/api/font/api/FontApi.java | 49 +++++++++++++++++++ .../dto/FontDto.java} | 6 ++- .../api/typeface/api/SysTypefaceApi.java | 40 --------------- 6 files changed, 136 insertions(+), 46 deletions(-) create mode 100644 core/core-frontend/src/api/font.ts create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/font/api/FontApi.java rename sdk/api/api-base/src/main/java/io/dataease/api/{typeface/dto/SysTypefaceDto.java => font/dto/FontDto.java} (85%) delete mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/typeface/api/SysTypefaceApi.java diff --git a/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql b/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql index 0ed36649c2..5f1d1d8455 100644 --- a/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql +++ b/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql @@ -70,3 +70,16 @@ alter table `core_chart_view` update visualization_outer_params_target_view_info tvi INNER JOIN core_chart_view ccv on tvi.target_view_id = ccv.id set tvi.target_ds_id = ccv.table_id + + +DROP TABLE IF EXISTS `core_font`; +CREATE TABLE `core_font` +( + `id` bigint NOT NULL COMMENT 'ID', + `name` varchar(255) NOT NULL COMMENT '字体名称', + `file_name` varchar(255) NOT NULL COMMENT '文件名称', + `file_trans_name` varchar(255) NOT NULL COMMENT '文件转换名称', + `is_default` tinyint(1) NOT NULL COMMENT '是否默认', + `is_BuiltIn` tinyint(1) NOT NULL COMMENT '是否内置', + PRIMARY KEY (`id`) +); diff --git a/core/core-frontend/src/api/font.ts b/core/core-frontend/src/api/font.ts new file mode 100644 index 0000000000..b47c556342 --- /dev/null +++ b/core/core-frontend/src/api/font.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +export interface Font { + id: string + name: string + fileName: string + isDefault: boolean + isBuiltin?: boolean +} + +export const list = (data = {}) => { + return request.post({ url: '/typeface/listFont', data }).then(res => { + return res?.data + }) +} + +export const create = (data = {}) => { + return request.post({ url: '/typeface/create', data }).then(res => { + return res?.data + }) +} + +export const edit = (data = {}) => { + return request.post({ url: '/typeface/edit', data }).then(res => { + return res?.data + }) +} + +export const changeDefault = (data = {}) => { + return request.post({ url: '/typeface/changeDefault', data }).then(res => { + return res?.data + }) +} + +export const deleteById = id => { + return request.post({ url: '/typeface/delete/' + id, data: {} }).then(res => { + return res?.data + }) +} diff --git a/core/core-frontend/src/views/system/font/index.vue b/core/core-frontend/src/views/system/font/index.vue index 9a2321fc65..e55dd41f84 100644 --- a/core/core-frontend/src/views/system/font/index.vue +++ b/core/core-frontend/src/views/system/font/index.vue @@ -1,12 +1,39 @@