From 881a60dfa3d75e4fead4eae0356b13b58a814422 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 16 Jan 2024 15:57:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=8E=A8=E8=8D=90=E6=A8=A1=E6=9D=BF=E4=B8=AD?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E5=B1=95=E7=A4=BA=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=9A=84=E7=94=A8=E6=88=B7=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/MybatisPlusGenerator.java | 4 +-- .../auto/entity/VisualizationTemplate.java | 22 +++++++++++++--- .../mapper/VisualizationTemplateMapper.java | 4 +-- .../template/manage/TemplateCenterManage.java | 10 ++++--- .../server/DataVisualizationServer.java | 26 +++++++++++-------- .../main/resources/db/desktop/V2.3__ddl.sql | 5 ++++ .../main/resources/db/migration/V2.3__ddl.sql | 5 ++++ .../ExtVisualizationTemplateMapper.xml | 3 ++- .../template/vo/VisualizationTemplateVO.java | 5 ++++ 9 files changed, 61 insertions(+), 23 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java b/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java index 51424d85aa..12bd3304f8 100644 --- a/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java +++ b/core/core-backend/src/main/java/io/dataease/MybatisPlusGenerator.java @@ -21,11 +21,11 @@ public class MybatisPlusGenerator { /** * 业务模块例如datasource,dataset,panel等 */ - private static final String busi = "visualization"; + private static final String busi = "template"; /** * 这是要生成代码的表名称 */ - private static final String TABLE_NAME = "visualization_watermark"; + private static final String TABLE_NAME = "visualization_template"; /** * 下面两个配置基本上不用动 diff --git a/core/core-backend/src/main/java/io/dataease/template/dao/auto/entity/VisualizationTemplate.java b/core/core-backend/src/main/java/io/dataease/template/dao/auto/entity/VisualizationTemplate.java index d0315f9262..122d0d7989 100644 --- a/core/core-backend/src/main/java/io/dataease/template/dao/auto/entity/VisualizationTemplate.java +++ b/core/core-backend/src/main/java/io/dataease/template/dao/auto/entity/VisualizationTemplate.java @@ -5,11 +5,11 @@ import java.io.Serializable; /** *

- * 仪表板模板表 + * *

* * @author fit2cloud - * @since 2023-11-06 + * @since 2024-01-16 */ @TableName("visualization_template") public class VisualizationTemplate implements Serializable { @@ -37,7 +37,7 @@ public class VisualizationTemplate implements Serializable { private Integer level; /** - * 模板种类 dataV or dashboard 目录或者文件夹 + * 模版种类 dataV or dashboard 目录或者文件夹 */ private String dvType; @@ -62,7 +62,7 @@ public class VisualizationTemplate implements Serializable { private String snapshot; /** - * 模板类型 system 系统内置 self 用户自建 + * 模版类型 system 系统内置 self 用户自建 */ private String templateType; @@ -81,6 +81,11 @@ public class VisualizationTemplate implements Serializable { */ private String dynamicData; + /** + * 使用次数 + */ + private Integer useCount; + public String getId() { return id; } @@ -185,6 +190,14 @@ public class VisualizationTemplate implements Serializable { this.dynamicData = dynamicData; } + public Integer getUseCount() { + return useCount; + } + + public void setUseCount(Integer useCount) { + this.useCount = useCount; + } + @Override public String toString() { return "VisualizationTemplate{" + @@ -201,6 +214,7 @@ public class VisualizationTemplate implements Serializable { ", templateStyle = " + templateStyle + ", templateData = " + templateData + ", dynamicData = " + dynamicData + + ", useCount = " + useCount + "}"; } } diff --git a/core/core-backend/src/main/java/io/dataease/template/dao/auto/mapper/VisualizationTemplateMapper.java b/core/core-backend/src/main/java/io/dataease/template/dao/auto/mapper/VisualizationTemplateMapper.java index 2a8c72964f..73bfdaff84 100644 --- a/core/core-backend/src/main/java/io/dataease/template/dao/auto/mapper/VisualizationTemplateMapper.java +++ b/core/core-backend/src/main/java/io/dataease/template/dao/auto/mapper/VisualizationTemplateMapper.java @@ -6,11 +6,11 @@ import org.apache.ibatis.annotations.Mapper; /** *

- * 仪表板模板表 Mapper 接口 + * Mapper 接口 *

* * @author fit2cloud - * @since 2023-11-06 + * @since 2024-01-16 */ @Mapper public interface VisualizationTemplateMapper extends BaseMapper { diff --git a/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java b/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java index 85d631dfca..a6d91e63c1 100644 --- a/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java +++ b/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java @@ -121,13 +121,17 @@ public class TemplateCenterManage { public MarketBaseResponse searchTemplateRecommend() { + MarketTemplateV2BaseResponse v2BaseResponse = null; + Map templateParams = sysParameterManage.groupVal("template."); + // 模版市场推荐 try { - Map templateParams = sysParameterManage.groupVal("template."); - return baseResponseV2TransRecommend(templateQuery(templateParams), templateParams.get("template.url")); + v2BaseResponse = templateQuery(templateParams); } catch (Exception e) { DEException.throwException(e); } - return null; + // 模版管理使用次数推荐 + List manage = searchTemplateFromManage(); + return baseResponseV2TransRecommend(v2BaseResponse, templateParams.get("template.url")); } public MarketPreviewBaseResponse searchTemplatePreview() { diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 1c7f630dfd..4d251d107e 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -102,7 +102,7 @@ public class DataVisualizationServer implements DataVisualizationApi { } VisualizationWatermark watermark = watermarkMapper.selectById("system_default"); VisualizationWatermarkVO watermarkVO = new VisualizationWatermarkVO(); - BeanUtils.copyBean(watermarkVO,watermark); + BeanUtils.copyBean(watermarkVO, watermark); result.setWatermarkInfo(watermarkVO); return result; } else { @@ -117,9 +117,9 @@ public class DataVisualizationServer implements DataVisualizationApi { DataVisualizationInfo visualizationInfo = new DataVisualizationInfo(); BeanUtils.copyBean(visualizationInfo, request); visualizationInfo.setNodeType(request.getNodeType() == null ? DataVisualizationConstants.NODE_TYPE.LEAF : request.getNodeType()); - if(request.getSelfWatermarkStatus() != null && request.getSelfWatermarkStatus()){ + if (request.getSelfWatermarkStatus() != null && request.getSelfWatermarkStatus()) { visualizationInfo.setSelfWatermarkStatus(1); - }else{ + } else { visualizationInfo.setSelfWatermarkStatus(0); } Long newDvId = coreVisualizationManage.innerSave(visualizationInfo); @@ -137,17 +137,17 @@ public class DataVisualizationServer implements DataVisualizationApi { } DataVisualizationInfo visualizationInfo = new DataVisualizationInfo(); BeanUtils.copyBean(visualizationInfo, request); - if(request.getSelfWatermarkStatus() != null && request.getSelfWatermarkStatus()){ + if (request.getSelfWatermarkStatus() != null && request.getSelfWatermarkStatus()) { visualizationInfo.setSelfWatermarkStatus(1); - }else{ + } else { visualizationInfo.setSelfWatermarkStatus(0); } - if(DataVisualizationConstants.RESOURCE_OPT_TYPE.COPY.equals(request.getOptType())){ + if (DataVisualizationConstants.RESOURCE_OPT_TYPE.COPY.equals(request.getOptType())) { // 复制更新 新建权限插入 visualizationInfoMapper.deleteById(dvId); visualizationInfo.setNodeType(DataVisualizationConstants.NODE_TYPE.LEAF); coreVisualizationManage.innerSave(visualizationInfo); - }else{ + } else { // 检查当前节点的pid是否一致如果不一致 需要调用move 接口(预存 可能会出现pid =-1的情况) if (request.getPid() != -1) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -241,7 +241,7 @@ public class DataVisualizationServer implements DataVisualizationApi { extDataVisualizationMapper.copyLinkJumpInfo(copyId); extDataVisualizationMapper.copyLinkJumpTargetInfo(copyId); DataVisualizationInfo visualizationInfoTarget = new DataVisualizationInfo(); - BeanUtils.copyBean(visualizationInfoTarget,newDv); + BeanUtils.copyBean(visualizationInfoTarget, newDv); visualizationInfoTarget.setPid(-1L); coreVisualizationManage.preInnerSave(visualizationInfoTarget); return String.valueOf(newDvId); @@ -271,7 +271,11 @@ public class DataVisualizationServer implements DataVisualizationApi { name = visualizationTemplate.getName(); dvType = visualizationTemplate.getDvType(); // 模板市场记录 - coreOptRecentManage.saveOpt(request.getTemplateId(), OptConstants.OPT_RESOURCE_TYPE.TEMPLATE,OptConstants.OPT_TYPE.NEW); + coreOptRecentManage.saveOpt(request.getTemplateId(), OptConstants.OPT_RESOURCE_TYPE.TEMPLATE, OptConstants.OPT_TYPE.NEW); + VisualizationTemplate visualizationTemplateUpdate = new VisualizationTemplate(); + visualizationTemplateUpdate.setId(visualizationTemplate.getId()); + visualizationTemplateUpdate.setUseCount(visualizationTemplate.getUseCount() == null ? 0 : visualizationTemplate.getUseCount() + 1); + templateMapper.updateById(visualizationTemplateUpdate); } else if (DataVisualizationConstants.NEW_PANEL_FROM.NEW_OUTER_TEMPLATE.equals(newFrom)) { templateStyle = request.getCanvasStyleData(); templateData = request.getComponentData(); @@ -291,7 +295,7 @@ public class DataVisualizationServer implements DataVisualizationApi { name = templateFileInfo.getName(); dvType = templateFileInfo.getDvType(); // 模板市场记录 - coreOptRecentManage.saveOpt(request.getResourceName(), OptConstants.OPT_RESOURCE_TYPE.TEMPLATE,OptConstants.OPT_TYPE.NEW); + coreOptRecentManage.saveOpt(request.getResourceName(), OptConstants.OPT_RESOURCE_TYPE.TEMPLATE, OptConstants.OPT_TYPE.NEW); } // 解析动态数据 Map dynamicDataMap = JsonUtil.parseObject(dynamicData, Map.class); @@ -302,7 +306,7 @@ public class DataVisualizationServer implements DataVisualizationApi { String originViewId = entry.getKey(); String originViewData = JsonUtil.toJSONString(entry.getValue()).toString(); ChartViewDTO chartView = JsonUtil.parseObject(originViewData, ChartViewDTO.class); - if(chartView == null){ + if (chartView == null) { continue; } Long newViewId = IDUtils.snowID(); diff --git a/core/core-backend/src/main/resources/db/desktop/V2.3__ddl.sql b/core/core-backend/src/main/resources/db/desktop/V2.3__ddl.sql index f8a9c19a0e..e2ff6f3fd5 100644 --- a/core/core-backend/src/main/resources/db/desktop/V2.3__ddl.sql +++ b/core/core-backend/src/main/resources/db/desktop/V2.3__ddl.sql @@ -10,3 +10,8 @@ CREATE TABLE `visualization_watermark` ( ) COMMENT='仪表板水印设置表'; INSERT INTO `visualization_watermark` (`id`, `version`, `setting_content`, `create_by`, `create_time`) VALUES ('system_default', '1.0', '{\"enable\":false,\"enablePanelCustom\":true,\"type\":\"custom\",\"content\":\"水印\",\"watermark_color\":\"#DD1010\",\"watermark_x_space\":12,\"watermark_y_space\":36,\"watermark_fontsize\":15}', 'admin', NULL); + +ALTER TABLE `visualization_template` + ADD COLUMN `use_count` int NULL DEFAULT 0 COMMENT '使用次数' AFTER `dynamic_data`; + +update visualization_template set use_count = 0; diff --git a/core/core-backend/src/main/resources/db/migration/V2.3__ddl.sql b/core/core-backend/src/main/resources/db/migration/V2.3__ddl.sql index f8a9c19a0e..e2ff6f3fd5 100644 --- a/core/core-backend/src/main/resources/db/migration/V2.3__ddl.sql +++ b/core/core-backend/src/main/resources/db/migration/V2.3__ddl.sql @@ -10,3 +10,8 @@ CREATE TABLE `visualization_watermark` ( ) COMMENT='仪表板水印设置表'; INSERT INTO `visualization_watermark` (`id`, `version`, `setting_content`, `create_by`, `create_time`) VALUES ('system_default', '1.0', '{\"enable\":false,\"enablePanelCustom\":true,\"type\":\"custom\",\"content\":\"水印\",\"watermark_color\":\"#DD1010\",\"watermark_x_space\":12,\"watermark_y_space\":36,\"watermark_fontsize\":15}', 'admin', NULL); + +ALTER TABLE `visualization_template` + ADD COLUMN `use_count` int NULL DEFAULT 0 COMMENT '使用次数' AFTER `dynamic_data`; + +update visualization_template set use_count = 0; diff --git a/core/core-backend/src/main/resources/mybatis/ExtVisualizationTemplateMapper.xml b/core/core-backend/src/main/resources/mybatis/ExtVisualizationTemplateMapper.xml index 7c18f24e46..c4598a13ad 100644 --- a/core/core-backend/src/main/resources/mybatis/ExtVisualizationTemplateMapper.xml +++ b/core/core-backend/src/main/resources/mybatis/ExtVisualizationTemplateMapper.xml @@ -53,12 +53,13 @@ vt.create_time, vt.template_type, vt.SNAPSHOT, + vt.use_count, vtcm.category_id, cor.time as 'recent_use_time' FROM visualization_template vt LEFT JOIN visualization_template_category_map vtcm ON vt.id = vtcm.template_id left JOIN core_opt_recent cor on cor.resource_type = 6 and vt.id = cor.resource_name - ORDER BY vt.create_time DESC + ORDER BY vt.use_count ,vt.create_time DESC