feat: add log
This commit is contained in:
parent
aae3396474
commit
29c059242e
@ -13,6 +13,7 @@ import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasProductModuleFeatureRelationDao;
|
||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.StopWatch;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -27,6 +28,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -87,16 +89,19 @@ public class ProductFeatureRelationServiceImpl implements ProductFeatureRelation
|
||||
|
||||
public Map<Long, List<ProductFeatureRelationVO>> getByWorkspace(Set<Long> workspaceId) {
|
||||
|
||||
StopWatch stopWatch = StopWatch.create(" get product by workspace");
|
||||
if (CollectionUtil.isEmpty(workspaceId)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
stopWatch.start(" get service pkg by work space id");
|
||||
|
||||
List<ServicePkgDetailRes> servicePkgDetailRes = checkAndGetData(servicePkgClient.getServicePkgDetailBySpaceId(workspaceId));
|
||||
if (CollectionUtil.isEmpty(servicePkgDetailRes)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
return servicePkgDetailRes.stream().collect(Collectors.toMap(ServicePkgDetailRes::getSpaceId, servicePkgDetail -> {
|
||||
stopWatch.stop();
|
||||
stopWatch.start("get feature list by product");
|
||||
Map<Long, List<ProductFeatureRelationVO>> result = servicePkgDetailRes.stream().collect(Collectors.toMap(ServicePkgDetailRes::getSpaceId, servicePkgDetail -> {
|
||||
List<ServicePkgProduct> products = servicePkgDetail.getProducts();
|
||||
if (CollectionUtil.isEmpty(products)) {
|
||||
return new ArrayList<>();
|
||||
@ -110,6 +115,9 @@ public class ProductFeatureRelationServiceImpl implements ProductFeatureRelation
|
||||
}
|
||||
return productFeatureRelationVOS;
|
||||
}));
|
||||
stopWatch.stop();
|
||||
log.info(stopWatch.prettyPrint(TimeUnit.MILLISECONDS));
|
||||
return result;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -430,7 +430,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
.workspaceTypeCode(Collections.singletonList(userRoleInfoMap.getWorkspaceType().toString()))
|
||||
.ouTypeCode(Collections.singletonList(userRoleInfoMap.getWorkspaceJoinType().getValue().toString()))
|
||||
.build());
|
||||
initRoleId = roleGroupList.stream().filter(roleGroup -> CollectionUtil.isNotEmpty(roleGroup.getRoleIds())).map(SaasRoleGroupVO::getRoleIds).flatMap(List::stream).collect(Collectors.toSet());
|
||||
initRoleId = roleGroupList.stream().map(SaasRoleGroupVO::getRoleIds).filter(CollectionUtil::isNotEmpty).flatMap(List::stream).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
Set<Long> finalInitRoleId = initRoleId;
|
||||
|
||||
@ -404,17 +404,18 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
||||
}
|
||||
// 工作台的菜单(产品维度)
|
||||
List<ProductFeatureRelationVO> productFeatureRelationVOS = workspacePermissionPoint.get(workspaceId);
|
||||
//同单位资质的产品过滤
|
||||
Set<Long> buttonPermissionPointId = productFeatureRelationVOS.stream().filter(productFeatureRelationVO ->
|
||||
Objects.equals(productFeatureRelationVO.getDictCode(), workspaceJoinType.getValue().toString())
|
||||
).map(ProductFeatureRelationVO::getFeatureId).collect(Collectors.toSet());
|
||||
|
||||
|
||||
List<IdentityAuthRes.WorkspacePermission> permissions = result.getPermissions();
|
||||
|
||||
|
||||
Optional<SaasRoleVO> superAdminRole = role.stream().filter(r -> RoleTypeEnum.SUPER_ADMIN.getValue().equals(r.getRoleType())).findFirst();
|
||||
if (superAdminRole.isPresent()) {
|
||||
//超管:查询工作台对应产品,获取权限点, ( 权限点通过单位类型过滤)
|
||||
workspacePermission.setSuperAdmin(Boolean.TRUE);
|
||||
//同单位资质的产品过滤
|
||||
Set<Long> buttonPermissionPointId = productFeatureRelationVOS.stream().filter(productFeatureRelationVO ->
|
||||
Objects.equals(productFeatureRelationVO.getDictCode(), workspaceJoinType.getValue().toString())
|
||||
).map(ProductFeatureRelationVO::getFeatureId).collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtil.isEmpty(buttonPermissionPointId)) {
|
||||
permissions.add(workspacePermission);
|
||||
return;
|
||||
@ -438,18 +439,21 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
||||
return;
|
||||
}
|
||||
// 非超管
|
||||
// 获取菜单详情信息
|
||||
List<PermissionPointTreeNode> productPermissionInfo = permissionPointService.queryList(PermissionPointListQueryRequest.builder()
|
||||
.ids(productFeatureRelationVOS.stream().map(ProductFeatureRelationVO::getFeatureId).distinct().collect(Collectors.toList()))
|
||||
// 获取产品所对应的权限点
|
||||
// List<Long> productFeatureIds = productFeatureRelationVOS.stream().map(ProductFeatureRelationVO::getFeatureId).distinct().collect(Collectors.toList());
|
||||
// 获取免授权型
|
||||
List<PermissionPointTreeNode> noNeedPermissionPoint = permissionPointService.queryList(PermissionPointListQueryRequest.builder()
|
||||
.ids(new ArrayList<>(buttonPermissionPointId))
|
||||
.delegatedType(DelegatedType.NO_NEED.getCode())
|
||||
.build());
|
||||
|
||||
Set<Long> buttonPermissionPointIds = roleService.filterPermissionPoint(role, userRoleInfoMap);
|
||||
|
||||
//获取免授权型
|
||||
Set<Long> noNeedPermissionPoint = productPermissionInfo.stream().filter(permission -> Objects.equals(permission.getDelegatedType(), DelegatedType.NO_NEED.getCode())).mapToLong(PermissionPointTreeNode::getPermissionPointId).boxed().collect(Collectors.toSet());
|
||||
buttonPermissionPointIds.addAll(noNeedPermissionPoint);
|
||||
// Set<Long> noNeedPermissionPoint = productPermissionInfo.stream().filter(permission -> Objects.equals(permission.getDelegatedType(), DelegatedType.NO_NEED.getCode())).mapToLong(PermissionPointTreeNode::getPermissionPointId).boxed().collect(Collectors.toSet());
|
||||
buttonPermissionPointIds.addAll(noNeedPermissionPoint.stream().map(PermissionPointTreeNode::getPermissionPointId).collect(Collectors.toSet()));
|
||||
// 产品对应权限点(权限点的授权类型为免授权型)+角色对应权限点 与 产品对应权限点 取交集
|
||||
Collection<Long> resultHashAuthPointId = CollectionUtil.intersection(buttonPermissionPointIds, productPermissionInfo.stream().mapToLong(PermissionPointTreeNode::getPermissionPointId).boxed().collect(Collectors.toList()));
|
||||
Collection<Long> resultHashAuthPointId = CollectionUtil.intersection(buttonPermissionPointIds, buttonPermissionPointId);
|
||||
if (CollectionUtil.isEmpty(resultHashAuthPointId)) {
|
||||
permissions.add(workspacePermission);
|
||||
return;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user