From 25a3a03df125a12a5d6ca3368d575308d7581f4e Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 31 Oct 2022 17:26:27 +0800 Subject: [PATCH 01/21] =?UTF-8?q?refactor:=20=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/lang/en.js | 1 + frontend/src/lang/tw.js | 1 + frontend/src/lang/zh.js | 1 + 3 files changed, 3 insertions(+) diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 996fec93ea..87bb0255f0 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -530,6 +530,7 @@ export default { the_running_results: 'You can view the running results' }, detabs: { + custom_sort: 'Custom Sort', eidttitle: 'Edit Title', selectview: 'Select View', selectOthers: 'Select Others', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index dd773ea421..469aa82313 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -530,6 +530,7 @@ export default { the_running_results: '即可查看運行結果' }, detabs: { + custom_sort: '自定義排序', eidttitle: '編輯標題', selectview: '選擇視圖', selectOthers: '選擇組件', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 40b0369420..ae8ed56e52 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -529,6 +529,7 @@ export default { the_running_results: '即可查看运行结果' }, detabs: { + custom_sort: '自定义排序', eidttitle: '编辑标题', selectview: '选择视图', selectOthers: '选择组件', From 008d79adb27f2f7480b839e93b11c2b2bfb131f0 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 31 Oct 2022 17:44:01 +0800 Subject: [PATCH 02/21] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20sql?= =?UTF-8?q?=20=E6=95=B0=E6=8D=AE=E9=9B=86=E7=BC=96=E8=BE=91=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E9=80=89=E6=8B=A9=E7=AB=8B=E5=8D=B3?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=8C=E5=88=9B=E5=BB=BA=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=85=A8=E9=87=8F=E6=9B=B4=E6=96=B0=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/service/dataset/DataSetTableService.java | 1 + .../io/dataease/service/dataset/DataSetTableTaskService.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 434d8c4410..82953e556d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -350,6 +350,7 @@ public class DataSetTableService { || StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.UNION.name())) { saveTableField(datasetTable); } + extractData(datasetTable); DeLogUtils.save(SysLogConstants.OPERATE_TYPE.MODIFY, SysLogConstants.SOURCE_TYPE.DATASET, datasetTable.getId(), datasetTable.getSceneId(), null, null); } } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java index 758f7582c6..a0b34fe714 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java @@ -84,7 +84,7 @@ public class DataSetTableTaskService { } datasetTableTaskMapper.insert(datasetTableTask); } else { - datasetTableTask.setStatus(null); + datasetTableTask.setStatus(TaskStatus.Underway.name()); datasetTableTask.setLastExecTime(null); datasetTableTask.setLastExecStatus(null); datasetTableTaskMapper.updateByPrimaryKeySelective(datasetTableTask); From 4d43af735b9ba460a2fe139dc7f20608cae2aaca Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 31 Oct 2022 18:10:00 +0800 Subject: [PATCH 03/21] =?UTF-8?q?refactor(=E7=BB=84=E4=BB=B6):=20Tab?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E5=AD=97?= =?UTF-8?q?=E4=BD=93=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/canvas/components/TextAttr.vue | 62 ++++++++++--------- .../canvas/custom-component/component-list.js | 3 +- frontend/src/components/canvas/utils/utils.js | 3 + .../src/components/widget/DeWidget/DeTabs.vue | 9 ++- 4 files changed, 44 insertions(+), 33 deletions(-) diff --git a/frontend/src/components/canvas/components/TextAttr.vue b/frontend/src/components/canvas/components/TextAttr.vue index 981cff69f9..c9412d7710 100644 --- a/frontend/src/components/canvas/components/TextAttr.vue +++ b/frontend/src/components/canvas/components/TextAttr.vue @@ -518,6 +518,7 @@ export default { ], // tab组件显示的属性 'de-tabs': [ + 'fontSize', 'borderStyle', 'borderWidth', 'borderColor', @@ -718,39 +719,42 @@ export default { diff --git a/frontend/src/components/canvas/custom-component/component-list.js b/frontend/src/components/canvas/custom-component/component-list.js index 844f31a2a7..0c79e78f02 100644 --- a/frontend/src/components/canvas/custom-component/component-list.js +++ b/frontend/src/components/canvas/custom-component/component-list.js @@ -388,7 +388,8 @@ const list = [ height: 200, borderStyle: 'solid', borderWidth: 0, - borderColor: '#000000' + borderColor: '#000000', + fontSize: 16 }, options: { tabList: [{ diff --git a/frontend/src/components/canvas/utils/utils.js b/frontend/src/components/canvas/utils/utils.js index d3ab9c2e14..3edae4b655 100644 --- a/frontend/src/components/canvas/utils/utils.js +++ b/frontend/src/components/canvas/utils/utils.js @@ -99,6 +99,9 @@ export function panelDataPrepare(componentData, componentStyle, callback) { item.options.attrs.accuracy = 'HH:mm' } } + if (item.type === 'de-tabs') { + item.style.fontSize = item.style.fontSize || 16 + } if (item.type === 'custom') { item.options.manualModify = false } diff --git a/frontend/src/components/widget/DeWidget/DeTabs.vue b/frontend/src/components/widget/DeWidget/DeTabs.vue index 68ae346e8c..d9526cad50 100644 --- a/frontend/src/components/widget/DeWidget/DeTabs.vue +++ b/frontend/src/components/widget/DeWidget/DeTabs.vue @@ -25,8 +25,7 @@ :name="item.name" > - {{ item.title }} - + {{ item.title }} - Date: Mon, 31 Oct 2022 18:16:57 +0800 Subject: [PATCH 04/21] =?UTF-8?q?fix(=E6=B6=88=E6=81=AF=E7=AE=A1=E7=90=86)?= =?UTF-8?q?:=20=E5=8D=95=E4=B8=80=E6=B8=A0=E9=81=93=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E9=98=BB=E5=A1=9E=E5=85=A8=E9=83=A8=E6=B6=88=E6=81=AF=E6=B8=A0?= =?UTF-8?q?=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/message/SysMsgService.java | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/message/SysMsgService.java b/backend/src/main/java/io/dataease/service/message/SysMsgService.java index 3621bf8d66..721a466c5b 100644 --- a/backend/src/main/java/io/dataease/service/message/SysMsgService.java +++ b/backend/src/main/java/io/dataease/service/message/SysMsgService.java @@ -1,5 +1,6 @@ package io.dataease.service.message; +import io.dataease.commons.utils.LogUtil; import io.dataease.ext.ExtSysMsgMapper; import io.dataease.commons.constants.SysMsgConstants; import io.dataease.commons.utils.AuthUtils; @@ -25,6 +26,7 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -65,7 +67,7 @@ public class SysMsgService { orderClause = String.join(", ", orders); } - if (CollectionUtils.isNotEmpty(typeIds)){ + if (CollectionUtils.isNotEmpty(typeIds)) { criteria.andTypeIdIn(typeIds); } @@ -120,7 +122,7 @@ public class SysMsgService { return sysMsgTypeMapper.selectByExample(example); } - private List buildTree(List lists){ + private List buildTree(List lists) { List rootNodes = new ArrayList<>(); lists.forEach(node -> { SettingTreeNode settingTreeNode = convert(node); @@ -183,6 +185,7 @@ public class SysMsgService { /** * 修改了订阅信息 需要清除缓存 + * * @param request * @param userId */ @@ -241,22 +244,29 @@ public class SysMsgService { List subscribes = subscribes(userId); if (CollectionUtils.isNotEmpty(subscribes)) { - subscribes.stream().filter(item -> item.getTypeId().equals(typeId)).forEach(sub -> { - SendService sendService = serviceByChannel(sub.getChannelId()); - sendService.sendMsg(userId, typeId, content, param); - }); - + for (int i = 0; i < subscribes.size(); i++) { + SubscribeNode item = subscribes.get(i); + if (item.getTypeId().equals(typeId)) { + try { + SendService sendService = serviceByChannel(item.getChannelId()); + sendService.sendMsg(userId, typeId, content, param); + } catch (Exception e) { + LogUtil.error(e.getMessage(), e); + } + } + } } } - private SendService serviceByChannel(Long channelId){ + private SendService serviceByChannel(Long channelId) { String beanName = sysMsgChannelMapper.selectByPrimaryKey(channelId).getServiceName(); - return (SendService)CommonBeanFactory.getBean(beanName); + return (SendService) CommonBeanFactory.getBean(beanName); } /** * 查询用户订阅的消息 并缓存 + * * @param userId * @return */ @@ -280,7 +290,7 @@ public class SysMsgService { List defaultSettings = defaultSettings(); defaultSettings.forEach(setting -> { - if (!sourceLists.stream().anyMatch(item -> item.match(setting))){ + if (!sourceLists.stream().anyMatch(item -> item.match(setting))) { sourceLists.add(setting); } }); @@ -297,7 +307,7 @@ public class SysMsgService { public Long overTime() { String msgTimeOut = systemParameterService.basicInfo().getMsgTimeOut(); - if(StringUtils.isNotBlank(msgTimeOut)) { + if (StringUtils.isNotBlank(msgTimeOut)) { overDays = Integer.parseInt(msgTimeOut); } Long currentTime = System.currentTimeMillis(); @@ -307,9 +317,8 @@ public class SysMsgService { long temp = overDays * oneDayTime; return currentTime - (currentTime + 8 * 60 * 60 * 1000) % oneDayTime - temp; - + } - } From a10ef0df750c65a023804f7e63c98876c5a23b82 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 31 Oct 2022 18:29:29 +0800 Subject: [PATCH 05/21] =?UTF-8?q?fix(=E5=BA=94=E7=94=A8=E7=AE=A1=E7=90=86)?= =?UTF-8?q?:=20=E4=BF=AE=E5=A4=8D=E5=BA=94=E7=94=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=A0=E9=99=A4=E5=88=86=E7=B1=BB=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E5=9B=BD=E9=99=85=E5=8C=96=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/lang/tw.js | 6 +++--- frontend/src/lang/zh.js | 6 +++--- .../src/views/panel/appTemplate/component/TemplateList.vue | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 469aa82313..7bb465cc07 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -2648,11 +2648,11 @@ export default { log_delete_tips: '確定刪除該條應用記錄嗎?', log_resource_delete_tips: '刪除相關資源(刪除後不可恢復)', file_error_tips: '未找到相關數據文件,當前文件可能不是DataEase應用文件,或者文件已經損壞', - app_export: '应用导出', - app_version: '应用版本', + app_export: '應用導出', + app_version: '應用版本', program_version: 'DataEase最低版本', creator: '作者', - export: '导出' + export: '導出' }, logout: { diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index ae8ed56e52..4945e767e3 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -2648,11 +2648,11 @@ export default { log_delete_tips: '确定删除该条应用记录吗?', log_resource_delete_tips: '删除相关资源(删除后不可恢复)', file_error_tips: '未找到相关数据文件,当前文件可能不是DataEase应用文件,或者文件已经损坏', - app_export: '應用導出', - app_version: '應用版本', + app_export: '应用导出', + app_version: '应用版本', program_version: 'DataEase最低版本', creator: '作者', - export: '導出' + export: '导出' }, logout: { diff --git a/frontend/src/views/panel/appTemplate/component/TemplateList.vue b/frontend/src/views/panel/appTemplate/component/TemplateList.vue index d14b3259b3..16b8414afe 100644 --- a/frontend/src/views/panel/appTemplate/component/TemplateList.vue +++ b/frontend/src/views/panel/appTemplate/component/TemplateList.vue @@ -158,8 +158,8 @@ export default { }, templateDelete(template) { const options = { - title: this.$('app_template.app_group_delete_tips'), - content: this.$('app_template.app_group_delete_content'), + title: this.$t('app_template.app_group_delete_tips'), + content: this.$t('app_template.app_group_delete_content'), type: 'primary', cb: () => this.$emit('templateDelete', template.id) } From d422223aef8794aa72e19f8c5195e64cfb7f4044 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 31 Oct 2022 18:39:55 +0800 Subject: [PATCH 06/21] =?UTF-8?q?perf(=E6=B0=94=E6=B3=A1=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?):=20=E6=B7=B1=E8=89=B2=E4=B8=BB=E9=A2=98=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=BA=95=E5=9B=BE=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/chart/chart/chart.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/chart/chart/chart.js b/frontend/src/views/chart/chart/chart.js index 6442254fae..116da2af59 100644 --- a/frontend/src/views/chart/chart/chart.js +++ b/frontend/src/views/chart/chart/chart.js @@ -27,7 +27,8 @@ export const DEFAULT_COLOR_CASE = { quotaColor: '#5470c6', tableBorderColor: '#E6E7E4', seriesColors: [], // 格式:{"name":"s1","color":"","isCustom":false} - areaBorderColor: '#303133' + areaBorderColor: '#303133', + areaBaseColor: '#FFFFFF' } export const DEFAULT_COLOR_CASE_DARK = { @@ -42,7 +43,8 @@ export const DEFAULT_COLOR_CASE_DARK = { quotaColor: '#5470c6', tableBorderColor: '#CCCCCC', seriesColors: [], // 格式:{"name":"s1","color":"","isCustom":false} - areaBorderColor: '#EBEEF5' + areaBorderColor: '#EBEEF5', + areaBaseColor: '5470C6' } export const DEFAULT_SIZE = { barDefault: true, From fecc805f93cc1a86e701d9b3dc822cb4f5a24294 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 31 Oct 2022 18:47:57 +0800 Subject: [PATCH 07/21] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=AF=BC=E5=87=BA=E5=90=8E=E7=AB=AF=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/panel/PanelGroupController.java | 1 + .../io/dataease/service/panel/PanelGroupService.java | 12 ++++++------ .../main/resources/i18n/messages_en_US.properties | 7 +++++++ .../main/resources/i18n/messages_zh_CN.properties | 10 ++++++++-- .../main/resources/i18n/messages_zh_TW.properties | 10 ++++++++-- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java index b361b5d725..217ab70c06 100644 --- a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java +++ b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java @@ -190,6 +190,7 @@ public class PanelGroupController { return panelGroupService.findPanelElementInfo(viewId); } @GetMapping("/export2AppCheck/{panelId}") + @I18n public PanelExport2App export2AppCheck(@PathVariable String panelId){ return panelGroupService.panelExport2AppCheck(panelId); } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index 651b71c757..4e44e60753 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -806,23 +806,23 @@ public class PanelGroupService { //校验标准 1.存在视图且所有视图的数据来源必须是dataset 2.存在数据集且没有excel数据集 3.存在数据源且是单数据源 //1.view check if (CollectionUtils.isEmpty(chartViewsInfo)) { - return new PanelExport2App("this panel don't have views"); + return new PanelExport2App(Translator.get("I18N_APP_NO_VIEW_ERROR")); } else if (chartViewsInfo.stream().filter(chartView -> chartView.getDataFrom().equals("template")).collect(Collectors.toList()).size() > 0) { - return new PanelExport2App("this panel have view from template"); + return new PanelExport2App(Translator.get("I18N_APP_TEMPLATE_VIEW_ERROR")); } // dataset check if (CollectionUtils.isEmpty(datasetTablesInfo)) { - return new PanelExport2App("this panel don't have dataset"); + return new PanelExport2App(Translator.get("I18N_APP_NO_DATASET_ERROR")); } else if (datasetTablesInfo.stream().filter(datasetTable -> datasetTable.getType().equals("excel") || datasetTable.getType().equals("api")).collect(Collectors.toList()).size() > 0) { - return new PanelExport2App("this panel have dataset witch type is excel or api"); + return new PanelExport2App(Translator.get("I18N_APP_ERROR_DATASET")); } //datasource check if (CollectionUtils.isEmpty(datasourceDTOS)) { - return new PanelExport2App("this panel don't have datasource"); + return new PanelExport2App(Translator.get("I18N_APP_NO_DATASOURCE")); } else if (datasourceDTOS.size() > 1) { - return new PanelExport2App("this panel should have only one dataset"); + return new PanelExport2App(Translator.get("I18N_APP_ONE_DATASOURCE_TIPS")); } return new PanelExport2App(chartViewsInfo, chartViewFieldsInfo, datasetTablesInfo, datasetTableFieldsInfo, dataSetTasksInfo, datasourceDTOS,panelViews); } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index df1effdcd3..dfe388f61f 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -240,3 +240,10 @@ I18N_PANEL_EXIST=The current panel name already exists under this directory I18N_DATASET_GROUP_EXIST=The current dataset grouping name already exists under this directory I18N_NOT_JAR=File is not jar! +I18N_APP_NO_VIEW_ERROR=This panel don't have views +I18N_APP_TEMPLATE_VIEW_ERROR=This panel have view from template +I18N_APP_NO_DATASET_ERROR=This panel don't have dataset +I18N_APP_ERROR_DATASET=This panel have dataset witch type is excel or api +I18N_APP_NO_DATASOURCE=This panel don't have datasource +I18N_APP_ONE_DATASOURCE_TIPS=This panel should have only one datasource + diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index a0972f0da7..c3724a160f 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -194,7 +194,7 @@ I18N_DATASOURCE_LEVEL_GRANT=\u6388\u6743 I18N_NO_PERMISSION=\u5F53\u524D\u7528\u6237\u6CA1\u6709\u6743\u9650 I18N_PLEASE_CONCAT_ADMIN=\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5F00\u901A I18N_SQL_variable_limit=SQL \u53D8\u91CF\u53EA\u80FD\u5728 WHERE \u6761\u4EF6\u4E2D\u4F7F\u7528 -I18N_SQL_variable_direct_limit=SQL变量只能用于直连 +I18N_SQL_variable_direct_limit=SQL\u53D8\u91CF\u53EA\u80FD\u7528\u4E8E\u76F4\u8FDE I18N_EMAIL_CONFIG_ERROR=\u90AE\u4EF6\u914D\u7F6E\u9519\u8BEF I18N_EMAIL_HOST_ERROR=\u90AE\u4EF6\u4E3B\u673A\u4E0D\u80FD\u4E3A\u7A7A I18N_EMAIL_PORT_ERROR=\u90AE\u4EF6\u7AEF\u53E3\u4E0D\u80FD\u4E3A\u7A7A @@ -238,5 +238,11 @@ I18N_ACCOUNT_LOCKED=\u8D26\u53F7\u3010%s\u3011\u5DF2\u9501\u5B9A(\u8BF7\u8054\u7 I18N_PANEL_EXIST=\u5F53\u524D\u4EEA\u8868\u677F\u540D\u79F0\u5728\u8BE5\u76EE\u5F55\u4E0B\u9762\u5DF2\u7ECF\u5B58\u5728 I18N_DATASET_GROUP_EXIST=\u5F53\u524D\u6570\u636E\u96C6\u5206\u7EC4\u540D\u79F0\u5728\u8BE5\u76EE\u5F55\u4E0B\u9762\u5DF2\u7ECF\u5B58\u5728 -I18N_NOT_JAR=文件不是 jar 包! +I18N_NOT_JAR=\u6587\u4EF6\u4E0D\u662F jar \u5305! +I18N_APP_NO_VIEW_ERROR=\u8BE5\u4EEA\u8868\u677F\u6CA1\u6709\u89C6\u56FE +I18N_APP_TEMPLATE_VIEW_ERROR=\u8BE5\u4EEA\u8868\u677F\u5B58\u5728\u6A21\u677F\u4E2D\u7684\u89C6\u56FE +I18N_APP_NO_DATASET_ERROR=\u8BE5\u4EEA\u8868\u7248\u6CA1\u6709\u6570\u636E\u96C6 +I18N_APP_ERROR_DATASET=\u4EEA\u8868\u677F\u4E2D\u4E0D\u80FD\u5B58\u5728API\u6570\u636E\u6E90\u6216\u8005Excel\u6570\u636E\u96C6 +I18N_APP_NO_DATASOURCE=\u6CA1\u6709\u627E\u5230\u6570\u636E\u6E90 +I18N_APP_ONE_DATASOURCE_TIPS=\u8BE5\u4EEA\u8868\u677F\u53EA\u80FD\u5B58\u5728\u4E00\u4E2A\u6570\u636E\u6E90 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index fb269a8bda..93400397eb 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -190,7 +190,7 @@ I18N_DATASOURCE_LEVEL_GRANT=\u6388\u6B0A I18N_NO_PERMISSION=\u7576\u524D\u7528\u6236\u6C92\u6709\u6B0A\u9650 I18N_PLEASE_CONCAT_ADMIN=\u8ACB\u806F\u7CFB\u7BA1\u7406\u54E1\u958B\u901A I18N_SQL_variable_limit=SQL\u8B8A\u6578\u53EA\u80FD\u5728WHERE\u689D\u4EF6\u4E2D\u4F7F\u7528 -I18N_SQL_variable_direct_limit=SQL變數只能用於直連 +I18N_SQL_variable_direct_limit=SQL\u8B8A\u6578\u53EA\u80FD\u7528\u65BC\u76F4\u9023 I18N_EMAIL_CONFIG_ERROR=\u90F5\u4EF6\u914D\u7F6E\u932F\u8AA4 I18N_EMAIL_HOST_ERROR=\u90F5\u4EF6\u4E3B\u6A5F\u4E0D\u80FD\u70BA\u7A7A I18N_EMAIL_PORT_ERROR=\u90F5\u4EF6\u7AEF\u53E3\u4E0D\u80FD\u70BA\u7A7A @@ -234,4 +234,10 @@ I18N_ACCOUNT_LOCKED=\u8CEC\u865F\u3010%s\u3011\u5DF2\u9396\u5B9A(\u8ACB\u806F\u7 I18N_PANEL_EXIST=\u7576\u524D\u5100\u9336\u95C6\u540D\u7A31\u5728\u8A72\u76EE\u9304\u4E0B\u9762\u5DF2\u7D93\u5B58\u5728 I18N_DATASET_GROUP_EXIST=\u7576\u524D\u6578\u64DA\u96C6\u5206\u7D44\u540D\u7A31\u5728\u8A72\u76EE\u9304\u4E0B\u9762\u5DF2\u7D93\u5B58\u5728 -I18N_NOT_JAR=文件不是 jar 包! +I18N_NOT_JAR=\u6587\u4EF6\u4E0D\u662F jar \u5305! +I18N_APP_NO_VIEW_ERROR=\u8A72\u5100\u8868\u677F\u6C92\u6709\u8996\u5716 +I18N_APP_TEMPLATE_VIEW_ERROR=\u8A72\u5100\u8868\u677F\u5B58\u5728\u6A21\u677F\u4E2D\u7684\u8996\u5716 +I18N_APP_NO_DATASET_ERROR=\u8A72\u5100\u8868\u7248\u6C92\u6709\u6578\u64DA\u96C6 +I18N_APP_ERROR_DATASET=\u5100\u8868\u677F\u4E2D\u4E0D\u80FD\u5B58\u5728API\u6578\u64DA\u6E90\u6216\u8005Excel\u6578\u64DA\u96C6 +I18N_APP_NO_DATASOURCE=\u6C92\u6709\u627E\u5230\u6578\u64DA\u6E90 +I18N_APP_ONE_DATASOURCE_TIPS=\u8A72\u5100\u8868\u677F\u53EA\u80FD\u5B58\u5728\u4E00\u500B\u6578\u64DA\u6E90 From 78cc8130beda0d0b91c8828978077adb312fc408 Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Mon, 31 Oct 2022 19:12:30 +0800 Subject: [PATCH 08/21] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=A1=A8=E6=A0=BC=E5=BA=8F=E5=8F=B7=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复表格序号未按照实际数据排序 https://www.tapd.cn/55578866/bugtrace/bugs/view/1155578866001019105 --- .../service/chart/ChartViewService.java | 4 +--- .../service/chart/util/ChartDataBuild.java | 8 +++++++ frontend/src/lang/en.js | 3 ++- frontend/src/lang/tw.js | 3 ++- frontend/src/lang/zh.js | 3 ++- .../views/chart/chart/common/common_antv.js | 3 +++ .../views/chart/chart/common/common_table.js | 1 + .../src/views/chart/chart/table/table-info.js | 22 +++++++++++++++---- .../chart/components/ChartComponentS2.vue | 4 ++-- .../components/shape-attr/SizeSelector.vue | 5 ++++- .../shape-attr/SizeSelectorAntV.vue | 5 ++++- .../chart/components/table/TableNormal.vue | 13 +++++++++-- frontend/src/views/chart/group/Group.vue | 2 +- frontend/src/views/chart/view/ChartEdit.vue | 2 +- 14 files changed, 60 insertions(+), 18 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 9d628ed9ad..1592459766 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -788,9 +788,7 @@ public class ChartViewService { ChartExtFilterRequest drillFilter = new ChartExtFilterRequest(); drillFilter.setFieldId(dto.getId()); - drillFilter.setValue(new ArrayList() {{ - add(dto.getValue()); - }}); + drillFilter.setValue(Collections.singletonList(dto.getValue())); drillFilter.setOperator("in"); drillFilter.setDatasetTableField(datasetTableField); extFilterList.add(drillFilter); diff --git a/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java b/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java index 4e28040812..7d570a1a8b 100644 --- a/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java +++ b/backend/src/main/java/io/dataease/service/chart/util/ChartDataBuild.java @@ -202,6 +202,10 @@ public class ChartDataBuild { chartDimensionDTO.setValue(row[k]); dimensionList.add(chartDimensionDTO); } + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(extStack.get(0).getId()); + chartDimensionDTO.setValue(row[xAxis.size()]); + dimensionList.add(chartDimensionDTO); axisChartDataDTO.setDimensionList(dimensionList); if (CollectionUtils.isNotEmpty(yAxis)) { @@ -1054,6 +1058,10 @@ public class ChartDataBuild { chartDimensionDTO.setValue(row[j]); dimensionList.add(chartDimensionDTO); } + ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO(); + chartDimensionDTO.setId(extStack.get(0).getId()); + chartDimensionDTO.setValue(row[xAxis.size()]); + dimensionList.add(chartDimensionDTO); axisChartDataDTO.setDimensionList(dimensionList); if (CollectionUtils.isNotEmpty(yAxis)) { diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 93d33ac9c0..512aa6cfcc 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1434,7 +1434,8 @@ export default { reserve_two: '2', proportion: 'Proportion', label_content: 'Label Content', - percent: 'Percent' + percent: 'Percent', + table_index_desc: 'Index Header Name' }, dataset: { parse_filed: 'Parse Field', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 8ce8d0a586..8305e74537 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1434,7 +1434,8 @@ export default { reserve_two: '两位', proportion: '佔比', label_content: '標籤展示', - percent: '占比' + percent: '占比', + table_index_desc: '表頭名稱' }, dataset: { parse_filed: '解析字段', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 40b73f8d17..e883c2df5b 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1433,7 +1433,8 @@ export default { reserve_two: '两位', proportion: '占比', label_content: '标签展示', - percent: '占比' + percent: '占比', + table_index_desc: '表头名称' }, dataset: { parse_filed: '解析字段', diff --git a/frontend/src/views/chart/chart/common/common_antv.js b/frontend/src/views/chart/chart/common/common_antv.js index 7244f2467f..236d7da1b0 100644 --- a/frontend/src/views/chart/chart/common/common_antv.js +++ b/frontend/src/views/chart/chart/common/common_antv.js @@ -230,6 +230,9 @@ export function getLabel(chart) { } } res = contentItems.join(' ') + } else if (equalsAny(chart.type, 'pie-rose', 'pie-donut-rose')) { + const quotaValue = valueFormatter(param.value, formatterCfg) + res = [param.field, quotaValue].join(' ') } else { res = valueFormatter(param.value, formatterCfg) } diff --git a/frontend/src/views/chart/chart/common/common_table.js b/frontend/src/views/chart/chart/common/common_table.js index 93cb2f0063..cd53127e88 100644 --- a/frontend/src/views/chart/chart/common/common_table.js +++ b/frontend/src/views/chart/chart/common/common_table.js @@ -168,6 +168,7 @@ export function getCustomTheme(chart) { theme.rowCell.text.textAlign = i_a theme.rowCell.measureText.fontSize = parseInt(s.tableItemFontSize) theme.rowCell.measureText.textAlign = i_a + theme.rowCell.seriesNumberWidth = parseInt(s.tableColumnWidth) theme.colCell.bolderText.fontSize = parseInt(s.tableTitleFontSize) theme.colCell.bolderText.textAlign = h_a diff --git a/frontend/src/views/chart/chart/table/table-info.js b/frontend/src/views/chart/chart/table/table-info.js index 2324b6b0fd..488a85c932 100644 --- a/frontend/src/views/chart/chart/table/table-info.js +++ b/frontend/src/views/chart/chart/table/table-info.js @@ -1,10 +1,10 @@ -import { TableSheet, S2Event, PivotSheet } from '@antv/s2' +import { TableSheet, S2Event, PivotSheet, DataCell } from '@antv/s2' import { getCustomTheme, getSize } from '@/views/chart/chart/common/common_table' import { DEFAULT_COLOR_CASE, DEFAULT_TOTAL } from '@/views/chart/chart/chart' import { formatterItem, valueFormatter } from '@/views/chart/chart/formatter' import { hexColorToRGBA } from '@/views/chart/chart/util' import Vue from 'vue' -export function baseTableInfo(s2, container, chart, action, tableData) { +export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) { const containerDom = document.getElementById(container) // fields @@ -132,9 +132,19 @@ export function baseTableInfo(s2, container, chart, action, tableData) { if (s2Options.showSeriesNumber) { s2Options.colCell = (node) => { if (node.colIndex === 0) { - node.label = customAttr.size.indexLabel + if (!customAttr.size.indexLabel) { + node.label = ' ' + } else { + node.label = customAttr.size.indexLabel + } } } + s2Options.dataCell = (viewMeta) => { + if (viewMeta.colIndex === 0) { + viewMeta.fieldValue = (pageInfo.pageSize * (pageInfo.page - 1)) + viewMeta.rowIndex + 1 + } + return new DataCell(viewMeta, viewMeta?.spreadsheet) + } } // 开始渲染 @@ -270,7 +280,11 @@ export function baseTableNormal(s2, container, chart, action, tableData) { if (s2Options.showSeriesNumber) { s2Options.colCell = (node) => { if (node.colIndex === 0) { - node.label = customAttr.size.indexLabel + if (!customAttr.size.indexLabel) { + node.label = ' ' + } else { + node.label = customAttr.size.indexLabel + } } } } diff --git a/frontend/src/views/chart/components/ChartComponentS2.vue b/frontend/src/views/chart/components/ChartComponentS2.vue index 8c55c3a9ce..f64e4a338e 100644 --- a/frontend/src/views/chart/components/ChartComponentS2.vue +++ b/frontend/src/views/chart/components/ChartComponentS2.vue @@ -291,7 +291,7 @@ export default { } } if (chart.type === 'table-info') { - this.myChart = baseTableInfo(this.myChart, this.chartId, chart, this.antVAction, this.tableData) + this.myChart = baseTableInfo(this.myChart, this.chartId, chart, this.antVAction, this.tableData, this.currentPage) } else if (chart.type === 'table-normal') { this.myChart = baseTableNormal(this.myChart, this.chartId, chart, this.antVAction, this.tableData) } else if (chart.type === 'table-pivot') { @@ -522,7 +522,7 @@ export default { ele.filter = [] } }) - if (view.type === 'table-pivot' || view.type === 'bar-group') { + if (view.type === 'table-pivot' || view.type.includes('bar-group')) { view.xaxisExt.forEach(function(ele) { if (!ele.dateStyle || ele.dateStyle === '') { ele.dateStyle = 'y_M_d' diff --git a/frontend/src/views/chart/components/shape-attr/SizeSelector.vue b/frontend/src/views/chart/components/shape-attr/SizeSelector.vue index 4612570507..826db2e9fa 100644 --- a/frontend/src/views/chart/components/shape-attr/SizeSelector.vue +++ b/frontend/src/views/chart/components/shape-attr/SizeSelector.vue @@ -387,6 +387,7 @@ Date: Mon, 31 Oct 2022 20:47:00 +0800 Subject: [PATCH 09/21] =?UTF-8?q?fix(=E5=9B=BD=E9=99=85=E9=A3=9E=E4=B9=A6)?= =?UTF-8?q?:=20=E5=9B=BD=E9=99=85=E9=A3=9E=E4=B9=A6=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E7=AE=80=E7=A7=B0=E4=B8=BAINT=20Lark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/lang/en.js | 4 ++-- frontend/src/views/system/user/index.vue | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 87bb0255f0..2650da2e47 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -2373,7 +2373,7 @@ export default { channel_wecom_msg: 'Wecom', channel_dingtalk_msg: 'Dingtalk', channel_lark_msg: 'Lark', - channel_larksuite_msg: 'Larksuite' + channel_larksuite_msg: 'INT Lark' }, denumberrange: { label: 'Number range', @@ -2489,7 +2489,7 @@ export default { wecom: 'Wecom', dingtalk: 'Dingtalk', lark: 'Lark', - larksuite: 'Larksuite', + larksuite: 'INT Lark', pixel: 'Pixel', default: 'Default', custom: 'Custom', diff --git a/frontend/src/views/system/user/index.vue b/frontend/src/views/system/user/index.vue index 2e78ab641e..cd3b941850 100644 --- a/frontend/src/views/system/user/index.vue +++ b/frontend/src/views/system/user/index.vue @@ -156,7 +156,9 @@ : scope.row.from === 5 ? "Dingtalk" : scope.row.from === 6 - ? "Lark" : '-' + ? "Lark" + : scope.row.from === 7 + ? "INT Lark" : '-' }} From c6728a263c76a5ed5f251e36a2895d2e3469a3e3 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 31 Oct 2022 21:57:52 +0800 Subject: [PATCH 10/21] =?UTF-8?q?fix(=E6=88=91=E7=9A=84=E5=88=86=E4=BA=AB)?= =?UTF-8?q?:=20=E8=BF=87=E6=BB=A4=E5=AF=B9=E5=B7=B2=E8=A2=AB=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E7=9B=AE=E6=A0=87=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/ext/ExtPanelShareMapper.xml | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml b/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml index 1399a0a9d2..ef1ae982ad 100644 --- a/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml +++ b/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml @@ -61,11 +61,23 @@ From 6a2c9ffa48f4aba0961867c266d94306b50c4ae4 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 31 Oct 2022 23:07:18 +0800 Subject: [PATCH 11/21] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/engine/doris/DorisQueryProvider.java | 6 ++++-- .../provider/engine/mysql/MysqlQueryProvider.java | 14 ++++++++------ .../provider/query/mysql/MysqlQueryProvider.java | 6 ++++-- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index d3f0661869..8b9a23b56d 100644 --- a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -125,7 +125,8 @@ public class DorisQueryProvider extends QueryProvider { } else if (f.getDeType() == 3) { fieldName = String.format(DorisConstants.CAST, originField, DorisConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == 1) { - fieldName = String.format(DorisConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(f.getDateFormat()) ? f.getDateFormat() : DorisConstants.DEFAULT_DATE_FORMAT); + fieldName = StringUtils.isEmpty(f.getDateFormat()) ? String.format(DorisConstants.STR_TO_DATE, originField, DorisConstants.DEFAULT_DATE_FORMAT) : + String.format(DorisConstants.DATE_FORMAT, String.format(DorisConstants.STR_TO_DATE, originField, f.getDateFormat()), DorisConstants.DEFAULT_DATE_FORMAT); } else { fieldName = originField; } @@ -201,7 +202,8 @@ public class DorisQueryProvider extends QueryProvider { } else if (f.getDeType() == 3) { fieldName = String.format(DorisConstants.CAST, originField, DorisConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == 1) { - fieldName = String.format(DorisConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(f.getDateFormat()) ? f.getDateFormat() : DorisConstants.DEFAULT_DATE_FORMAT); + fieldName = StringUtils.isEmpty(f.getDateFormat()) ? String.format(DorisConstants.STR_TO_DATE, originField, DorisConstants.DEFAULT_DATE_FORMAT) : + String.format(DorisConstants.DATE_FORMAT, String.format(DorisConstants.STR_TO_DATE, originField, f.getDateFormat()), DorisConstants.DEFAULT_DATE_FORMAT); } else { fieldName = originField; } diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java index eca6a0bd45..cb426517e4 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java @@ -126,7 +126,8 @@ public class MysqlQueryProvider extends QueryProvider { } else if (f.getDeType() == 3) { fieldName = String.format(MysqlConstants.CAST, originField, MysqlConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == 1) { - fieldName = String.format(MysqlConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(f.getDateFormat()) ? f.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT); + fieldName = StringUtils.isEmpty(f.getDateFormat()) ? String.format(MysqlConstants.STR_TO_DATE, originField, MysqlConstants.DEFAULT_DATE_FORMAT) : + String.format(MysqlConstants.DATE_FORMAT, String.format(MysqlConstants.STR_TO_DATE, originField, f.getDateFormat()), MysqlConstants.DEFAULT_DATE_FORMAT); } else { fieldName = originField; } @@ -201,7 +202,8 @@ public class MysqlQueryProvider extends QueryProvider { } else if (f.getDeType() == 3) { fieldName = String.format(MysqlConstants.CAST, originField, MysqlConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == 1) { - fieldName = String.format(MysqlConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(f.getDateFormat()) ? f.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT); + fieldName = StringUtils.isEmpty(f.getDateFormat()) ? String.format(MysqlConstants.STR_TO_DATE, originField, MysqlConstants.DEFAULT_DATE_FORMAT) : + String.format(MysqlConstants.DATE_FORMAT, String.format(MysqlConstants.STR_TO_DATE, originField, f.getDateFormat()), MysqlConstants.DEFAULT_DATE_FORMAT); } else { fieldName = originField; } @@ -979,9 +981,9 @@ public class MysqlQueryProvider extends QueryProvider { } else { // Doris field type test /*if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { - whereValue = String.format(DorisConstants.WHERE_NUMBER_VALUE, value); + whereValue = String.format(MysqlConstants.WHERE_NUMBER_VALUE, value); } else { - whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value); + whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value); }*/ whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value); } @@ -1089,9 +1091,9 @@ public class MysqlQueryProvider extends QueryProvider { } else { // doris field type test /*if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { - whereValue = String.format(DorisConstants.WHERE_NUMBER_VALUE, value.get(0)); + whereValue = String.format(MysqlConstants.WHERE_NUMBER_VALUE, value.get(0)); } else { - whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value.get(0)); + whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value.get(0)); }*/ whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value.get(0)); } diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 3b39c4f600..de53211f92 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -129,7 +129,8 @@ public class MysqlQueryProvider extends QueryProvider { } else if (f.getDeType() == 3) { fieldName = String.format(MySQLConstants.CAST, originField, MySQLConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == 1) { - fieldName = String.format(MySQLConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(f.getDateFormat()) ? f.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT); + fieldName = StringUtils.isEmpty(f.getDateFormat()) ? String.format(MySQLConstants.STR_TO_DATE, originField, MysqlConstants.DEFAULT_DATE_FORMAT) : + String.format(MySQLConstants.DATE_FORMAT, String.format(MySQLConstants.STR_TO_DATE, originField, f.getDateFormat()), MySQLConstants.DEFAULT_DATE_FORMAT); } else { fieldName = originField; } @@ -188,7 +189,8 @@ public class MysqlQueryProvider extends QueryProvider { } else if (f.getDeType() == 3) { fieldName = String.format(MySQLConstants.CAST, originField, MySQLConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == 1) { - fieldName = String.format(MySQLConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(f.getDateFormat()) ? f.getDateFormat() : MysqlConstants.DEFAULT_DATE_FORMAT); + fieldName = StringUtils.isEmpty(f.getDateFormat()) ? String.format(MySQLConstants.STR_TO_DATE, originField, MysqlConstants.DEFAULT_DATE_FORMAT) : + String.format(MySQLConstants.DATE_FORMAT, String.format(MySQLConstants.STR_TO_DATE, originField, f.getDateFormat()), MySQLConstants.DEFAULT_DATE_FORMAT); } else { fieldName = originField; } From a9c73c13725bff4281d3c5caa10b063a46787fb6 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 31 Oct 2022 23:33:42 +0800 Subject: [PATCH 12/21] =?UTF-8?q?fix(=E6=88=91=E7=9A=84=E5=88=86=E4=BA=AB)?= =?UTF-8?q?:=20=E6=88=91=E5=88=86=E4=BA=AB=E7=9A=84=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml b/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml index ef1ae982ad..779de83551 100644 --- a/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml +++ b/backend/src/main/java/io/dataease/ext/ExtPanelShareMapper.xml @@ -61,7 +61,7 @@ - select s.* from panel_share s left join panel_group g on g.id = s.panel_group_id where s.panel_group_id = #{resourceId} - + and s.type = #{type} - and (( s.granter is not null and s.granter = #{currentUserName} ) or ( s.granter is null and g.create_by = #{currentUserName} )) + and (( s.granter is not null and s.granter = #{currentUserName} ) or ( s.granter is null and g.create_by = + #{currentUserName} )) order by s.create_time desc - + select s.share_id, + s.panel_group_id as panel_id, + s.type, + s.target_id, + s.create_time, + ( + CASE s.type + WHEN 0 THEN (select nick_name from sys_user where user_id = s.target_id) + WHEN 1 THEN (select name from sys_role where role_id = s.target_id) + WHEN 2 THEN (select name from sys_dept where dept_id = s.target_id) + END + ) as target_name from panel_share s where s.panel_group_id = #{panelId} - and s.granter = #{userName} - + and ( + (s.granter is not null and s.granter = #{userName}) + or + (#{userName} = 'admin' and s.granter is null) + ) - select user_id from sys_users_roles where role_id in @@ -127,7 +131,7 @@ - select user_id from sys_user where dept_id in @@ -145,6 +149,4 @@ - - diff --git a/backend/src/main/java/io/dataease/listener/CleaningRobotListener.java b/backend/src/main/java/io/dataease/listener/CleaningRobotListener.java new file mode 100644 index 0000000000..59b7032301 --- /dev/null +++ b/backend/src/main/java/io/dataease/listener/CleaningRobotListener.java @@ -0,0 +1,26 @@ +package io.dataease.listener; + +import io.dataease.commons.utils.LogUtil; +import io.dataease.service.CleaningRebotService; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +public class CleaningRobotListener implements ApplicationListener { + + @Resource + private CleaningRebotService cleaningRebotService; + + @Override + public void onApplicationEvent(ApplicationReadyEvent event) { + try { + cleaningRebotService.execute(); + } catch (Exception e) { + LogUtil.error(e.getMessage(), e); + } + + } +} diff --git a/backend/src/main/java/io/dataease/service/CleaningRebotService.java b/backend/src/main/java/io/dataease/service/CleaningRebotService.java new file mode 100644 index 0000000000..1c45468ce1 --- /dev/null +++ b/backend/src/main/java/io/dataease/service/CleaningRebotService.java @@ -0,0 +1,37 @@ +package io.dataease.service; + +import io.dataease.ext.CleaningRebotMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + + +@Service +public class CleaningRebotService { + + @Value("${dataease.clean-nobody-link:false}") + private Boolean cleanNobodyLink; + + @Resource + private CleaningRebotMapper cleaningRebotMapper; + + public void execute() { + int floatDept = 0; + do { + floatDept = cleaningRebotMapper.delFloatingDept(); + } while (floatDept > 0); + cleaningRebotMapper.updateUserDept(); + cleaningRebotMapper.delFloatingRoleMapping(); + cleaningRebotMapper.delFloatingPanelShare(); + cleaningRebotMapper.delFloatingTargetShare(); + cleaningRebotMapper.delFloatingPanelStore(); + cleaningRebotMapper.delFloatingTargetStore(); + cleaningRebotMapper.delFloatingPanelLink(); + cleaningRebotMapper.delFloatingPanelLinkMapping(); + if (cleanNobodyLink) { + cleaningRebotMapper.delFloatingCreatorLink(); + cleaningRebotMapper.delFloatingCreatorLinkMapping(); + } + } +}