diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java index 9bf5e6a2..c493f971 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java @@ -2,6 +2,7 @@ package com.xm.core.ctrl; import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; +import com.mdp.core.utils.NumberUtil; import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.ResponseHelper; import com.mdp.mybatis.PageUtils; @@ -27,6 +28,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static com.mdp.core.utils.BaseUtils.map; + /** * url编制采用rest风格,如对XM.xm_menu 项目菜单表的操作有增删改查,对应的url分别为:
* 新增: xm/xmMenu/add
@@ -90,6 +93,12 @@ public class XmMenuController { } List> xmMenuList = xmMenuService.selectListMapByWhere(xmMenu); //列出XmMenu列表 PageUtils.responePage(m, xmMenuList); + if("1".equals(xmMenu.get("withParents")) && !"1".equals(xmMenu.get("isTop"))){ + List pidPathsList=xmMenuList.stream().map(i->(String)i.get("pidPaths")).collect(Collectors.toSet()).stream().collect(Collectors.toList()); + List> parentList=xmMenuService.selectListMapByWhere(map("pidPathsList",pidPathsList)); + xmMenuList.addAll(parentList); + m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); + } m.put("data",xmMenuList); Tips tips=new Tips("查询成功"); m.put("tips", tips); @@ -120,7 +129,14 @@ public class XmMenuController { xmMenu.put("compete",user.getUserid()); } List> xmMenuList = xmMenuService.selectListMapByWhereWithState(xmMenu); //列出XmMenu列表 - PageUtils.responePage(m, xmMenuList); + PageUtils.responePage(m, xmMenuList); + if("1".equals(xmMenu.get("withParents")) && !"1".equals(xmMenu.get("isTop"))){ + List pidPathsList=xmMenuList.stream().map(i->(String)i.get("pidPaths")).collect(Collectors.toSet()).stream().collect(Collectors.toList()); + List> parentList=xmMenuService.selectListMapByWhereWithState(map("pidPathsList",pidPathsList)); + xmMenuList.addAll(parentList); + m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); + } + m.put("data",xmMenuList); m.put("tips", tips); return m; @@ -137,6 +153,12 @@ public class XmMenuController { }else { List> xmMenuList = xmMenuService.selectListMapByWhereWithPlan(xmMenu); //列出XmMenu列表 PageUtils.responePage(m, xmMenuList); + if("1".equals(xmMenu.get("withParents")) && !"1".equals(xmMenu.get("isTop"))){ + List pidPathsList=xmMenuList.stream().map(i->(String)i.get("pidPaths")).collect(Collectors.toSet()).stream().collect(Collectors.toList()); + List> parentList=xmMenuService.selectListMapByWhereWithPlan(map("pidPathsList",pidPathsList)); + xmMenuList.addAll(parentList); + m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); + } m.put("data",xmMenuList); } diff --git a/xm-core/src/main/java/com/xm/core/service/XmMenuService.java b/xm-core/src/main/java/com/xm/core/service/XmMenuService.java index 1adc65f6..d9a68ae6 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmMenuService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmMenuService.java @@ -87,11 +87,10 @@ public class XmMenuService extends BaseService { for (XmMenu node : noExistsList) { if(hadCalcMap.containsKey(node.getPmenuId())){ String idPaths=hadCalcMap.get(node.getPmenuId()); - node.setPidPaths(idPaths+node.getMenuId()+","); + node.setPidPaths(idPaths); }else{ this.parentIdPathsCalcBeforeSave(node); String idPaths=node.getPidPaths(); - idPaths=idPaths.substring(0,idPaths.length()-node.getMenuId().length()-1); hadCalcMap.put(node.getPmenuId(),idPaths); } } @@ -102,7 +101,7 @@ public class XmMenuService extends BaseService { } if(hadCalcMap.containsKey(node.getPmenuId())){ String idPaths=hadCalcMap.get(node.getPmenuId()); - node.setPidPaths(idPaths+node.getMenuId()+","); + node.setPidPaths(idPaths); }else{ List pnodeList=this.getParentList(node,nodes); XmMenu topParent=pnodeList.get(pnodeList.size()-1); @@ -113,13 +112,13 @@ public class XmMenuService extends BaseService { for (int i = pnodeList.size() - 1; i >= 0; i--) { idPath=idPath+pnodeList.get(i).getMenuId()+","; } - node.setPidPaths(idPath+node.getMenuId()+","); + node.setPidPaths(idPath); } } for (XmMenu node : nodes) { String idPaths=node.getPidPaths(); String[] idpss=idPaths.split(","); - node.setLvl(idpss.length-1); + node.setLvl(idpss.length); } return nodes; } @@ -127,7 +126,7 @@ public class XmMenuService extends BaseService { public Tips parentIdPathsCalcBeforeSave(XmMenu currNode) { Tips tips = new Tips("成功"); if (!StringUtils.hasText(currNode.getPmenuId()) || "0".equals(currNode.getPmenuId())) { - currNode.setPidPaths("0," + currNode.getMenuId() + ","); + currNode.setPidPaths("0,"); return tips; } else { List parentList=this.getParentList(currNode); @@ -135,11 +134,11 @@ public class XmMenuService extends BaseService { for (int i = parentList.size() - 1; i >= 0; i--) { idPath=idPath+parentList.get(i).getMenuId()+","; } - currNode.setPidPaths(idPath+currNode.getMenuId()+","); + currNode.setPidPaths(idPath); String idPaths=currNode.getPidPaths(); String[] idpss=idPaths.split(","); - currNode.setLvl(idpss.length-1); + currNode.setLvl(idpss.length); } return tips; } diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java index 29a4f4fe..b3b08600 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java @@ -251,11 +251,10 @@ public class XmProjectPhaseService extends BaseService { for (XmProjectPhase node : noExistsList) { if(hadCalcMap.containsKey(node.getParentPhaseId())){ String idPaths=hadCalcMap.get(node.getParentPhaseId()); - node.setPidPaths(idPaths+node.getId()+","); + node.setPidPaths(idPaths); }else{ this.parentIdPathsCalcBeforeSave(node); String idPaths=node.getPidPaths(); - idPaths=idPaths.substring(0,idPaths.length()-node.getId().length()-1); hadCalcMap.put(node.getParentPhaseId(),idPaths); } } @@ -266,7 +265,7 @@ public class XmProjectPhaseService extends BaseService { } if(hadCalcMap.containsKey(node.getParentPhaseId())){ String idPaths=hadCalcMap.get(node.getParentPhaseId()); - node.setPidPaths(idPaths+node.getId()+","); + node.setPidPaths(idPaths); }else{ List pnodeList=this.getParentList(node,nodes); XmProjectPhase topParent=pnodeList.get(pnodeList.size()-1); @@ -277,13 +276,13 @@ public class XmProjectPhaseService extends BaseService { for (int i = pnodeList.size() - 1; i >= 0; i--) { idPath=idPath+pnodeList.get(i).getId()+","; } - node.setPidPaths(idPath+node.getId()+","); + node.setPidPaths(idPath); } } for (XmProjectPhase node : nodes) { String idPaths=node.getPidPaths(); String[] idpss=idPaths.split(","); - node.setLvl(idpss.length-1); + node.setLvl(idpss.length); } return nodes; } @@ -298,7 +297,7 @@ public class XmProjectPhaseService extends BaseService { public Tips parentIdPathsCalcBeforeSave(XmProjectPhase currNode) { Tips tips = new Tips("成功"); if (!StringUtils.hasText(currNode.getParentPhaseId()) || "0".equals(currNode.getParentPhaseId())) { - currNode.setPidPaths("0," + currNode.getId() + ","); + currNode.setPidPaths("0,"); return tips; } else { List parentList=this.getParentList(currNode); @@ -306,11 +305,11 @@ public class XmProjectPhaseService extends BaseService { for (int i = parentList.size() - 1; i >= 0; i--) { idPath=idPath+parentList.get(i).getId()+","; } - currNode.setPidPaths(idPath+currNode.getId()+","); + currNode.setPidPaths(idPath); String idPaths=currNode.getPidPaths(); String[] idpss=idPaths.split(","); - currNode.setLvl(idpss.length-1); + currNode.setLvl(idpss.length); } return tips; } diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java index d4268385..8e20074c 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java @@ -447,11 +447,10 @@ public class XmTaskService extends BaseService { for (XmTask node : noExistsList) { if(hadCalcMap.containsKey(node.getParentTaskid())){ String idPaths=hadCalcMap.get(node.getParentTaskid()); - node.setPidPaths(idPaths+node.getId()+","); + node.setPidPaths(idPaths); }else{ this.parentIdPathsCalcBeforeSave(node); String idPaths=node.getPidPaths(); - idPaths=idPaths.substring(0,idPaths.length()-node.getId().length()-1); hadCalcMap.put(node.getParentTaskid(),idPaths); } } @@ -462,7 +461,7 @@ public class XmTaskService extends BaseService { } if(hadCalcMap.containsKey(node.getParentTaskid())){ String idPaths=hadCalcMap.get(node.getParentTaskid()); - node.setPidPaths(idPaths+node.getId()+","); + node.setPidPaths(idPaths); }else{ List pnodeList=this.getParentList(node,nodes); XmTask topParent=pnodeList.get(pnodeList.size()-1); @@ -473,13 +472,13 @@ public class XmTaskService extends BaseService { for (int i = pnodeList.size() - 1; i >= 0; i--) { idPath=idPath+pnodeList.get(i).getId()+","; } - node.setPidPaths(idPath+node.getId()+","); + node.setPidPaths(idPath); } } for (XmTask node : nodes) { String idPaths=node.getPidPaths(); String[] idpss=idPaths.split(","); - node.setLvl(idpss.length-1); + node.setLvl(idpss.length); } return nodes; } @@ -494,7 +493,7 @@ public class XmTaskService extends BaseService { public Tips parentIdPathsCalcBeforeSave(XmTask currNode) { Tips tips = new Tips("成功"); if (!StringUtils.hasText(currNode.getParentTaskid()) || "0".equals(currNode.getParentTaskid())) { - currNode.setPidPaths("0," + currNode.getId() + ","); + currNode.setPidPaths("0,"); return tips; } else { List parentList=this.getParentList(currNode); @@ -502,11 +501,11 @@ public class XmTaskService extends BaseService { for (int i = parentList.size() - 1; i >= 0; i--) { idPath=idPath+parentList.get(i).getId()+","; } - currNode.setPidPaths(idPath+currNode.getId()+","); + currNode.setPidPaths(idPath); String idPaths=currNode.getPidPaths(); String[] idpss=idPaths.split(","); - currNode.setLvl(idpss.length-1); + currNode.setLvl(idpss.length); } return tips; } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml index 64105c21..b816c70a 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml @@ -11,6 +11,11 @@ ( #{item}) + and + + #{item} like concat(res.pid_paths,'%') + + and find_in_set(#{item},res.tag_ids)