feat(menu):重构菜单路由接口支持多数据源
This commit is contained in:
@@ -37,26 +37,36 @@ public class MenuController {
|
|||||||
|
|
||||||
@Operation(summary = "菜单列表")
|
@Operation(summary = "菜单列表")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@Log( value = "菜单列表",module = LogModuleEnum.MENU)
|
@Log(value = "菜单列表", module = LogModuleEnum.MENU)
|
||||||
public Result<List<MenuVO>> listMenus(MenuQuery queryParams) {
|
public Result<List<MenuVO>> getMenus(MenuQuery queryParams) {
|
||||||
List<MenuVO> menuList = menuService.listMenus(queryParams);
|
List<MenuVO> menuList = menuService.listMenus(queryParams);
|
||||||
return Result.success(menuList);
|
return Result.success(menuList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "菜单下拉列表")
|
@Operation(summary = "菜单下拉列表")
|
||||||
@GetMapping("/options")
|
@GetMapping("/options")
|
||||||
public Result<List<Option<Long>>> listMenuOptions(
|
public Result<List<Option<Long>>> getMenuOptions(
|
||||||
@Parameter(description = "是否只查询父级菜单")
|
@Parameter(description = "是否只查询父级菜单")
|
||||||
@RequestParam(required = false, defaultValue = "false") boolean onlyParent
|
@RequestParam(required = false, defaultValue = "false") boolean onlyParent
|
||||||
) {
|
) {
|
||||||
List<Option<Long>> menus = menuService.listMenuOptions(onlyParent);
|
List<Option<Long>> menus = menuService.listMenuOptions(onlyParent);
|
||||||
return Result.success(menus);
|
return Result.success(menus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "菜单路由列表")
|
@Operation(summary = "当前用户菜单路由列表")
|
||||||
@GetMapping("/routes")
|
@GetMapping("/routes")
|
||||||
public Result<List<RouteVO>> getCurrentUserRoutes() {
|
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);
|
return Result.success(routeList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,9 +40,16 @@ public interface MenuService extends IService<Menu> {
|
|||||||
boolean saveMenu(MenuForm menuForm);
|
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.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
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.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -139,16 +140,16 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取菜单路由列表
|
* 获取当前用户的菜单路由列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<RouteVO> getCurrentUserRoutes() {
|
public List<RouteVO> listCurrentUserRoutes() {
|
||||||
|
|
||||||
Set<String> roleCodes = SecurityUtils.getRoles();
|
Set<String> roleCodes = SecurityUtils.getRoles();
|
||||||
|
|
||||||
if (CollectionUtil.isEmpty(roleCodes)) {
|
if (CollectionUtil.isEmpty(roleCodes)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Menu> menuList;
|
List<Menu> menuList;
|
||||||
if (SecurityUtils.isRoot()) {
|
if (SecurityUtils.isRoot()) {
|
||||||
// 超级管理员获取所有菜单
|
// 超级管理员获取所有菜单
|
||||||
@@ -162,6 +163,21 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|||||||
return buildRoutes(SystemConstants.ROOT_NODE_ID, menuList);
|
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