7444aa4dc75be9dc36cbb7c012b0984e932c63c9.svn-base 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package cn.com.goldenwater.dcproj.controller.system;
  2. import cn.com.goldenwater.core.web.BaseController;
  3. import cn.com.goldenwater.core.web.BaseResponse;
  4. import cn.com.goldenwater.dcproj.param.GetMenuByUserIdParam;
  5. import cn.com.goldenwater.dcproj.param.InsertMenuParam;
  6. import cn.com.goldenwater.dcproj.param.UpdateMenuParam;
  7. import cn.com.goldenwater.dcproj.target.Authority;
  8. import cn.com.goldenwater.dcproj.target.VerifyBean;
  9. import cn.com.goldenwater.id.util.UuidUtil;
  10. import cn.com.goldenwater.dcproj.dto.MenuDto;
  11. import cn.com.goldenwater.dcproj.model.Menu;
  12. import cn.com.goldenwater.dcproj.param.MenuParam;
  13. import cn.com.goldenwater.dcproj.service.MenuService;
  14. import com.github.pagehelper.PageInfo;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import io.swagger.annotations.ApiParam;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.util.Assert;
  22. import org.springframework.web.bind.annotation.*;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. /**
  26. * @author lune
  27. * @date 2018-2-13
  28. */
  29. @Api(value = "菜单管理", tags = "001菜单管理")
  30. @RestController
  31. @RequestMapping("/sys/menus")
  32. public class MenuController extends BaseController {
  33. private Logger logger = LoggerFactory.getLogger(getClass());
  34. @Autowired
  35. private MenuService menuService;
  36. @ApiOperation(value = "添加菜单")
  37. @RequestMapping(value = "insert", method = RequestMethod.POST)
  38. public BaseResponse<String> insert(@ApiParam(name = "menu", value = "Menu", required = true) @RequestBody Menu menu) {
  39. String uuid = UuidUtil.uuid(); // 生成uuid
  40. menu.setId(uuid);
  41. int ret = menuService.insert(menu);
  42. return buildSuccessResponse(uuid);
  43. }
  44. @ApiOperation(value = "根据ID删除菜单")
  45. @RequestMapping(value = "/{id}", method = RequestMethod.POST)
  46. public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  47. int ret = menuService.delete(id);
  48. return buildSuccessResponse();
  49. }
  50. @ApiOperation(value = "更新菜单信息")
  51. @RequestMapping(value = "/update", method = RequestMethod.POST)
  52. public BaseResponse update(@ApiParam(name = "menu", value = "Menu", required = true) @RequestBody Menu menu) {
  53. Assert.notNull(menu.getId(), "主键id为必填参数");
  54. int ret = menuService.update(menu);
  55. return buildSuccessResponse();
  56. }
  57. @ApiOperation(value = "根据ID获取菜单(单表)")
  58. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  59. public BaseResponse<Menu> get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  60. Menu menu = menuService.get(id);
  61. return buildSuccessResponse(menu);
  62. }
  63. @ApiOperation(value = "根据ID获取子菜单")
  64. @RequestMapping(value = "/list-by-parent/{id}", method = RequestMethod.GET)
  65. public BaseResponse<List<Menu>> getChildren(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
  66. Assert.notNull(id, "ID为必填参数");
  67. MenuParam param = new MenuParam();
  68. param.setParentId(id);
  69. List<Menu> list = menuService.findList(param);
  70. return buildSuccessResponse(list);
  71. }
  72. @Authority
  73. @VerifyBean
  74. @ApiOperation(value = "根据用户ID获取菜单(列表、树)")
  75. @RequestMapping(value = "list-by-user", method = RequestMethod.POST)
  76. public BaseResponse<PageInfo<Menu>> getMenuByUserId(@RequestBody GetMenuByUserIdParam p) throws Exception {
  77. PageInfo<Menu> list = menuService.getMenuByUserId(p);
  78. return buildSuccessResponse(list);
  79. }
  80. @VerifyBean
  81. @ApiOperation(value = "添加菜单(级联添加权限表)")
  82. @RequestMapping(value = "insert-menu-priv", method = RequestMethod.POST)
  83. public BaseResponse<Menu> add(@ApiParam(name = "menuParam", value = "menuParam", required = true) @RequestBody InsertMenuParam menuParam) throws Exception {
  84. Menu menu = menuService.addMenuAndPriv(menuParam);
  85. return buildSuccessResponse(menu);
  86. }
  87. @VerifyBean
  88. @ApiOperation(value = "更新菜单(级联更新权限表)")
  89. @RequestMapping(value = "update-menu-priv", method = RequestMethod.POST)
  90. public BaseResponse<Menu> updateWithPriv(@ApiParam(name = "menu", value = "menu", required = true) @RequestBody UpdateMenuParam menu) throws Exception {
  91. Menu m = menuService.updateWithPriv(menu);
  92. return buildSuccessResponse(m);
  93. }
  94. @ApiOperation(value = "删除菜单(级联删除权限表)")
  95. @RequestMapping(value = "/delete-menu-priv/{id}", method = RequestMethod.POST)
  96. public BaseResponse deleteWithPriv(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) throws Exception {
  97. Assert.notNull(id, "ID为必填参数");
  98. MenuParam param = new MenuParam();
  99. param.setParentId(id);
  100. List<Menu> list = menuService.findList(param);
  101. if (list != null && !list.isEmpty()) {
  102. return buildFailResponse("当前菜单存在下级菜单,请先删除下级菜单!");
  103. }
  104. menuService.deleteWithPriv(id);
  105. return buildSuccessResponse();
  106. }
  107. @ApiOperation(value = "分页获取菜单列表-不包含分页信息")
  108. @RequestMapping(value = "/page", method = RequestMethod.POST)
  109. public BaseResponse<List<MenuDto>> getMenuPage(@ApiParam(name = "menuParam", value = "菜单", required = false) @RequestBody(required = false) MenuParam menuParam) {
  110. List<MenuDto> list = menuService.findPageDto(menuParam);
  111. return buildSuccessResponse(list);
  112. }
  113. @ApiOperation(value = "分页获取菜单列表-包含分页信息")
  114. @RequestMapping(value = "/pageInfo", method = RequestMethod.POST)
  115. public BaseResponse<PageInfo<MenuDto>> getMenuPageInfo(@ApiParam(name = "menuParam", value = "MenuParam", required = false) @RequestBody MenuParam menuParam) {
  116. PageInfo<MenuDto> page = menuService.findPageInfoDto(menuParam);
  117. return buildSuccessResponse(page);
  118. }
  119. @ApiOperation(value = "查询所有菜单(权限id不为空,菜单中权限id与之相等,则菜单中的checked=true)")
  120. @RequestMapping(value = "/findMenuList", method = RequestMethod.POST)
  121. public BaseResponse<List<MenuDto>> findMenuList(@ApiParam(name = "menuParam", value = "菜单", required = false) @RequestBody MenuParam menuParam) {
  122. List<MenuDto> list = menuService.findMenuList(menuParam);
  123. return buildSuccessResponse(list);
  124. }
  125. @ApiOperation(value = "更新菜单与权限的关联关系")
  126. @RequestMapping(value = "/updateMemuPriv", method = RequestMethod.POST)
  127. public BaseResponse updateMemuPriv(@ApiParam(name = "string", value = "menuIds", required = true) @RequestBody List<String> menuIds, String privId) {
  128. Assert.notEmpty(menuIds, "菜单Id集合不能为空");
  129. Assert.notNull(privId, "权限Id不能为空");
  130. ArrayList<Menu> menus = new ArrayList<>();
  131. for (String id : menuIds) {
  132. Menu menu = new Menu();
  133. menu.setId(id);
  134. menu.setPrivId(privId);
  135. menus.add(menu);
  136. }
  137. menuService.updateMemuPriv(menus, privId);
  138. return buildSuccessResponse();
  139. }
  140. }