/** * BladeX Commercial License Agreement * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. *

* Use of this software is governed by the Commercial License Agreement * obtained after purchasing a license from BladeX. *

* 1. This software is for development use only under a valid license * from BladeX. *

* 2. Redistribution of this software's source code to any third party * without a commercial license is strictly prohibited. *

* 3. Licensees may copyright their own code but cannot use segments * from this software for such purposes. Copyright of this software * remains with BladeX. *

* Using this software signifies agreement to this License, and the software * must not be used for illegal purposes. *

* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is * not liable for any claims arising from secondary or illegal development. *

* Author: Chill Zhuang (bladejava@qq.com) */ package com.nov.KgLowDurable.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.nov.KgLowDurable.common.TreeNode; import com.nov.KgLowDurable.pojo.entity.Kv; import com.nov.KgLowDurable.pojo.entity.Menu; import com.nov.KgLowDurable.pojo.vo.MenuVO; import com.nov.KgLowDurable.service.IMenuService; import com.nov.KgLowDurable.util.Condition; import com.nov.KgLowDurable.util.Result; import com.nov.KgLowDurable.wrapper.MenuWrapper; import io.swagger.annotations.*; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * 控制器 * * @author Chill */ @RestController @AllArgsConstructor @RequestMapping( "/menu") @Api(value = "菜单", description = "菜单") public class MenuController { private final IMenuService menuService; //private final ITopMenuService topMenuService; /** * 详情 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入menu") public Result

detail(@RequestParam Long id) { return Result.OK(menuService.getById(id)); } /** * 列表 */ @GetMapping("/list") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "菜单编号"), @ApiImplicitParam(name = "name", value = "菜单名称") }) @ApiOperation(value = "列表", notes = "传入menu") public Result> list(@ApiParam(hidden = true) @RequestParam Map menu) { List list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().orderByAsc(Menu::getSort)); return Result.OK(MenuWrapper.build().listNodeVO(list)); } /** * 懒加载列表 */ @GetMapping("/lazy-list") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "菜单编号"), @ApiImplicitParam(name = "name", value = "菜单名称") }) @ApiOperation(value = "懒加载列表", notes = "传入menu") public Result> lazyList(Long parentId, @ApiParam(hidden = true) @RequestParam Map menu) { List list = menuService.lazyList(parentId, menu); return Result.OK(MenuWrapper.build().listNodeLazyVO(list)); } /** * 菜单列表 */ @GetMapping("/menu-list") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "菜单编号"), @ApiImplicitParam(name = "name", value = "菜单名称") }) @ApiOperation(value = "菜单列表", notes = "传入menu") public Result> menuList(@ApiParam(hidden = true) @RequestParam Map menu) { List list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().eq(Menu::getCategory, 1).orderByAsc(Menu::getSort)); return Result.OK(MenuWrapper.build().listNodeVO(list)); } /** * 懒加载菜单列表 */ @GetMapping("/lazy-menu-list") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "菜单编号"), @ApiImplicitParam(name = "name", value = "菜单名称") }) @ApiOperation(value = "懒加载菜单列表", notes = "传入menu") public Result> lazyMenuList(Long parentId, @ApiParam(hidden = true) @RequestParam Map menu) { List list = menuService.lazyMenuList(parentId, menu); return Result.OK(MenuWrapper.build().listNodeLazyVO(list)); } /** * 新增或修改 */ @PostMapping("/submit") @ApiOperation(value = "新增或修改", notes = "传入menu") public Result submit( @RequestBody Menu menu) { if (menuService.submit(menu)) { // 返回懒加载树更新节点所需字段 Kv kv = Kv.create().set("id", String.valueOf(menu.getId())); return Result.OK(kv); } return Result.error("操作失败"); } /** * 删除 */ @PostMapping("/remove") @ApiOperation(value = "删除", notes = "传入ids") public Result remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return Result.OK(menuService.removeMenu(ids)); } /** * 前端菜单数据 */ // @GetMapping("/routes") // @ApiOperationSupport(order = 8) // @Operation(summary = "前端菜单数据", description = "前端菜单数据") // public R> routes(BladeUser user, Long topMenuId) { // List list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId); // return R.data(list); // } /** * 前端菜单数据 */ // @GetMapping("/routes-ext") // @ApiOperationSupport(order = 9) // @Operation(summary = "前端菜单数据", description = "前端菜单数据") // public R> routesExt(BladeUser user, Long topMenuId) { // List list = menuService.routesExt(user.getRoleId(), topMenuId); // return R.data(list); // } /** * 前端按钮数据 */ // @GetMapping("/buttons") // @ApiOperationSupport(order = 10) // @Operation(summary = "前端按钮数据", description = "前端按钮数据") // public R> buttons(BladeUser user) { // List list = menuService.buttons(user.getRoleId()); // return R.data(list); // } /** * 获取菜单树形结构 */ @GetMapping("/tree") @ApiOperation(value = "树形结构", notes = "树形结构") public Result> tree() { List tree = menuService.tree(); return Result.OK(tree); } /** * 获取权限分配树形结构 */ // @GetMapping("/grant-tree") // @ApiOperationSupport(order = 12) // @Operation(summary = "权限分配树形结构", description = "权限分配树形结构") // public R grantTree(BladeUser user) { // GrantTreeVO vo = new GrantTreeVO(); // vo.setMenu(menuService.grantTree(user)); // vo.setDataScope(menuService.grantDataScopeTree(user)); // vo.setApiScope(menuService.grantApiScopeTree(user)); // return R.data(vo); // } /** * 获取权限分配树形结构 */ // @GetMapping("/role-tree-keys") // @ApiOperationSupport(order = 13) // @Operation(summary = "角色所分配的树", description = "角色所分配的树") // public R roleTreeKeys(String roleIds) { // CheckedTreeVO vo = new CheckedTreeVO(); // vo.setMenu(menuService.roleTreeKeys(roleIds)); // vo.setDataScope(menuService.dataScopeTreeKeys(roleIds)); // vo.setApiScope(menuService.apiScopeTreeKeys(roleIds)); // return R.data(vo); // } /** * 获取顶部菜单树形结构 */ // @GetMapping("/grant-top-tree") // @ApiOperationSupport(order = 14) // @Operation(summary = "顶部菜单树形结构", description = "顶部菜单树形结构") // public R grantTopTree(BladeUser user) { // GrantTreeVO vo = new GrantTreeVO(); // vo.setMenu(menuService.grantTopTree(user)); // return R.data(vo); // } /** * 获取顶部菜单树形结构 */ // @GetMapping("/top-tree-keys") // @ApiOperationSupport(order = 15) // @Operation(summary = "顶部菜单所分配的树", description = "顶部菜单所分配的树") // public R topTreeKeys(String topMenuIds) { // CheckedTreeVO vo = new CheckedTreeVO(); // vo.setMenu(menuService.topTreeKeys(topMenuIds)); // return R.data(vo); // } /** * 顶部菜单数据 */ // @GetMapping("/top-menu") // @ApiOperationSupport(order = 16) // @Operation(summary = "顶部菜单数据", description = "顶部菜单数据") // public R> topMenu(BladeUser user) { // if (Func.isEmpty(user)) { // return null; // } // List list = topMenuService.list(Wrappers.query().lambda().orderByAsc(TopMenu::getSort)); // return R.data(list); // } /** * 获取配置的角色权限 */ // @GetMapping("auth-routes") // @ApiOperationSupport(order = 17) // @Operation(summary = "菜单的角色权限") // public R> authRoutes(BladeUser user) { // if (Func.isEmpty(user)) { // return null; // } // return R.data(menuService.authRoutes(user)); // } }