Merge branch 'master' into feature/REQ-2299
This commit is contained in:
commit
db4f211b10
@ -133,7 +133,11 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
} else {
|
||||
//更新 - 恢复不能变更的数据
|
||||
baseResource.setId(resource.getId());
|
||||
if (baseResource.getParentId() < 0) {
|
||||
baseResource.setPath(resource.getId().toString());
|
||||
} else {
|
||||
baseResource.setPath(baseResource.getPath() + "," + resource.getId());
|
||||
}
|
||||
baseResource.setUpdateBy(operatorId);
|
||||
baseResource.setAppItemId(resource.getAppItemId());
|
||||
featureResourceDao.updateById(baseResource);
|
||||
@ -154,6 +158,11 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
|
||||
/** 修正当前环境的数据 parentId path **/
|
||||
private void fixData(SaasFeatureResource resource, String parentCode) {
|
||||
// 原数据的parentId为负数,表示是端下面的第一层数据,此数据的path为当前数据的id,parentId为原数据的parentId
|
||||
if (resource.getParentId() < 0) {
|
||||
resource.setParentId(resource.getParentId());
|
||||
return;
|
||||
}
|
||||
if (StrUtil.isBlank(parentCode)) {
|
||||
resource.setParentId(0L);
|
||||
resource.setPath("0");
|
||||
@ -174,7 +183,11 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
|
||||
featureResourceDao.save(resource);
|
||||
//path追加自身ID
|
||||
if (resource.getParentId() < 0) {
|
||||
resource.setPath(resource.getId().toString());
|
||||
} else {
|
||||
resource.setPath(resource.getPath() + "," + resource.getId());
|
||||
}
|
||||
featureResourceDao.updateById(resource);
|
||||
|
||||
}
|
||||
|
||||
@ -1,19 +1,5 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.basics.common.exception.ServiceException;
|
||||
@ -24,15 +10,47 @@ import cn.axzo.tyr.client.model.enums.PermissionScope;
|
||||
import cn.axzo.tyr.client.model.enums.PermissionScopeType;
|
||||
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.*;
|
||||
import cn.axzo.tyr.server.repository.dao.*;
|
||||
import cn.axzo.tyr.server.repository.entity.*;
|
||||
import cn.axzo.tyr.client.model.vo.DeletePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRolePermissionScopeVO;
|
||||
import cn.axzo.tyr.client.model.vo.SaveOrUpdatePermissionGroupVO;
|
||||
import cn.axzo.tyr.client.model.vo.SavePermissionGroupPPVO;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupScopeDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupRoleRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.service.PermissionGroupService;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import cn.axzo.tyr.server.service.SaasPermissionGroupScopeService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 权限集
|
||||
@ -62,6 +80,7 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
List<SaasPgroupRoleRelation> relationList = null;
|
||||
if (CollectionUtils.isNotEmpty(req.getRoleIds())) {
|
||||
relationList = pgroupRoleRelationDao.lambdaQuery()
|
||||
.select(SaasPgroupRoleRelation::getGroupId,SaasPgroupRoleRelation::getRoleId,SaasPgroupRoleRelation::getId)
|
||||
.in(SaasPgroupRoleRelation::getRoleId, req.getRoleIds())
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
@ -100,10 +119,11 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
if (CollectionUtils.isEmpty(groupList)) {
|
||||
return PageResp.zero(iPage.getCurrent(), iPage.getSize());
|
||||
}
|
||||
List<Long> groupIds = groupList.stream().map(BaseEntity::getId).collect(Collectors.toList());
|
||||
List<Long> groupIds = groupList.stream().map(BaseEntity::getId).distinct().collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(relationList)) {
|
||||
relationList = pgroupRoleRelationDao.lambdaQuery()
|
||||
.select(SaasPgroupRoleRelation::getGroupId,SaasPgroupRoleRelation::getRoleId,SaasPgroupRoleRelation::getId)
|
||||
.in(SaasPgroupRoleRelation::getGroupId, groupIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
@ -113,20 +133,23 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
|
||||
// 查询权限集关联的权限
|
||||
List<SaasPgroupPermissionRelation> permissionList = permissionRelationDao.lambdaQuery()
|
||||
.select(SaasPgroupPermissionRelation::getFeatureId,SaasPgroupPermissionRelation::getGroupId)
|
||||
.in(SaasPgroupPermissionRelation::getGroupId, groupIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
List<PermissionPointTreeNode> features = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(permissionList)) {
|
||||
// 查询全部featureCode
|
||||
features = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList()));
|
||||
features = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).distinct().collect(Collectors.toList()));
|
||||
}
|
||||
Map<Long, PermissionPointTreeNode> featureMap = features.stream().collect(Collectors.toMap(PermissionPointTreeNode::getPermissionPointId, Function.identity(), (e1, e2) -> e2));
|
||||
Map<Long, List<PermissionPointTreeNode>> pgroupPermissionMap = permissionList.stream()
|
||||
Map<Long, Set<PermissionPointTreeNode>> pgroupPermissionMap = permissionList.stream()
|
||||
.filter(e -> featureMap.get(e.getFeatureId()) != null)
|
||||
.collect(Collectors.groupingBy(SaasPgroupPermissionRelation::getGroupId,
|
||||
Collectors.mapping(releation -> featureMap.get(releation.getFeatureId()), Collectors.toList())));
|
||||
pgroupPermissionMap.forEach((k, v) -> v.removeIf(Objects::isNull));
|
||||
Collectors.mapping(releation -> featureMap.get(releation.getFeatureId()), Collectors.toSet())));
|
||||
List<SaasPermissionGroupScope> saasPermissionGroupScopesSource = saasPermissionGroupScopeDao.lambdaQuery()
|
||||
.select(SaasPermissionGroupScope::getId,SaasPermissionGroupScope::getScopeId,SaasPermissionGroupScope::getPgroupId,SaasPermissionGroupScope::getType
|
||||
,SaasPermissionGroupScope::getScopeType)
|
||||
.in(SaasPermissionGroupScope::getPgroupId, groupIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
@ -148,13 +171,14 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
return true;
|
||||
}).collect(Collectors.toList());
|
||||
Map<Long, List<SaasRolePermissionScopeVO>> permissionGroupScopeMap = saasPermissionGroupScopes.stream().collect(Collectors.groupingBy(SaasPermissionGroupScope::getPgroupId, Collectors.mapping(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class), Collectors.toList())));
|
||||
|
||||
// 组装填充字段
|
||||
List<SaasPermissionGroupVO> pageList = groupList.stream().map(group -> {
|
||||
SaasPermissionGroupVO pgroupResult = SaasPermissionGroupVO.builder()
|
||||
.id(group.getId())
|
||||
.name(group.getName())
|
||||
.scopes(Optional.ofNullable(permissionGroupScopeMap.get(group.getId())).orElse(new ArrayList<>()))
|
||||
.feature(Optional.ofNullable(pgroupPermissionMap.get(group.getId())).orElse(new ArrayList<>()))
|
||||
.feature( CollectionUtil.newArrayList((pgroupPermissionMap.get(group.getId()))))
|
||||
.createBy(group.getCreateBy())
|
||||
.creatorName(group.getCreatorName())
|
||||
.updateBy(group.getUpdateBy())
|
||||
|
||||
@ -358,7 +358,9 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic
|
||||
|
||||
List<SaasFeatureResource> parallelFeature = featureResourceDao.lambdaQuery()
|
||||
.eq(BaseEntity::getIsDelete,0)
|
||||
.eq(SaasFeatureResource::getParentId, resource.getParentId())
|
||||
.eq(resource.getParentId() > 0, SaasFeatureResource::getParentId, resource.getParentId())
|
||||
.le(resource.getParentId() <= 0, SaasFeatureResource::getParentId, 0)
|
||||
.eq(SaasFeatureResource::getTerminal, resource.getTerminal())
|
||||
.orderByAsc(SaasFeatureResource::getDisplayOrder)
|
||||
.list();
|
||||
List<Long> parallelIds = parallelFeature.stream().map(SaasFeatureResource::getId).collect(Collectors.toList());
|
||||
|
||||
@ -413,6 +413,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
||||
log.info("build permission for role:{}", role.getId());
|
||||
Set<Long> rolePermissionIds = role.getMatchFeature(userRoleInfoMap.getWorkspaceId(), userRoleInfoMap.ouId)
|
||||
.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(PermissionPointTreeNode::getPermissionPointId)
|
||||
.collect(Collectors.toSet());
|
||||
//角色标签类型匹配产品标签类型
|
||||
|
||||
Loading…
Reference in New Issue
Block a user