feat(menu):重构菜单路由接口支持多数据源
This commit is contained in:
@@ -37,26 +37,36 @@ public class MenuController {
|
||||
|
||||
@Operation(summary = "菜单列表")
|
||||
@GetMapping
|
||||
@Log( value = "菜单列表",module = LogModuleEnum.MENU)
|
||||
public Result<List<MenuVO>> listMenus(MenuQuery queryParams) {
|
||||
@Log(value = "菜单列表", module = LogModuleEnum.MENU)
|
||||
public Result<List<MenuVO>> getMenus(MenuQuery queryParams) {
|
||||
List<MenuVO> menuList = menuService.listMenus(queryParams);
|
||||
return Result.success(menuList);
|
||||
}
|
||||
|
||||
@Operation(summary = "菜单下拉列表")
|
||||
@GetMapping("/options")
|
||||
public Result<List<Option<Long>>> listMenuOptions(
|
||||
@Parameter(description = "是否只查询父级菜单")
|
||||
@RequestParam(required = false, defaultValue = "false") boolean onlyParent
|
||||
public Result<List<Option<Long>>> getMenuOptions(
|
||||
@Parameter(description = "是否只查询父级菜单")
|
||||
@RequestParam(required = false, defaultValue = "false") boolean onlyParent
|
||||
) {
|
||||
List<Option<Long>> menus = menuService.listMenuOptions(onlyParent);
|
||||
return Result.success(menus);
|
||||
}
|
||||
|
||||
@Operation(summary = "菜单路由列表")
|
||||
@Operation(summary = "当前用户菜单路由列表")
|
||||
@GetMapping("/routes")
|
||||
public Result<List<RouteVO>> getCurrentUserRoutes() {
|
||||
List<RouteVO> routeList = menuService.getCurrentUserRoutes();
|
||||
List<RouteVO> routeList = menuService.listCurrentUserRoutes();
|
||||
return Result.success(routeList);
|
||||
}
|
||||
|
||||
@Operation(summary = "获取指定数据源的菜单路由列表")
|
||||
@GetMapping("/routes/{datasource}")
|
||||
public Result<List<RouteVO>> getCurrentUserRoutesByDatasource(
|
||||
@Parameter(description = "数据源名称,如:master(主库)、naiveui(NaiveUI数据库)、template(模板数据库)")
|
||||
@PathVariable String datasource
|
||||
) {
|
||||
List<RouteVO> routeList = menuService.listCurrentUserRoutes(datasource);
|
||||
return Result.success(routeList);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,9 +40,16 @@ public interface MenuService extends IService<Menu> {
|
||||
boolean saveMenu(MenuForm menuForm);
|
||||
|
||||
/**
|
||||
* 获取路由列表
|
||||
* 获取当前用户的菜单路由列表
|
||||
*/
|
||||
List<RouteVO> getCurrentUserRoutes();
|
||||
List<RouteVO> listCurrentUserRoutes();
|
||||
|
||||
/**
|
||||
* 获取当前用户的菜单路由列表(指定数据源)
|
||||
*
|
||||
* @param datasource 数据源名称,如:master(主库)、naiveui(NaiveUI数据库)、template(模板数据库)
|
||||
*/
|
||||
List<RouteVO> listCurrentUserRoutes(String datasource);
|
||||
|
||||
/**
|
||||
* 修改菜单显示状态
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -139,16 +140,16 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单路由列表
|
||||
* 获取当前用户的菜单路由列表
|
||||
*/
|
||||
@Override
|
||||
public List<RouteVO> getCurrentUserRoutes() {
|
||||
|
||||
public List<RouteVO> listCurrentUserRoutes() {
|
||||
Set<String> roleCodes = SecurityUtils.getRoles();
|
||||
|
||||
if (CollectionUtil.isEmpty(roleCodes)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<Menu> menuList;
|
||||
if (SecurityUtils.isRoot()) {
|
||||
// 超级管理员获取所有菜单
|
||||
@@ -162,6 +163,21 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
||||
return buildRoutes(SystemConstants.ROOT_NODE_ID, menuList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户的菜单路由列表(指定数据源)
|
||||
*
|
||||
* @param datasource 数据源名称
|
||||
* - master: 主库菜单数据
|
||||
* - naiveui: NaiveUI项目菜单数据
|
||||
* - template: 模板项目菜单数据
|
||||
*/
|
||||
@Override
|
||||
@DS("#datasource")
|
||||
public List<RouteVO> listCurrentUserRoutes(String datasource) {
|
||||
return listCurrentUserRoutes();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 递归生成菜单路由层级列表
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user