feat:(REQ-2720) 修改旧菜单树缓存,因为没有把父节点的权限存储起来,但是实际有权限
This commit is contained in:
parent
58bf864ac2
commit
6e45898d3b
@ -37,6 +37,11 @@ public class SimplePermissionPointResp implements IBaseTree<SimplePermissionPoin
|
||||
/** 上级权限点ID **/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 类型 0.模块 1.菜单 2页面 3功能
|
||||
*/
|
||||
private Integer featureType;
|
||||
|
||||
/** 子节点 **/
|
||||
private List<SimplePermissionPointResp> children;
|
||||
|
||||
|
||||
@ -5,11 +5,12 @@ import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.tyr.client.model.req.PageProductFeatureRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.req.QueryPermissionByIdsReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.SimplePermissionPointResp;
|
||||
import cn.axzo.tyr.server.event.payload.ProductPermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import cn.axzo.tyr.server.service.ProductFeatureRelationService;
|
||||
import cn.axzo.tyr.server.service.ProductPermissionCacheService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
@ -50,7 +51,7 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
@Autowired
|
||||
private SaasFeatureResourceService saasFeatureResourceService;
|
||||
@Autowired
|
||||
private SaasFeatureDao saasFeatureDao;
|
||||
private PermissionPointService permissionPointService;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
@ -94,9 +95,11 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 新的菜单树是是把有权限点的父节点也存进去了,所以直接解析
|
||||
Map<Long, SaasFeatureResourceResp> featureResources = listSaasFeatureResource(productPermissions);
|
||||
|
||||
Map<Long, SaasFeature> saasFeatures = listSaasFeature(productPermissions);
|
||||
// 旧的菜单树只存储了权限点信息,没有把父节点存进去,需要解析父节点进行存储
|
||||
Map<Long, SimplePermissionPointResp> saasFeatures = listSaasFeature(productPermissions);
|
||||
|
||||
return productPermissions.stream()
|
||||
.collect(Collectors.groupingBy(SaasProductModuleFeatureRelation::getProductModuleId))
|
||||
@ -135,14 +138,14 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
SaasFeature saasFeature = saasFeatures.get(relation.getFeatureId());
|
||||
SimplePermissionPointResp saasFeature = saasFeatures.get(relation.getFeatureId());
|
||||
if (Objects.isNull(saasFeature)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Lists.newArrayList(ProductPermissionCacheService.PermissionDTO.builder()
|
||||
.featureId(saasFeature.getId())
|
||||
.featureCode(saasFeature.getFeatureCode())
|
||||
.featureCode(saasFeature.getCode())
|
||||
.featureType(saasFeature.getFeatureType())
|
||||
.terminal(saasFeature.getTerminal())
|
||||
.cooperateType(relation.getDictCode())
|
||||
@ -187,19 +190,23 @@ public class CacheProductPermissionHandler implements EventHandler, Initializing
|
||||
.collect(Collectors.toMap(SaasFeatureResourceResp::getId, Function.identity()));
|
||||
}
|
||||
|
||||
private Map<Long, SaasFeature> listSaasFeature(List<SaasProductModuleFeatureRelation> productPermissions) {
|
||||
private Map<Long, SimplePermissionPointResp> listSaasFeature(List<SaasProductModuleFeatureRelation> productPermissions) {
|
||||
|
||||
List<Long> featureIds = productPermissions.stream()
|
||||
Set<Long> featureIds = productPermissions.stream()
|
||||
.filter(e -> Objects.equals(e.getType(), OLD_FEATURE))
|
||||
.map(SaasProductModuleFeatureRelation::getFeatureId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtils.isEmpty(featureIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return saasFeatureDao.listByIds(featureIds).stream()
|
||||
.collect(Collectors.toMap(SaasFeature::getId, Function.identity()));
|
||||
return permissionPointService.listPermissionByIds(
|
||||
QueryPermissionByIdsReq.builder()
|
||||
.ids(featureIds)
|
||||
.includeParent(true)
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(SimplePermissionPointResp::getId, Function.identity()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,12 +4,13 @@ import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.req.QueryPermissionByIdsReq;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasPermissionRelationRes;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
import cn.axzo.tyr.client.model.res.SimplePermissionPointResp;
|
||||
import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import cn.axzo.tyr.server.service.RolePermissionCacheService;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
@ -50,7 +51,7 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
@Autowired
|
||||
private SaasFeatureResourceService saasFeatureResourceService;
|
||||
@Autowired
|
||||
private SaasFeatureDao saasFeatureDao;
|
||||
private PermissionPointService permissionPointService;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
@ -94,7 +95,7 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
|
||||
Map<Long, SaasFeatureResourceResp> featureResources = listSaasFeatureResource(roles);
|
||||
|
||||
Map<Long, SaasFeature> saasFeatures = listSaasFeature(roles);
|
||||
Map<Long, SimplePermissionPointResp> saasFeatures = listSaasFeature(roles);
|
||||
|
||||
return roles.stream()
|
||||
.map(e -> {
|
||||
@ -127,13 +128,13 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
SaasFeature saasFeature = saasFeatures.get(permissionRelation.getFeatureId());
|
||||
SimplePermissionPointResp saasFeature = saasFeatures.get(permissionRelation.getFeatureId());
|
||||
if (Objects.isNull(saasFeature)) {
|
||||
return null;
|
||||
}
|
||||
return Lists.newArrayList(RolePermissionCacheService.PermissionDTO.builder()
|
||||
.featureId(saasFeature.getId())
|
||||
.featureCode(saasFeature.getFeatureCode())
|
||||
.featureCode(saasFeature.getCode())
|
||||
.featureType(saasFeature.getFeatureType())
|
||||
.terminal(saasFeature.getTerminal())
|
||||
.build());
|
||||
@ -180,22 +181,26 @@ public class CacheRolePermissionHandler implements EventHandler, InitializingBea
|
||||
.collect(Collectors.toMap(SaasFeatureResourceResp::getId, Function.identity()));
|
||||
}
|
||||
|
||||
private Map<Long, SaasFeature> listSaasFeature(List<SaasRoleRes> roles) {
|
||||
private Map<Long, SimplePermissionPointResp> listSaasFeature(List<SaasRoleRes> roles) {
|
||||
|
||||
List<Long> featureIds = roles.stream()
|
||||
Set<Long> featureIds = roles.stream()
|
||||
.filter(e -> !CollectionUtils.isEmpty(e.getPermissionRelations()))
|
||||
.map(SaasRoleRes::getPermissionRelations)
|
||||
.flatMap(Collection::stream)
|
||||
.filter(e -> Objects.equals(e.getType(), OLD_FEATURE))
|
||||
.map(SaasPermissionRelationRes::getFeatureId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtils.isEmpty(featureIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return saasFeatureDao.listByIds(featureIds).stream()
|
||||
.collect(Collectors.toMap(SaasFeature::getId, Function.identity()));
|
||||
return permissionPointService.listPermissionByIds(
|
||||
QueryPermissionByIdsReq.builder()
|
||||
.ids(featureIds)
|
||||
.includeParent(true)
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(SimplePermissionPointResp::getId, Function.identity()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -634,7 +634,8 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
SaasFeature::getFeatureName,
|
||||
SaasFeature::getParentId,
|
||||
SaasFeature::getPath,
|
||||
SaasFeature::getTerminal));
|
||||
SaasFeature::getTerminal,
|
||||
SaasFeature::getFeatureType));
|
||||
|
||||
Set<Long> parentIds = new HashSet<>();
|
||||
for (SaasFeature permission : allPermissions) {
|
||||
@ -672,6 +673,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
.name(permission.getFeatureName())
|
||||
.parentId(permission.getParentId())
|
||||
.terminal(permission.getTerminal())
|
||||
.featureType(permission.getFeatureType())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@ -159,7 +159,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
||||
private final RolePermissionCacheService rolePermissionCacheService;
|
||||
private final SaasRoleUserRelationMapper saasRoleUserRelationMapper;
|
||||
|
||||
@Value("${permission.from.db:false}")
|
||||
@Value("${permission.from.db:true}")
|
||||
private boolean PERMISSION_FROM_DB;
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user