mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-08 20:49:00 +08:00
Merge remote-tracking branch 'origin/lei_dev' into leng_dev
This commit is contained in:
commit
f118e72670
4 files changed
+103
-12
No files matched your search
@@ -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:
|
||||
|
||||
+85
@@ -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;
|
||||
+14
-8
@@ -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());
|
||||
|
||||
Reference in new issue
Block a user