fix(permission-check): path匹配方式
This commit is contained in:
parent
2bbf879f22
commit
bde1848a0f
@ -568,18 +568,20 @@ public class PermissionPointServiceImpl implements PermissionPointService {
|
||||
.eq(SaasFeature::getFeatureCode, featureCode)
|
||||
.eq(StrUtil.isNotBlank(terminal), SaasFeature::getTerminal, terminal));
|
||||
//button过滤减少查询
|
||||
Set<Long> idsWithoutButton = currentFeatrureList.stream()
|
||||
Set<String> pathsWithoutButton = currentFeatrureList.stream()
|
||||
.filter(f -> !BUTTON.sameCode(f.getFeatureType()))
|
||||
.map(SaasFeature::getId)
|
||||
.map(SaasFeature::getPath)
|
||||
.collect(Collectors.toSet());
|
||||
if (CollectionUtil.isEmpty(idsWithoutButton)) {
|
||||
if (CollectionUtil.isEmpty(pathsWithoutButton)) {
|
||||
return currentFeatrureList;
|
||||
}
|
||||
String querySql = StrUtil.join(" OR ", idsWithoutButton.stream().map(id -> "FIND_IN_SET('" + id + "', path)").collect(Collectors.toList()));
|
||||
|
||||
List<SaasFeature> children = saasFeatureDao.list(new LambdaQueryWrapper<SaasFeature>()
|
||||
Wrapper<SaasFeature> wrapper = new LambdaQueryWrapper<SaasFeature>()
|
||||
.eq(StrUtil.isNotBlank(terminal), SaasFeature::getTerminal, terminal)
|
||||
.apply(querySql));
|
||||
.and(w -> {
|
||||
pathsWithoutButton.forEach(p -> w.or().likeRight(SaasFeature::getPath, p));
|
||||
});
|
||||
List<SaasFeature> children = saasFeatureDao.list(wrapper);
|
||||
currentFeatrureList.addAll(children);
|
||||
return currentFeatrureList;
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import cn.axzo.tyr.client.model.permission.PermissionPointVO;
|
||||
import cn.axzo.tyr.server.controller.permission.PermissionPointController;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.service.PermissionPointService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -33,6 +34,8 @@ public class PermissionPointTest {
|
||||
private PermissionPointController controller;
|
||||
@Autowired
|
||||
private SaasFeatureDao saasFeatureDao;
|
||||
@Autowired
|
||||
private PermissionPointService permissionPointService;
|
||||
|
||||
@Test
|
||||
public void testList() {
|
||||
@ -133,4 +136,10 @@ public class PermissionPointTest {
|
||||
System.out.println(JSON.toJSONString(result));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
List<SaasFeature> saasFeatures = permissionPointService.listNodeWithChildrenByCode("CMS_WEB_PROJ_0546", "NT_CMS_WEB_PROJ");
|
||||
System.out.println(JSON.toJSONString(saasFeatures));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user