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