From 8318b173f186a0be1238265ecb6845d758de7cb7 Mon Sep 17 00:00:00 2001 From: "hong.yang" Date: Fri, 11 Aug 2023 09:26:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC=E5=88=B01.0.1.202?= =?UTF-8?q?3081101.Alpha,=E8=AF=A5=E7=89=88=E6=9C=AC=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E6=95=B0=E6=8D=AE=E9=9B=86=E7=BB=93=E6=9E=9C=E5=92=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E4=BF=A1=E6=81=AF=E7=9A=84=E7=BC=93?= =?UTF-8?q?=E5=AD=98=EF=BC=8C=E5=A4=A7=E5=B9=85=E5=87=8F=E5=B0=91=E4=BA=86?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E5=A4=A7=E5=B1=8F=E9=A1=B5=E9=9D=A2=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E5=AF=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=EF=BC=9B=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E4=BF=A1=E6=81=AF=E7=9A=84=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 升级数据集插件版本到1.0.1.2023081101.Alpha,该版本添加了数据集结果和数据集信息的缓存,大幅减少了单个大屏页面刷新时对数据库的请求;添加页面设计信息的缓存 --- .../module/basic/service/IBasePageService.java | 15 +++++++++++++++ .../chart/service/BaseChartDataService.java | 2 +- .../service/impl/DataRoomPageServiceImpl.java | 2 ++ DataRoom/pom.xml | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java index 49d69f47..343b3b42 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/basic/service/IBasePageService.java @@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.gccloud.dataroom.core.module.basic.entity.PageEntity; import com.gccloud.common.service.ISuperService; import com.gccloud.common.utils.AssertUtils; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -18,6 +21,11 @@ import java.util.stream.Collectors; */ public interface IBasePageService extends ISuperService { + /** + * 页面实体缓存 + */ + Cache PAGE_ENTITY_CACHE = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.MINUTES).build(); + /** * 获取指定类型页面所有名称 * @@ -42,9 +50,16 @@ public interface IBasePageService extends ISuperService { */ default PageEntity getByCode(String code) { AssertUtils.isTrue(StringUtils.isNotBlank(code), "页面编码不能为空"); + PageEntity ifPresent = PAGE_ENTITY_CACHE.getIfPresent(code); + if (ifPresent != null) { + return ifPresent; + } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PageEntity::getCode, code); PageEntity pageEntity = getBaseMapper().selectOne(queryWrapper); + if (pageEntity != null) { + PAGE_ENTITY_CACHE.put(code, pageEntity); + } return pageEntity; } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/service/BaseChartDataService.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/service/BaseChartDataService.java index 9af70fc1..98d3f5b3 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/service/BaseChartDataService.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/service/BaseChartDataService.java @@ -59,7 +59,7 @@ public class BaseChartDataService { return null; } IBaseDataSetService dataSetService = dataSetServiceFactory.buildById(dataSetDataSource.getBusinessKey()); - DatasetEntity datasetEntity = dataSetService.getById(dataSetDataSource.getBusinessKey()); + DatasetEntity datasetEntity = dataSetService.getByIdFromCache(dataSetDataSource.getBusinessKey()); if (datasetEntity == null) { return null; } diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java index a4300254..675de9d8 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java @@ -221,6 +221,7 @@ public class DataRoomPageServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PageEntity::getCode, code); this.remove(queryWrapper); + PAGE_ENTITY_CACHE.invalidate(code); // 调用拓展接口 dataRoomExtendClient.deleteByCode(code); } diff --git a/DataRoom/pom.xml b/DataRoom/pom.xml index 74eca13c..2129d7b1 100644 --- a/DataRoom/pom.xml +++ b/DataRoom/pom.xml @@ -60,7 +60,7 @@ 0.3.2 2.2 4.9.1 - 1.0.1.2023080901.Alpha + 1.0.1.2023081101.Alpha