SysMenuController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.yanfan.web.controller.system;
  2. import com.yanfan.common.annotation.Log;
  3. import com.yanfan.common.constant.UserConstants;
  4. import com.yanfan.common.core.controller.BaseController;
  5. import com.yanfan.common.core.domain.AjaxResult;
  6. import com.yanfan.common.core.domain.entity.SysMenu;
  7. import com.yanfan.common.core.domain.entity.vo.SysMenuVo;
  8. import com.yanfan.common.enums.BusinessType;
  9. import com.yanfan.common.utils.MessageUtils;
  10. import com.yanfan.common.utils.StringUtils;
  11. import com.yanfan.system.service.ISysMenuService;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.security.access.prepost.PreAuthorize;
  16. import org.springframework.validation.annotation.Validated;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.util.List;
  19. /**
  20. * 菜单信息
  21. *
  22. * @author ruoyi
  23. */
  24. @Api(tags = "菜单管理")
  25. @RestController
  26. @RequestMapping("/system/menu")
  27. public class SysMenuController extends BaseController {
  28. @Autowired
  29. private ISysMenuService menuService;
  30. /**
  31. * 获取菜单列表
  32. */
  33. @ApiOperation("获取菜单列表")
  34. //@PreAuthorize("@ss.hasPermi('system:menu:list')")
  35. @GetMapping("/list")
  36. public AjaxResult list(SysMenu menu) {
  37. List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
  38. return success(menus);
  39. }
  40. /**
  41. * 获取菜单列表
  42. */
  43. @GetMapping("/listmenu")
  44. public AjaxResult listmenu() {
  45. List<SysMenuVo> sysMenuVos = menuService.selectSysMenuVo();
  46. return success(sysMenuVos);
  47. }
  48. /**
  49. * 根据菜单编号获取详细信息
  50. */
  51. @ApiOperation("根据菜单编号获取详细信息")
  52. //@PreAuthorize("@ss.hasPermi('system:menu:query')")
  53. @GetMapping(value = "/{menuId}")
  54. public AjaxResult getInfo(@PathVariable Long menuId) {
  55. return success(menuService.selectMenuById(menuId));
  56. }
  57. /**
  58. * 获取菜单下拉树列表
  59. */
  60. @ApiOperation("获取菜单下拉树列表")
  61. @GetMapping("/treeselect")
  62. public AjaxResult treeselect(SysMenu menu) {
  63. List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
  64. return success(menuService.buildMenuTreeSelect(menus));
  65. }
  66. /**
  67. * 加载对应角色菜单列表树
  68. */
  69. @ApiOperation("加载对应角色菜单列表树")
  70. @GetMapping(value = "/roleMenuTreeselect")
  71. public AjaxResult roleMenuTreeselect(@RequestParam Long roleId, @RequestParam Long deptId) {
  72. List<SysMenu> menus = menuService.deptRoleMenuTreeselect(deptId, roleId);
  73. // List<SysMenu> menus = menuService.selectMenuList(getUserId(), request.getHeader(LANGUAGE));
  74. AjaxResult ajax = AjaxResult.success();
  75. ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
  76. ajax.put("menus", menuService.buildMenuTreeSelect(menus));
  77. return ajax;
  78. }
  79. /**
  80. * 新增菜单
  81. */
  82. @ApiOperation("新增菜单")
  83. //@PreAuthorize("@ss.hasPermi('system:menu:add')")
  84. @Log(title = "菜单管理", businessType = BusinessType.INSERT)
  85. @PostMapping
  86. public AjaxResult add(@Validated @RequestBody SysMenu menu) {
  87. if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
  88. return error(StringUtils.format(MessageUtils.message("menu.add.failed.name.exists"), menu.getMenuName()));
  89. } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
  90. return error(StringUtils.format(MessageUtils.message("menu.add.failed.path.not.valid"), menu.getMenuName()));
  91. }
  92. menu.setCreateBy(getUsername());
  93. return toAjax(menuService.insertMenu(menu));
  94. }
  95. /**
  96. * 修改菜单
  97. */
  98. @ApiOperation("修改菜单")
  99. //@PreAuthorize("@ss.hasPermi('system:menu:edit')")
  100. @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
  101. @PutMapping
  102. public AjaxResult edit(@Validated @RequestBody SysMenu menu) {
  103. if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
  104. return error(StringUtils.format(MessageUtils.message("menu.update.failed.name.exists"), menu.getMenuName()));
  105. } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
  106. return error(StringUtils.format(MessageUtils.message("menu.update.failed.path.not.valid"), menu.getMenuName()));
  107. } else if (menu.getMenuId().equals(menu.getParentId())) {
  108. return error(StringUtils.format(MessageUtils.message("menu.update.failed.parent.not.valid"), menu.getMenuName()));
  109. }
  110. menu.setUpdateBy(getUsername());
  111. return toAjax(menuService.updateMenu(menu));
  112. }
  113. /**
  114. * 删除菜单
  115. */
  116. @ApiOperation("删除菜单")
  117. //@PreAuthorize("@ss.hasPermi('system:menu:remove')")
  118. @Log(title = "菜单管理", businessType = BusinessType.DELETE)
  119. @DeleteMapping("/{menuId}")
  120. public AjaxResult remove(@PathVariable("menuId") Long menuId) {
  121. if (menuService.hasChildByMenuId(menuId)) {
  122. return warn(MessageUtils.message("menu.delete.failed.child.exists"));
  123. }
  124. if (menuService.checkMenuExistRole(menuId)) {
  125. return warn(MessageUtils.message("menu.delete.failed.role.exists"));
  126. }
  127. return toAjax(menuService.deleteMenuById(menuId));
  128. }
  129. /**
  130. * 加载对应部门菜单列表树
  131. */
  132. @ApiOperation("加载对应部门菜单列表树")
  133. @GetMapping(value = "/deptMenuTreeselect/{deptId}")
  134. public AjaxResult deptMenuTreeselect(@PathVariable("deptId") Long deptId) {
  135. List<SysMenu> menus = menuService.deptMenuTreeselect(deptId);
  136. return success(menuService.buildMenuTreeSelect(menus));
  137. }
  138. }