提交 e78f6837 编写于 作者: 有来技术

feat(MenuController.java): 添加菜单的treeSelect级联接口

上级 21dadfbe
......@@ -5,6 +5,7 @@ import com.youlai.admin.pojo.entity.SysMenu;
import com.youlai.admin.pojo.vo.MenuVO;
import com.youlai.admin.pojo.vo.RouteVO;
import com.youlai.admin.pojo.vo.SelectVO;
import com.youlai.admin.pojo.vo.TreeSelectVO;
import com.youlai.admin.service.ISysMenuService;
import com.youlai.admin.service.ISysPermissionService;
import com.youlai.common.result.Result;
......@@ -38,7 +39,7 @@ public class MenuController {
@ApiOperation(value = "菜单表格(Table)层级列表")
@ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "String")
@GetMapping("/table")
public Result getMenuTableList(String name) {
public Result getTableList(String name) {
List<MenuVO> menuList = menuService.listTable(name);
return Result.success(menuList);
}
......@@ -46,19 +47,26 @@ public class MenuController {
@ApiOperation(value = "菜单下拉(Select)层级列表")
@GetMapping("/select")
public Result getMenuSelectList() {
public Result getSelectList() {
List<SelectVO> menuList = menuService.listSelect();
return Result.success(menuList);
}
@ApiOperation(value = "菜单下拉(TreeSelect)层级列表")
@GetMapping("/tree-select")
public Result getTreeSelectList() {
List<TreeSelectVO> menuList = menuService.listTreeSelect();
return Result.success(menuList);
}
@ApiOperation(value = "菜单路由(Route)层级列表")
@GetMapping("/route")
public Result getMenuRouteList() {
log.info("加载菜单路由");
List<RouteVO> menuList = menuService.listRoute();
return Result.success(menuList);
public Result getRouteList() {
List<RouteVO> routeList = menuService.listRoute();
return Result.success(routeList);
}
@ApiOperation(value = "菜单详情")
@ApiImplicitParam(name = "id", value = "菜单id", required = true, paramType = "path", dataType = "Long")
@GetMapping("/{id}")
......
......@@ -6,11 +6,12 @@ import com.youlai.admin.pojo.entity.SysMenu;
import com.youlai.admin.pojo.vo.MenuVO;
import com.youlai.admin.pojo.vo.RouteVO;
import com.youlai.admin.pojo.vo.SelectVO;
import com.youlai.admin.pojo.vo.TreeSelectVO;
import java.util.List;
/**
* @author haoxr
* @author <a href="mailto:xianrui0365@163.com">xianrui</a>
* @date 2020-11-06
*/
public interface ISysMenuService extends IService<SysMenu> {
......@@ -39,4 +40,11 @@ public interface ISysMenuService extends IService<SysMenu> {
* @return
*/
List<RouteVO> listRoute();
/**
* 菜单下拉(TreeSelect)层级列表
*
* @return
*/
List<TreeSelectVO> listTreeSelect();
}
......@@ -11,13 +11,13 @@ import com.youlai.admin.pojo.vo.MenuVO;
import com.youlai.admin.pojo.vo.RouteVO;
import com.youlai.admin.mapper.SysMenuMapper;
import com.youlai.admin.pojo.vo.SelectVO;
import com.youlai.admin.pojo.vo.TreeSelectVO;
import com.youlai.admin.service.ISysMenuService;
import com.youlai.common.constant.GlobalConstants;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
......@@ -129,6 +129,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
}
/**
* 递归生成菜单路由层级列表
*
......@@ -160,4 +161,41 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
return list;
}
/**
* 菜单下拉(TreeSelect)层级列表
*
* @return
*/
@Override
public List<TreeSelectVO> listTreeSelect() {
List<SysMenu> menuList = this.list(new LambdaQueryWrapper<SysMenu>().orderByAsc(SysMenu::getSort));
List<TreeSelectVO> menuSelectList = recursionTreeSelectList(SystemConstants.ROOT_MENU_ID, menuList);
return menuSelectList;
}
/**
* 递归生成菜单下拉(TreeSelect)层级列表
*
* @param parentId 父级ID
* @param menuList 菜单列表
* @return
*/
private static List<TreeSelectVO> recursionTreeSelectList(Long parentId, List<SysMenu> menuList) {
List<TreeSelectVO> menuSelectList = new ArrayList<>();
Optional.ofNullable(menuList).orElse(new ArrayList<>())
.stream()
.filter(menu -> menu.getParentId().equals(parentId))
.forEach(menu -> {
TreeSelectVO treeSelectVO = new TreeSelectVO(menu.getId(), menu.getName());
List<TreeSelectVO> children = recursionTreeSelectList(menu.getId(), menuList);
if (CollectionUtil.isNotEmpty(children)) {
treeSelectVO.setChildren(children);
}
menuSelectList.add(treeSelectVO);
});
return menuSelectList;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册