Merge remote-tracking branch 'origin/lei_dev' into leng_dev

This commit is contained in:
lbw committed 2022-12-27 11:11:27 +08:00
commit f118e72670
4 files changed
+103 -12

No files matched your search

-4
View File
@@ -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:
@@ -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<ConfigHistoryInfo> 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<String, String> 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<ConfigInfoWrapper> 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.");
}
}
}
@@ -0,0 +1,4 @@
/**
* 处理再oracle数据库下空置的判断
*/
package com.alibaba.nacos.config.server.service;
@@ -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<SysTenantMapper, SysTenant
List<SysDict> dictList = new ArrayList<>(32);
List<Long> dictIdList = new ArrayList<>(32);
List<SysDictItem> dictItemList = new ArrayList<>(64);
List<SysMenu> menuList = new ArrayList<>(128);
List<SysOauthClientDetails> clientDetailsList = new ArrayList<>(16);
List<SysPublicParam> publicParamList = new ArrayList<>(64);
List<SysMenu> menuList = new ArrayList<>();
TenantBroker.runAs(defaultId, (id) -> {
// 查询系统内置字典
@@ -128,12 +129,16 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
dictIdList.addAll(dictList.stream().map(SysDict::getId).collect(Collectors.toList()));
dictItemList.addAll(
dictItemService.list(Wrappers.<SysDictItem>lambdaQuery().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<SysMenu> newMenuList = menuService
.list(Wrappers.<SysMenu>lambdaQuery().in(SysMenu::getMenuId,split));
menuList.addAll(newMenuList);
});
// 保证插入租户为新的租户
@@ -157,12 +162,14 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
SysRole roleDefault = new SysRole();
roleDefault.setRoleCode(userDefaultRoleCode);
roleDefault.setRoleName(userDefaultRoleName);
roleDefault.setDsType(DataScopeTypeEnum.SELF_LEVEL.getType());
roleService.save(roleDefault);
// 构造新角色 管理员角色
SysRole role = new SysRole();
role.setRoleCode(defaultRoleCode);
role.setRoleName(defaultRoleName);
role.setDsType(DataScopeTypeEnum.ALL.getType());
roleService.save(role);
// 用户角色关系
SysUserRole userRole = new SysUserRole();
@@ -170,15 +177,14 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
userRole.setRoleId(role.getRoleId());
userRoleService.save(userRole);
// 插入新的菜单
saveTenantMenu(menuList, CommonConstants.MENU_TREE_ROOT_ID, CommonConstants.MENU_TREE_ROOT_ID);
SysTenantMenu tenantMenu = sysTenantMenuService.getById(sysTenant.getMenuId());
List<SysMenu> newMenuList = menuService
.list(Wrappers.<SysMenu>lambdaQuery().in(SysMenu::getMenuId, tenantMenu.getMenuIds()));
// 重新查询出所有的菜单关联角色
List<SysMenu> list = menuService.list();
// 查询全部菜单,构造角色菜单关系
List<SysRoleMenu> roleMenuList = newMenuList.stream().map(menu -> {
List<SysRoleMenu> roleMenuList = list.stream().map(menu -> {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menu.getMenuId());