|
@@ -1,5 +1,6 @@
|
|
|
package cn.cslg.pas.service.business;
|
|
|
|
|
|
+import cn.cslg.pas.common.dto.business.QueryAllTreePathDTO;
|
|
|
import cn.cslg.pas.common.dto.business.QueryTreeNodeDTO;
|
|
|
import cn.cslg.pas.common.dto.business.TreeNodeDTO;
|
|
|
import cn.cslg.pas.common.dto.business.UpdateTreeNodeDTO;
|
|
@@ -11,6 +12,7 @@ import cn.cslg.pas.common.utils.LoginUtils;
|
|
|
import cn.cslg.pas.common.vo.ReTreeNodeVO;
|
|
|
import cn.cslg.pas.common.vo.business.ProductVO;
|
|
|
import cn.cslg.pas.common.vo.business.TreeNodeVO;
|
|
|
+import cn.cslg.pas.common.vo.business.TreePathVO;
|
|
|
import cn.cslg.pas.domain.business.AssoTreeNodeFile;
|
|
|
import cn.cslg.pas.domain.business.TreeNode;
|
|
|
import cn.cslg.pas.exception.UnLoginException;
|
|
@@ -97,8 +99,8 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Records queryMessage(QueryTreeNodeDTO queryTreeNodeDTO) throws Exception {
|
|
|
- //返回数据
|
|
|
- Records records = new Records();
|
|
|
+ //返回数据
|
|
|
+ Records records = new Records();
|
|
|
|
|
|
List<ReTreeNodeVO> reTreeNodeVOS = new ArrayList<>();
|
|
|
Integer type = queryTreeNodeDTO.getType();
|
|
@@ -113,7 +115,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
|
|
|
List<TreeNodeVO> treeNodes = treeNodeMapper.getTreeNode(queryTreeNodeDTO);
|
|
|
|
|
|
//如果根据名称查询
|
|
|
- if (queryTreeNodeDTO.getName() != null) {
|
|
|
+ if (queryTreeNodeDTO.getName() != null&&!queryTreeNodeDTO.getName().trim().equals("")) {
|
|
|
List<Integer> ids = new ArrayList<>();
|
|
|
|
|
|
//当根据名称查出了节点
|
|
@@ -200,8 +202,14 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
|
|
|
treeNodeDTO.setName(treeNodeDTO.getName().trim());
|
|
|
//根据名称查询是否重复
|
|
|
String name = treeNodeDTO.getName();
|
|
|
+ Integer parentId = treeNodeDTO.getParentId();
|
|
|
+ Integer type = treeNodeDTO.getType();
|
|
|
+ Integer typeId = treeNodeDTO.getTypeId();
|
|
|
LambdaQueryWrapper<TreeNode> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(TreeNode::getName, name);
|
|
|
+ queryWrapper.eq(TreeNode::getParentId, parentId);
|
|
|
+ queryWrapper.eq(TreeNode::getType, type);
|
|
|
+ queryWrapper.eq(TreeNode::getTypeId, typeId);
|
|
|
List<TreeNode> treeNodes = this.list(queryWrapper);
|
|
|
if (treeNodes != null && treeNodes.size() != 0) {
|
|
|
throw new XiaoShiException("名称不能重复!");
|
|
@@ -216,7 +224,6 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
|
|
|
//赋值
|
|
|
TreeNode treeNode = new TreeNode();
|
|
|
BeanUtils.copyProperties(treeNodeDTO, treeNode);
|
|
|
- Integer parentId = treeNodeDTO.getParentId();
|
|
|
//若父id为0,则代表这是顶层id
|
|
|
if (parentId.equals(0)) {
|
|
|
treeNode.setPath("");
|
|
@@ -569,16 +576,16 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
|
|
|
});
|
|
|
|
|
|
//根据父节点id查询
|
|
|
- List<TreeNode> parentNodes =new ArrayList<>();
|
|
|
- if(parentIds.size()!=0) {
|
|
|
+ List<TreeNode> parentNodes = new ArrayList<>();
|
|
|
+ if (parentIds.size() != 0) {
|
|
|
LambdaQueryWrapper<TreeNode> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.in(TreeNode::getId,parentIds);
|
|
|
- parentNodes=this.list(queryWrapper);
|
|
|
+ queryWrapper.in(TreeNode::getId, parentIds);
|
|
|
+ parentNodes = this.list(queryWrapper);
|
|
|
}
|
|
|
|
|
|
//装载路径
|
|
|
- for(TreeNodeVO treeNode :treeNodeVOS){
|
|
|
- List<String> pathNames=new ArrayList<>();
|
|
|
+ for (TreeNodeVO treeNode : treeNodeVOS) {
|
|
|
+ List<String> pathNames = new ArrayList<>();
|
|
|
if (treeNode.getPath() != null && !treeNode.getPath().trim().equals("")) {
|
|
|
List<Integer> paths = Arrays.stream(treeNode.getPath().split("/")).map(s -> {
|
|
|
if (!s.equals("")) {
|
|
@@ -601,7 +608,59 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询树
|
|
|
+ *
|
|
|
+ * @param queryTreeNodeDTO
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public Records queryAllPath(QueryAllTreePathDTO queryTreeNodeDTO) throws Exception {
|
|
|
+ //校验
|
|
|
+ if (queryTreeNodeDTO == null || queryTreeNodeDTO.getType() == null || queryTreeNodeDTO.getTypeId() == null) {
|
|
|
+ throw new XiaoShiException("参数错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ //返回数据
|
|
|
+ Records records = new Records();
|
|
|
|
|
|
+ LambdaQueryWrapper<TreeNode> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(TreeNode::getType, queryTreeNodeDTO.getType())
|
|
|
+ .eq(TreeNode::getTypeId, queryTreeNodeDTO.getTypeId()).orderByDesc(TreeNode::getLevel);
|
|
|
+ List<TreeNode> treeNodes = this.list(queryWrapper);
|
|
|
+ List<TreePathVO> treeNodeVOS = new ArrayList<>();
|
|
|
|
|
|
+ //装载路径
|
|
|
+ for (TreeNode treeNode : treeNodes) {
|
|
|
+ TreePathVO treePathVO=new TreePathVO();
|
|
|
+ treePathVO.setId(treeNode.getId());
|
|
|
+ treePathVO.setPath(treeNode.getPath()+treeNode.getId()+"/");
|
|
|
+ List<String> pathNames = new ArrayList<>();
|
|
|
+ if (treeNode.getPath() != null && !treeNode.getPath().trim().equals("")) {
|
|
|
+ List<Integer> paths = Arrays.stream(treeNode.getPath().split("/")).map(s -> {
|
|
|
+ if (!s.equals("")) {
|
|
|
+ return Integer.parseInt(s.trim());
|
|
|
+ } else return null;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ for (Integer tem : paths) {
|
|
|
+ TreeNode treeNode1 = treeNodes.stream().filter(item -> item.getId().equals(tem)).findFirst().orElse(null);
|
|
|
+ if (treeNode1 != null) {
|
|
|
+ pathNames.add(treeNode1.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (pathNames.size() != 0) {
|
|
|
+ treePathVO.setPathName( StringUtils.join(pathNames, "/")+"/"+treeNode.getName()+"/");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ treePathVO.setPathName("/"+treeNode.getName()+"/");
|
|
|
+ }
|
|
|
+ treeNodeVOS.add(treePathVO);
|
|
|
+ }
|
|
|
+ records.setData(treeNodeVOS);
|
|
|
+ return records;
|
|
|
}
|
|
|
-}
|
|
|
+}
|