SysMenuController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package com.ruoyi.web.controller.system;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.apache.shiro.authz.annotation.RequiresPermissions;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.ModelMap;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13. import com.ruoyi.common.annotation.Log;
  14. import com.ruoyi.common.base.AjaxResult;
  15. import com.ruoyi.common.enums.BusinessType;
  16. import com.ruoyi.framework.util.ShiroUtils;
  17. import com.ruoyi.system.domain.SysMenu;
  18. import com.ruoyi.system.domain.SysRole;
  19. import com.ruoyi.system.service.ISysMenuService;
  20. import com.ruoyi.framework.web.base.BaseController;
  21. /**
  22. * 菜单信息
  23. *
  24. * @author ruoyi
  25. */
  26. @Controller
  27. @RequestMapping("/system/menu")
  28. public class SysMenuController extends BaseController
  29. {
  30. private String prefix = "system/menu";
  31. @Autowired
  32. private ISysMenuService menuService;
  33. @RequiresPermissions("system:menu:view")
  34. @GetMapping()
  35. public String menu()
  36. {
  37. return prefix + "/menu";
  38. }
  39. @RequiresPermissions("system:menu:list")
  40. @GetMapping("/list")
  41. @ResponseBody
  42. public List<SysMenu> list(SysMenu menu)
  43. {
  44. List<SysMenu> menuList = menuService.selectMenuList(menu);
  45. return menuList;
  46. }
  47. /**
  48. * 删除菜单
  49. */
  50. @Log(title = "菜单管理", businessType = BusinessType.DELETE)
  51. @RequiresPermissions("system:menu:remove")
  52. @PostMapping("/remove/{menuId}")
  53. @ResponseBody
  54. public AjaxResult remove(@PathVariable("menuId") Long menuId)
  55. {
  56. if (menuService.selectCountMenuByParentId(menuId) > 0)
  57. {
  58. return error(1, "存在子菜单,不允许删除");
  59. }
  60. if (menuService.selectCountRoleMenuByMenuId(menuId) > 0)
  61. {
  62. return error(1, "菜单已分配,不允许删除");
  63. }
  64. ShiroUtils.clearCachedAuthorizationInfo();
  65. return toAjax(menuService.deleteMenuById(menuId));
  66. }
  67. /**
  68. * 新增
  69. */
  70. @GetMapping("/add/{parentId}")
  71. public String add(@PathVariable("parentId") Long parentId, ModelMap mmap)
  72. {
  73. SysMenu menu = null;
  74. if (0L != parentId)
  75. {
  76. menu = menuService.selectMenuById(parentId);
  77. }
  78. else
  79. {
  80. menu = new SysMenu();
  81. menu.setMenuId(0L);
  82. menu.setMenuName("主目录");
  83. }
  84. mmap.put("menu", menu);
  85. return prefix + "/add";
  86. }
  87. /**
  88. * 新增保存菜单
  89. */
  90. @Log(title = "菜单管理", businessType = BusinessType.INSERT)
  91. @RequiresPermissions("system:menu:add")
  92. @PostMapping("/add")
  93. @ResponseBody
  94. public AjaxResult addSave(SysMenu menu)
  95. {
  96. menu.setCreateBy(ShiroUtils.getLoginName());
  97. ShiroUtils.clearCachedAuthorizationInfo();
  98. return toAjax(menuService.insertMenu(menu));
  99. }
  100. /**
  101. * 修改菜单
  102. */
  103. @GetMapping("/edit/{menuId}")
  104. public String edit(@PathVariable("menuId") Long menuId, ModelMap mmap)
  105. {
  106. mmap.put("menu", menuService.selectMenuById(menuId));
  107. return prefix + "/edit";
  108. }
  109. /**
  110. * 修改保存菜单
  111. */
  112. @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
  113. @RequiresPermissions("system:menu:edit")
  114. @PostMapping("/edit")
  115. @ResponseBody
  116. public AjaxResult editSave(SysMenu menu)
  117. {
  118. menu.setUpdateBy(ShiroUtils.getLoginName());
  119. ShiroUtils.clearCachedAuthorizationInfo();
  120. return toAjax(menuService.updateMenu(menu));
  121. }
  122. /**
  123. * 选择菜单图标
  124. */
  125. @GetMapping("/icon")
  126. public String icon()
  127. {
  128. return prefix + "/icon";
  129. }
  130. /**
  131. * 校验菜单名称
  132. */
  133. @PostMapping("/checkMenuNameUnique")
  134. @ResponseBody
  135. public String checkMenuNameUnique(SysMenu menu)
  136. {
  137. return menuService.checkMenuNameUnique(menu);
  138. }
  139. /**
  140. * 加载角色菜单列表树
  141. */
  142. @GetMapping("/roleMenuTreeData")
  143. @ResponseBody
  144. public List<Map<String, Object>> roleMenuTreeData(SysRole role)
  145. {
  146. List<Map<String, Object>> tree = menuService.roleMenuTreeData(role);
  147. return tree;
  148. }
  149. /**
  150. * 加载所有菜单列表树
  151. */
  152. @GetMapping("/menuTreeData")
  153. @ResponseBody
  154. public List<Map<String, Object>> menuTreeData(SysRole role)
  155. {
  156. List<Map<String, Object>> tree = menuService.menuTreeData();
  157. return tree;
  158. }
  159. /**
  160. * 选择菜单树
  161. */
  162. @GetMapping("/selectMenuTree/{menuId}")
  163. public String selectMenuTree(@PathVariable("menuId") Long menuId, ModelMap mmap)
  164. {
  165. mmap.put("menu", menuService.selectMenuById(menuId));
  166. return prefix + "/tree";
  167. }
  168. }