diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java index c72d3c9..0674958 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java @@ -33,7 +33,7 @@ public class EdFileInfoController { @UserOperation(value = "查看工程树", modelName = UserOperationModuleEnum.DATABASE) @RequestMapping("tree") public ElectromagneticResult tree() { - return edFileInfoService.tree(PrjQuerySource.PRJ_INTERFACE.value); + return edFileInfoService.tree(PrjQuerySource.SYS_DB.value); } @UserOperation(value = "创建文件夹", modelName = UserOperationModuleEnum.DATABASE) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java index 6af85ad..85f86f8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java @@ -49,7 +49,7 @@ public class ProjectController { @UserOperation(value = "查询所有层级", modelName = UserOperationModuleEnum.PRJ_SETTING) @RequestMapping("queryAll") public ElectromagneticResult queryAll() { - return edPrjService.queryAllPrjInfo(PrjQuerySource.PRJ_INTERFACE.value); + return edPrjService.queryAllPrjInfo(PrjQuerySource.SYS_PRJ.value); } @UserOperation(value = "添加子集", modelName = UserOperationModuleEnum.PRJ_SETTING) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java index e906a00..b22d6a9 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java @@ -34,7 +34,7 @@ public class UserEdFileInfoController { @UserOperation(value = "查看工程树", modelName =UserOperationModuleEnum.USER_PRJ) @RequestMapping("tree") public ElectromagneticResult tree() { - return edFileInfoService.tree(PrjQuerySource.USER_INTERFACE.value); + return edFileInfoService.tree(PrjQuerySource.USER_DB.value); } @UserOperation(value = "创建文件夹", modelName =UserOperationModuleEnum.USER_PRJ) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserPrjController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserPrjController.java index 17b7374..9952757 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserPrjController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserPrjController.java @@ -44,7 +44,7 @@ public class UserPrjController { @UserOperation(value = "查询所有层级", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("queryAll") public ElectromagneticResult queryAll() { - return edPrjService.queryAllPrjInfo(PrjQuerySource.USER_INTERFACE.value); + return edPrjService.queryAllPrjInfo(PrjQuerySource.USER_PRJ.value); } @UserOperation(value = "添加子集", modelName = UserOperationModuleEnum.USER_PRJ) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index cc51a01..ec853ba 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -205,7 +205,19 @@ public class CommonService { } + /** + * 1.询管理员从层级定义处查。2.用户从数据库管理界面查询。 + * @param querySource 0:询管理员从层级定义处查。 2.用户从数据库管理界面查询。 + * @param accessibleIds + * @param obj + * @return + */ public Map> querySysPrjTree(int querySource, List accessibleIds, Object obj) { + + /** + * querySource=SYS_PRJ(从层级定义处查询) querySource=SYS_DB(从数据库界面处查询) + */ + Map> map = new HashMap<>(); try { // 首先查出所有的工程id @@ -214,8 +226,17 @@ public class CommonService { .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_PRJ.code) .eq(EdFileInfo::getParentId, PRJ_PARENT_ID); - // 如果不是数据库界面查询,此处需要进行权限筛选 - if (querySource == PrjQuerySource.USER_INTERFACE.value) { + + if (querySource == PrjQuerySource.SYS_DB.value) { + queryWrapper.and(qr -> qr.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code) + .or() + .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code)); + } else { + queryWrapper.ne(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code); + } + + // 如果是数据库界面查询,此处需要进行权限筛选 + if (querySource == PrjQuerySource.SYS_DB.value) { queryWrapper.in(EdFileInfo::getId, accessibleIds); } List prjIds = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); @@ -226,7 +247,7 @@ public class CommonService { .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .likeRight(EdFileInfo::getFilePath, id); - if (querySource == PrjQuerySource.USER_INTERFACE.value) { + if (querySource == PrjQuerySource.SYS_DB.value) { prjQueryWrapper.and(qr -> qr.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code) .or() .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code)); @@ -267,7 +288,7 @@ public class CommonService { .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .likeRight(EdFileInfo::getFilePath, id); - if (querySource == PrjQuerySource.USER_INTERFACE.value) { + if (querySource == PrjQuerySource.USER_DB.value) { prjQueryWrapper.and(qr -> qr.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code) .or() .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code)); @@ -408,15 +429,17 @@ public class CommonService { public Set selectPrjLeafs(int dataOwnCode) { - List prjInfo = (dataOwnCode == DataOwnEnum.SYS_FILE.code) ? - querySysPrjTree(PrjQuerySource.USER_INTERFACE.value, null, new FileProjectVO()).get(PrjQuerySource.USER_INTERFACE.value): - queryUserPrjTree(PrjQuerySource.USER_INTERFACE.value, new FileProjectVO()).get(PrjQuerySource.USER_INTERFACE.value); Set res = new HashSet<>(); - prjInfo.forEach(e -> { - FileProjectVO projectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); - Set leafIds = getLeafNodes(projectVO).stream().map(FileProjectVO::getCategoryId).collect(Collectors.toSet()); - res.addAll(leafIds); - }); + +// List prjInfo = (dataOwnCode == DataOwnEnum.SYS_FILE.code) ? +// querySysPrjTree(PrjQuerySource.USER_INTERFACE.value, null, new FileProjectVO()).get(PrjQuerySource.USER_INTERFACE.value): +// queryUserPrjTree(PrjQuerySource.USER_INTERFACE.value, new FileProjectVO()).get(PrjQuerySource.USER_INTERFACE.value); +// +// prjInfo.forEach(e -> { +// FileProjectVO projectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); +// Set leafIds = getLeafNodes(projectVO).stream().map(FileProjectVO::getCategoryId).collect(Collectors.toSet()); +// res.addAll(leafIds); +// }); return res; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index 0783c05..a41dad8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -180,6 +180,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl tree(int querySource) { + /** + * 都是从用户界面处进来,一个是从数据库的用户界面(SYS_DB),一个是从用户自己的工程界面处(USER_DB)。 + */ + List accessibleIds; - if (querySource == PrjQuerySource.PRJ_INTERFACE.value) { + if (querySource == PrjQuerySource.SYS_DB.value) { accessibleIds = permissionService.getAccessibleTree(); if (CollUtil.isEmpty(accessibleIds)) { return ElectromagneticResultUtil.success(new ArrayList<>()); @@ -202,13 +207,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl> map = (querySource == PrjQuerySource.PRJ_INTERFACE.value) ? + Map> map = (querySource == PrjQuerySource.SYS_DB.value) ? commonService.querySysPrjTree(querySource, accessibleIds, new FileProjectVO()) : commonService.queryUserPrjTree(querySource, new FileProjectVO()); - log.info("#################################################"); - log.info("map is {}", JSONUtil.toJsonStr(map)); - log.info("accessible ids is {}", accessibleIds); - log.info("#################################################"); + List strings = map.getOrDefault(querySource, new ArrayList<>()); List res = new ArrayList<>(); strings.forEach(e -> { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index 465c5a0..2f52a11 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -231,7 +231,11 @@ public class EdPrjServiceImpl extends ServiceImpl @Override public ElectromagneticResult queryAllPrjInfo(int querySource) { - Map> map = (querySource == PrjQuerySource.PRJ_INTERFACE.value) ? + /** + * querySource=SYS_PRJ(管理员从层级定义处查询) querySource=USER_PRJ(用户从自定义层级结构处查询 + */ + + Map> map = (querySource == PrjQuerySource.SYS_PRJ.value) ? commonService.querySysPrjTree(querySource, null, new ProjectVO()) : commonService.queryUserPrjTree(querySource, new ProjectVO()); diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java index 1f31a53..6b29c6f 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java @@ -5,8 +5,10 @@ import lombok.AllArgsConstructor; @AllArgsConstructor public enum PrjQuerySource { - PRJ_INTERFACE(0), - USER_INTERFACE(1); + SYS_PRJ(0), + SYS_DB(1), + USER_PRJ(2), + USER_DB(3); public final int value;