MenuController.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.usky.controller.sys;
  2. import com.usky.annotion.AutoLog;
  3. import com.usky.entity.sys.SysMenuDTO;
  4. import com.usky.entity.sys.vo.SysMenuVO;
  5. import com.usky.entity.sys.vo.SysUserVO;
  6. import com.usky.service.sys.menuService.MenuService;
  7. import com.usky.utils.AuthorizationUtils;
  8. import com.usky.utils.ListUtil;
  9. import com.usky.utils.Result;
  10. import com.usky.utils.ShiroUtils;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiImplicitParam;
  13. import io.swagger.annotations.ApiImplicitParams;
  14. import io.swagger.annotations.ApiOperation;
  15. import org.apache.shiro.authz.annotation.RequiresPermissions;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.util.List;
  20. /**
  21. * @author laowo
  22. * @version v1.0
  23. * @date 2021/8/25 15:23
  24. * @description TODO
  25. **/
  26. @RestController
  27. @Api(tags = "系统-菜单")
  28. @RequestMapping("sys/menu")
  29. public class MenuController {
  30. private String prefix = "sys/menu";
  31. @ApiOperation(value = "菜单-页面鉴权")
  32. @RequiresPermissions("system:menu:view")
  33. @GetMapping()
  34. public String menu() {
  35. return prefix + "/menu";
  36. }
  37. @Autowired
  38. private MenuService menuService;
  39. @GetMapping("indexMenu")
  40. @ApiOperation(value = "首页菜单加载")
  41. public Result<List<SysMenuVO>> queryMenu() {
  42. SysUserVO sysUserVo = ShiroUtils.getSysUserVo();
  43. List<SysMenuVO> data = menuService.queryMenuList(sysUserVo);
  44. return Result.OK(data);
  45. }
  46. @ApiOperation(value = "菜单管理-列表")
  47. @RequiresPermissions("system:menu:list")
  48. @PostMapping("/list")
  49. @ResponseBody
  50. @ApiImplicitParams({
  51. @ApiImplicitParam(name = "menuName", value = "菜单名称", required = false, paramType = "query"),
  52. @ApiImplicitParam(name = "visible", value = "菜单状态(0显示 1隐藏)", required = false, paramType = "query"),
  53. })
  54. public Result<List<SysMenuVO>> list(@RequestParam(value = "menuName", required = false) String menuName,
  55. @RequestParam(value = "visible", required = false) String visible
  56. ) {
  57. Integer userId = ShiroUtils.getUserVOId();
  58. List<SysMenuVO> menuList = menuService.list(new SysMenuVO(), menuName, visible, userId);
  59. return Result.OK(menuList);
  60. }
  61. /**
  62. * 删除菜单
  63. */
  64. @AutoLog("菜单删除")
  65. @ApiOperation(value = "菜单管理-删除")
  66. @RequiresPermissions("system:menu:remove")
  67. @PostMapping("remove")
  68. @ResponseBody
  69. public Result<?> remove(@RequestParam("menuId") Integer menuId) {
  70. if (menuService.queryMenuById(menuId) > 0) {
  71. return Result.error("存在子菜单,不允许删除");
  72. }
  73. if (menuService.queryRoleMenuByMenuId(menuId) > 0) {
  74. return Result.error("菜单已分配,不允许删除");
  75. }
  76. AuthorizationUtils.clearAllCachedAuthorizationInfo();
  77. menuService.deleteMenuById(menuId);
  78. return Result.OK();
  79. }
  80. /**
  81. * 新增保存菜单
  82. */
  83. @AutoLog("新增菜单")
  84. @ApiOperation(value = "菜单管理-新增")
  85. @RequiresPermissions("system:menu:add")
  86. @PostMapping("/add")
  87. @ResponseBody
  88. public Result<?> addSave(@Validated SysMenuVO menu) {
  89. //查询同一父级菜单名称是否重复
  90. List<SysMenuDTO> sysMenuDTOS = menuService.queryMenuByName(menu.getMenuName(), menu.getParentId());
  91. if (ListUtil.isNotBlank(sysMenuDTOS)) {
  92. return Result.error("菜单名称重复!");
  93. }
  94. AuthorizationUtils.clearAllCachedAuthorizationInfo();
  95. menuService.add(menu);
  96. return Result.OK();
  97. }
  98. /**
  99. * 菜单修改
  100. */
  101. @AutoLog("菜单修改")
  102. @ApiOperation(value = "菜单管理-修改")
  103. @RequiresPermissions("system:menu:edit")
  104. @PostMapping("/edit")
  105. @ResponseBody
  106. public Result<?> editSave(@Validated SysMenuVO menu) {
  107. List<SysMenuDTO> sysMenuDTOS = menuService.queryMenuByName(menu.getMenuName(), menu.getParentId());
  108. if (ListUtil.isNotBlank(sysMenuDTOS)) {
  109. return Result.error("菜单名称重复!");
  110. }
  111. AuthorizationUtils.clearAllCachedAuthorizationInfo();
  112. menuService.updateMenu(menu);
  113. return Result.OK();
  114. }
  115. }