From 73b0664d2a2e23d8ba5a2b80f501b393b8220349 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Mon, 26 Dec 2022 17:36:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.?= =?UTF-8?q?=20=E8=A6=86=E7=9B=96nacos=E5=AE=98=E6=96=B9=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=9F=A5=E8=AF=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 数据库插件是oracle时 查询出空数据对比错误 --- .../config/server/service/HistoryService.java | 85 +++++++++++++++++++ .../config/server/service/package-info.java | 4 + 2 files changed, 89 insertions(+) create mode 100644 pigx-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java create mode 100644 pigx-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java diff --git a/pigx-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java b/pigx-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java new file mode 100644 index 000000000..3e3c5cb6b --- /dev/null +++ b/pigx-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java @@ -0,0 +1,85 @@ +package com.alibaba.nacos.config.server.service; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.nacos.common.utils.Pair; +import com.alibaba.nacos.config.server.model.ConfigHistoryInfo; +import com.alibaba.nacos.config.server.model.ConfigInfoWrapper; +import com.alibaba.nacos.config.server.model.Page; +import com.alibaba.nacos.config.server.service.repository.ConfigInfoPersistService; +import com.alibaba.nacos.config.server.service.repository.HistoryConfigInfoPersistService; +import com.alibaba.nacos.plugin.auth.exception.AccessException; +import com.alibaba.nacos.plugin.encryption.handler.EncryptionHandler; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; + +@Service +public class HistoryService { + + private final HistoryConfigInfoPersistService historyConfigInfoPersistService; + + private final ConfigInfoPersistService configInfoPersistService; + + public HistoryService(HistoryConfigInfoPersistService historyConfigInfoPersistService, + ConfigInfoPersistService configInfoPersistService) { + this.historyConfigInfoPersistService = historyConfigInfoPersistService; + this.configInfoPersistService = configInfoPersistService; + } + + public Page listConfigHistory(String dataId, String group, String namespaceId, Integer pageNo, + Integer pageSize) { + return this.historyConfigInfoPersistService.findConfigHistory(dataId, group, namespaceId, pageNo, pageSize); + } + + public ConfigHistoryInfo getConfigHistoryInfo(String dataId, String group, String namespaceId, Long nid) + throws AccessException { + ConfigHistoryInfo configHistoryInfo = this.historyConfigInfoPersistService.detailConfigHistory(nid); + if (Objects.isNull(configHistoryInfo)) { + return null; + } + else { + this.checkHistoryInfoPermission(configHistoryInfo, dataId, group, namespaceId); + String encryptedDataKey = configHistoryInfo.getEncryptedDataKey(); + Pair pair = EncryptionHandler.decryptHandler(dataId, encryptedDataKey, + configHistoryInfo.getContent()); + configHistoryInfo.setContent((String) pair.getSecond()); + return configHistoryInfo; + } + } + + public ConfigHistoryInfo getPreviousConfigHistoryInfo(String dataId, String group, String namespaceId, Long id) + throws AccessException { + ConfigHistoryInfo configHistoryInfo = this.historyConfigInfoPersistService.detailPreviousConfigHistory(id); + if (Objects.isNull(configHistoryInfo)) { + return null; + } + else { + this.checkHistoryInfoPermission(configHistoryInfo, dataId, group, namespaceId); + return configHistoryInfo; + } + } + + public List getConfigListByNamespace(String namespaceId) { + return this.configInfoPersistService.queryConfigInfoByNamespace(namespaceId); + } + + /** + * 覆盖原有的校验方式,oracle 数据库没有空 字符串 只有 null + * @param configHistoryInfo + * @param dataId + * @param group + * @param namespaceId + * @throws AccessException + */ + private void checkHistoryInfoPermission(ConfigHistoryInfo configHistoryInfo, String dataId, String group, + String namespaceId) throws AccessException { + if (!Objects.equals(configHistoryInfo.getDataId(), dataId) + || !Objects.equals(configHistoryInfo.getGroup(), group) + || (!StrUtil.isEmpty(configHistoryInfo.getTenant()) + && !Objects.equals(configHistoryInfo.getTenant(), namespaceId))) { + throw new AccessException("Please check dataId, group or namespaceId."); + } + } + +} diff --git a/pigx-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java b/pigx-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java new file mode 100644 index 000000000..d3c747a1d --- /dev/null +++ b/pigx-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java @@ -0,0 +1,4 @@ +/** + * 处理再oracle数据库下空置的判断 + */ +package com.alibaba.nacos.config.server.service; From 2692d6df714ea4415d0b709a409669b23510ac3e Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Mon, 26 Dec 2022 19:27:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=A7=9F=E6=88=B7=E6=97=B6=E7=A7=9F=E6=88=B7=E5=A5=97?= =?UTF-8?q?=E9=A4=90=E5=8A=9F=E8=83=BDbug=EF=BC=8C=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E7=9A=84=E8=A7=92=E8=89=B2=E6=B2=A1=E6=9C=89=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=AF=BC=E8=87=B4=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysTenantServiceImpl.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java index d094ce313..28344a9fb 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java @@ -26,6 +26,7 @@ import com.pig4cloud.pigx.admin.service.*; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.util.SpringContextHolder; +import com.pig4cloud.pigx.common.data.datascope.DataScopeTypeEnum; import com.pig4cloud.pigx.common.data.resolver.ParamResolver; import com.pig4cloud.pigx.common.data.tenant.TenantBroker; import lombok.AllArgsConstructor; @@ -117,9 +118,9 @@ public class SysTenantServiceImpl extends ServiceImpl dictList = new ArrayList<>(32); List dictIdList = new ArrayList<>(32); List dictItemList = new ArrayList<>(64); - List menuList = new ArrayList<>(128); List clientDetailsList = new ArrayList<>(16); List publicParamList = new ArrayList<>(64); + List menuList = new ArrayList<>(); TenantBroker.runAs(defaultId, (id) -> { // 查询系统内置字典 @@ -128,12 +129,16 @@ public class SysTenantServiceImpl extends ServiceImpllambdaQuery().in(SysDictItem::getDictId, dictIdList))); - // 查询当前租户菜单 - menuList.addAll(menuService.list()); // 查询客户端配置 clientDetailsList.addAll(clientServices.list()); // 查询系统参数配置 publicParamList.addAll(paramService.list()); + + SysTenantMenu tenantMenu = sysTenantMenuService.getById(sysTenant.getMenuId()); + String[] split = tenantMenu.getMenuIds().split(","); + List newMenuList = menuService + .list(Wrappers.lambdaQuery().in(SysMenu::getMenuId,split)); + menuList.addAll(newMenuList); }); // 保证插入租户为新的租户 @@ -157,12 +162,14 @@ public class SysTenantServiceImpl extends ServiceImpl newMenuList = menuService - .list(Wrappers.lambdaQuery().in(SysMenu::getMenuId, tenantMenu.getMenuIds())); + // 重新查询出所有的菜单关联角色 + List list = menuService.list(); // 查询全部菜单,构造角色菜单关系 - List roleMenuList = newMenuList.stream().map(menu -> { + List roleMenuList = list.stream().map(menu -> { SysRoleMenu roleMenu = new SysRoleMenu(); roleMenu.setRoleId(role.getRoleId()); roleMenu.setMenuId(menu.getMenuId()); From ca1b4f9b983e40b920d38e91cf4cb22513c080d4 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Tue, 27 Dec 2022 10:02:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4docker-compose=20=E4=B8=ADredis=20=E5=92=8Cmysql=20?= =?UTF-8?q?=E7=9A=84=E6=9A=B4=E6=BC=8F=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0c57830b2..a2a3bc64f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,8 +14,6 @@ services: restart: always container_name: pigx-mysql image: pigx-mysql - ports: - - 3306:3306 volumes: - ./pigx-mysql:/var/lib/mysql command: --lower_case_table_names=1 @@ -24,8 +22,6 @@ services: container_name: pigx-redis image: redis:6.2.6 restart: always - ports: - - 6379:6379 pigx-register: build: