MenuController.java 4.8 KB

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