|
|
@ -19,8 +19,6 @@ import com.hfkj.sysenum.SecMenuTypeEnum; |
|
|
|
import io.swagger.annotations.Api; |
|
|
|
import io.swagger.annotations.Api; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.http.HttpResponse; |
|
|
|
|
|
|
|
import org.apache.http.util.EntityUtils; |
|
|
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.stereotype.Controller; |
|
|
|
import org.springframework.stereotype.Controller; |
|
|
@ -77,7 +75,6 @@ public class SecMenuController { |
|
|
|
if (parentMenu == null) { |
|
|
|
if (parentMenu == null) { |
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); |
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
secMenu.setMenuFullUrl(secMenu.getMenuFullUrl()+"/"+secMenu.getMenuUrl()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
secMenu.setMenuType(body.getMenuType()); |
|
|
|
secMenu.setMenuType(body.getMenuType()); |
|
|
@ -177,10 +174,39 @@ public class SecMenuController { |
|
|
|
try { |
|
|
|
try { |
|
|
|
|
|
|
|
|
|
|
|
// 查询角色菜单权限
|
|
|
|
// 查询角色菜单权限
|
|
|
|
List<SecRoleMenuRel> roleMenuList = secRoleMenuRelService.getRelListByRole(roleId); |
|
|
|
Map<Long, SecMenu> roleMenu = secMenuService.queryRoleMenu(roleId, SecMenuTypeEnum.type1).stream() |
|
|
|
|
|
|
|
.collect(Collectors.toMap(SecMenu::getId, Function.identity())); |
|
|
|
|
|
|
|
|
|
|
|
return ResponseMsgUtil.success(roleMenuList.stream().map(SecRoleMenuRel::getMenuId).collect(Collectors.toList()) |
|
|
|
// 系统菜单叶节点
|
|
|
|
.stream().map(Object::toString).collect(Collectors.toList())); |
|
|
|
List<String> menuLeafList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 角色菜单叶节点
|
|
|
|
|
|
|
|
List<String> roleLeafList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取全部菜单
|
|
|
|
|
|
|
|
List<SecMenu> menuList = secMenuService.getAllList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取最顶层菜单
|
|
|
|
|
|
|
|
List<SecMenu> topLevelMenuList = menuList.stream() |
|
|
|
|
|
|
|
.filter(o -> o.getMenuPSid() == null) |
|
|
|
|
|
|
|
.sorted(Comparator.comparing(SecMenu::getMenuSort)) |
|
|
|
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
// 递归获取系统菜单叶子节点
|
|
|
|
|
|
|
|
for (SecMenu topLevelMenu : topLevelMenuList) { |
|
|
|
|
|
|
|
if (topLevelMenu.getMenuType().equals(SecMenuTypeEnum.type1.getCode())) { |
|
|
|
|
|
|
|
recursionMenu(menuList, topLevelMenu.getId(), menuLeafList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 筛选角色菜单叶节点
|
|
|
|
|
|
|
|
for (String leaf : menuLeafList) { |
|
|
|
|
|
|
|
SecMenu menu = roleMenu.get(Long.parseLong(leaf)); |
|
|
|
|
|
|
|
if (menu != null) { |
|
|
|
|
|
|
|
roleLeafList.add(""+menu.getId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseMsgUtil.success(roleLeafList); |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("error!",e); |
|
|
|
log.error("error!",e); |
|
|
@ -221,11 +247,11 @@ public class SecMenuController { |
|
|
|
|
|
|
|
|
|
|
|
for (SecMenu topLevelMenu : topLevelMenuList) { |
|
|
|
for (SecMenu topLevelMenu : topLevelMenuList) { |
|
|
|
if (topLevelMenu.getMenuType().equals(SecMenuTypeEnum.type1.getCode())) { |
|
|
|
if (topLevelMenu.getMenuType().equals(SecMenuTypeEnum.type1.getCode())) { |
|
|
|
map = new HashMap<>(); |
|
|
|
map = new LinkedHashMap<>(); |
|
|
|
map.put("key", ""+topLevelMenu.getId()); |
|
|
|
map.put("key", ""+topLevelMenu.getId()); |
|
|
|
map.put("title", topLevelMenu.getMenuName()); |
|
|
|
map.put("title", topLevelMenu.getMenuName()); |
|
|
|
// 获取下级菜单
|
|
|
|
// 获取下级菜单
|
|
|
|
map.put("children", recursionMenu(menuList, topLevelMenu.getId())); |
|
|
|
map.put("children", recursionMenu(menuList, topLevelMenu.getId(), new ArrayList<>())); |
|
|
|
mapList.add(map); |
|
|
|
mapList.add(map); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -244,7 +270,7 @@ public class SecMenuController { |
|
|
|
* @param parentMenuId 父级菜单id |
|
|
|
* @param parentMenuId 父级菜单id |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<Map<String,Object>> recursionMenu(List<SecMenu> dataSource, Long parentMenuId) { |
|
|
|
public List<Map<String,Object>> recursionMenu(List<SecMenu> dataSource, Long parentMenuId, List<String> leaf) { |
|
|
|
List<Map<String,Object>> mapList = new ArrayList<>(); |
|
|
|
List<Map<String,Object>> mapList = new ArrayList<>(); |
|
|
|
Map<String,Object> map; |
|
|
|
Map<String,Object> map; |
|
|
|
|
|
|
|
|
|
|
@ -254,12 +280,13 @@ public class SecMenuController { |
|
|
|
.collect(Collectors.toList()); |
|
|
|
.collect(Collectors.toList()); |
|
|
|
for (SecMenu menu : collect) { |
|
|
|
for (SecMenu menu : collect) { |
|
|
|
if (menu.getMenuType().equals(SecMenuTypeEnum.type1.getCode())) { |
|
|
|
if (menu.getMenuType().equals(SecMenuTypeEnum.type1.getCode())) { |
|
|
|
map = new HashMap<>(); |
|
|
|
map = new LinkedHashMap<>(); |
|
|
|
map.put("key", ""+menu.getId()); |
|
|
|
map.put("key", ""+menu.getId()); |
|
|
|
map.put("title", menu.getMenuName()); |
|
|
|
map.put("title", menu.getMenuName()); |
|
|
|
// 获取下级菜单
|
|
|
|
// 获取下级菜单
|
|
|
|
List<Map<String, Object>> recursioned = recursionMenu(dataSource, menu.getId()); |
|
|
|
List<Map<String, Object>> recursioned = recursionMenu(dataSource, menu.getId(), leaf); |
|
|
|
if (recursioned.isEmpty()) { |
|
|
|
if (recursioned.isEmpty()) { |
|
|
|
|
|
|
|
leaf.add(""+menu.getId()); |
|
|
|
map.put("isLeaf", true); |
|
|
|
map.put("isLeaf", true); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
map.put("children", recursioned); |
|
|
|
map.put("children", recursioned); |
|
|
@ -270,4 +297,5 @@ public class SecMenuController { |
|
|
|
return mapList; |
|
|
|
return mapList; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|