Bläddra i källkod

获取权限接口优化

zouxuan 4 år sedan
förälder
incheckning
9d58349eb1

+ 31 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysMenuServiceImpl.java

@@ -33,8 +33,7 @@ public class SysMenuServiceImpl extends BaseServiceImpl<Integer, SysMenu>  imple
 		return sysMenuDao.getMenusByRoleId(roleId);
 	}
 
-	@Override
-	public List<SysMenu> findByUser(MenuQueryInfo menuQueryInfo) {
+	public List<SysMenu> findByUser1(MenuQueryInfo menuQueryInfo) {
 		SysUser sysUser = sysUserDao.get(menuQueryInfo.getUserId());
 		List<SysMenu> sysMenus = null;
 		if(sysUser.getIsSuperAdmin()){
@@ -49,6 +48,36 @@ public class SysMenuServiceImpl extends BaseServiceImpl<Integer, SysMenu>  imple
 		return sysMenus;
 	}
 
+	public List<SysMenu> findByUser(MenuQueryInfo menuQueryInfo) {
+		SysUser sysUser = sysUserDao.get(menuQueryInfo.getUserId());
+		if(sysUser.getIsSuperAdmin()){
+			menuQueryInfo.setUserId(null);
+		}
+		List<SysMenu> sysMenus = sysMenuDao.findByParentId(menuQueryInfo.getParentId(),menuQueryInfo.getDelFlag(),menuQueryInfo.getUserId(),menuQueryInfo.getHid());
+		List<SysMenu> sysMenusAllList = sysMenuDao.findByParentId(null,menuQueryInfo.getDelFlag(),menuQueryInfo.getUserId(),menuQueryInfo.getHid());
+
+		for (SysMenu menu:sysMenus) {
+			menu = getTree1(menu,sysMenusAllList);
+		}
+		return sysMenus;
+	}
+
+	private SysMenu getTree1(SysMenu menu,List<SysMenu> sysMenusAllList){
+		//得到根节点对象
+		//获取子节点list
+		List<SysMenu> sysMenus = sysMenusAllList.stream().filter(e->e.getParentId().equals(menu.getId())).collect(Collectors.toList());
+		//如果存在子节点
+		if(sysMenus != null && sysMenus.size() > 0) {
+			//将子节点list放入父节点对象
+			menu.setSysMenus(sysMenus);
+			//遍历子节点....
+			for (SysMenu sysMenu : sysMenus) {
+				getTree1(sysMenu,sysMenusAllList);
+			}
+		}
+		return menu;
+	}
+
 	private SysMenu getTree(SysMenu menu, String delFlag,Integer userId,Integer hid){
 		//得到根节点对象
 		//获取子节点list