SysPrivilegeController.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.distributed.print.business.bean.dto.DataPermissionInfo;
  4. import com.qmth.distributed.print.business.bean.params.SysRolePrivilegeParams;
  5. import com.qmth.distributed.print.business.service.BasicRoleDataPermissionService;
  6. import com.qmth.teachcloud.common.annotation.OperationLogDetail;
  7. import com.qmth.teachcloud.common.contant.SystemConstant;
  8. import com.qmth.teachcloud.common.entity.SysPrivilege;
  9. import com.qmth.teachcloud.common.entity.SysRole;
  10. import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
  11. import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
  12. import com.qmth.teachcloud.common.service.SysPrivilegeService;
  13. import com.qmth.teachcloud.common.service.SysRoleService;
  14. import com.qmth.teachcloud.common.util.Result;
  15. import com.qmth.teachcloud.common.util.ResultUtil;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.annotation.Resource;
  21. import java.util.List;
  22. import java.util.Objects;
  23. import java.util.stream.Collectors;
  24. /**
  25. * <p>
  26. * 菜单权限表 前端控制器
  27. * </p>
  28. *
  29. * @author xf
  30. * @since 2021-03-23
  31. */
  32. @Api(tags = "菜单权限Controller")
  33. @RestController
  34. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_SYS + "/privilege")
  35. public class SysPrivilegeController {
  36. @Resource
  37. private SysPrivilegeService sysPrivilegeService;
  38. @Resource
  39. private BasicRoleDataPermissionService basicRoleDataPermissionService;
  40. @Resource
  41. private SysRoleService sysRoleService;
  42. /**
  43. * 查询
  44. *
  45. * @return
  46. */
  47. @ApiOperation(value = "查询")
  48. @RequestMapping(value = "/list", method = RequestMethod.POST)
  49. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
  50. public Result list() {
  51. return ResultUtil.ok(sysPrivilegeService.listPrivilegeTreeNew());
  52. }
  53. /**
  54. * 查询需要授权的菜单
  55. *
  56. * @return
  57. */
  58. @ApiOperation(value = "查询需要授权的菜单")
  59. @RequestMapping(value = "/list_auth", method = RequestMethod.POST)
  60. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
  61. public Result listAuth() {
  62. return ResultUtil.ok(sysPrivilegeService.listPrivilegeTreeAuth());
  63. }
  64. /**
  65. * 新增/修改
  66. *
  67. * @param privilege
  68. * @return
  69. */
  70. @ApiOperation(value = "新增/修改")
  71. @RequestMapping(value = "/save", method = RequestMethod.POST)
  72. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
  73. public Result save(@RequestBody SysPrivilege privilege) {
  74. return ResultUtil.ok(sysPrivilegeService.savePrivilege(privilege));
  75. }
  76. /**
  77. * 删除
  78. *
  79. * @param privilege
  80. * @return
  81. */
  82. @ApiOperation(value = "删除")
  83. @RequestMapping(value = "/remove", method = RequestMethod.POST)
  84. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
  85. public Result remove(@RequestBody SysPrivilege privilege) {
  86. return ResultUtil.ok(sysPrivilegeService.remove(privilege.getId()));
  87. }
  88. /**
  89. * 角色已绑定权限列表
  90. *
  91. * @param roleId
  92. * @return
  93. */
  94. @ApiOperation(value = "角色已绑定权限列表")
  95. @RequestMapping(value = "/get_role_privileges", method = RequestMethod.POST)
  96. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
  97. public Result getRolePrivileges(@RequestParam(value = "roleId", required = true) Long roleId) {
  98. SysRole sysRole = sysRoleService.getById(roleId);
  99. if (Objects.isNull(sysRole)){
  100. throw ExceptionResultEnum.ERROR.exception("角色不存在");
  101. }
  102. SysRolePrivilegeParams result = new SysRolePrivilegeParams();
  103. // 该角色拥有的权限集合
  104. result.setPrivilegeIds(sysPrivilegeService.getRolePrivileges(roleId));
  105. // 该角色拥有的数据权限
  106. result.setDataPermissionInfo(basicRoleDataPermissionService.findRoleDataPermissionInfo(roleId));
  107. result.setId(roleId);
  108. result.setInterpret(sysRole.getInterpret());
  109. result.setName(sysRole.getName());
  110. return ResultUtil.ok(result);
  111. }
  112. }