|
@@ -1,17 +1,12 @@
|
|
|
package com.usky.controller.sys;
|
|
|
|
|
|
-/**
|
|
|
- * @author laowo
|
|
|
- * @version v1.0
|
|
|
- * @date 2021/8/27 14:37
|
|
|
- * @description TODO
|
|
|
- **/
|
|
|
-
|
|
|
+import com.usky.entity.sys.SysRoleDTO;
|
|
|
+import com.usky.entity.sys.SysUserRoleDTO;
|
|
|
import com.usky.entity.sys.vo.SysDeptVO;
|
|
|
import com.usky.entity.sys.vo.SysRoleVO;
|
|
|
import com.usky.service.sys.RoleService;
|
|
|
-import com.usky.utils.Page;
|
|
|
-import com.usky.utils.Result;
|
|
|
+import com.usky.service.sys.user.UserService;
|
|
|
+import com.usky.utils.*;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
@@ -19,6 +14,12 @@ import io.swagger.annotations.ApiOperation;
|
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+/**
|
|
|
+ * @author laowo
|
|
|
+ * @version v1.0
|
|
|
+ * @date 2021/8/27 14:37
|
|
|
+ * @description TODO
|
|
|
+ **/
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
@@ -31,6 +32,9 @@ public class RoleController {
|
|
|
@Autowired
|
|
|
private RoleService roleService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
@RequiresPermissions("system:role:view")
|
|
|
@GetMapping()
|
|
|
@ApiOperation(value = "页面权限")
|
|
@@ -69,5 +73,123 @@ public class RoleController {
|
|
|
return Result.OK(roleVOList);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新增保存角色
|
|
|
+ */
|
|
|
+ @ApiOperation(value = "角色新增")
|
|
|
+ @RequiresPermissions("system:role:add")
|
|
|
+ @PostMapping("/add")
|
|
|
+ @ResponseBody
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "roleName", value = "角色名称", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "menuIds", value = "菜单组", required = false, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "deptIds", value = "部门", required = false, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "roleKey", value = "角色权限字符", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "roleSort", value = "排序", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "dataScope", value = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4本部门及以下数据权限)", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "status", value = "角色状态(0正常 1停用)", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "remark", value = "备注", required = false, paramType = "query"),
|
|
|
+ })
|
|
|
+ public Result<?> addSave(
|
|
|
+ @RequestParam("roleName") String roleName,
|
|
|
+ @RequestParam(value = "menuIds", required = false) Integer[] menuIds,
|
|
|
+ @RequestParam(value = "deptIds", required = false) Integer[] deptIds,
|
|
|
+ @RequestParam("roleKey") String roleKey,
|
|
|
+ @RequestParam("roleSort") Integer roleSort,
|
|
|
+ @RequestParam("dataScope") String dataScope,
|
|
|
+ @RequestParam("status") String status,
|
|
|
+ @RequestParam(value = "remark", required = false) String remark
|
|
|
+ ) {
|
|
|
+ //新增角色名称校验
|
|
|
+ SysRoleVO roleVO = new SysRoleVO();
|
|
|
+ roleVO.setRoleName(roleName);
|
|
|
+ roleVO.setRoleKey(roleKey);
|
|
|
+ roleVO.setRoleSort(roleSort);
|
|
|
+ roleVO.setDataScope(dataScope);
|
|
|
+ roleVO.setStatus(status);
|
|
|
+ roleVO.setRemark(remark);
|
|
|
+ roleVO.setMenuIds(menuIds);
|
|
|
+ roleVO.setDeptIds(deptIds);
|
|
|
+ SysRoleDTO roleDTO = roleService.queryRoleByName(roleVO);
|
|
|
+ if (roleDTO != null) {
|
|
|
+ return Result.error("角色名称不能重复!");
|
|
|
+ }
|
|
|
+ //权限字符校验
|
|
|
+ SysRoleDTO roleKeyDto = roleService.queryRoleByKey(roleVO);
|
|
|
+ if (roleKeyDto != null) {
|
|
|
+ return Result.error("权限字符不能重复!");
|
|
|
+ }
|
|
|
+ AuthorizationUtils.clearAllCachedAuthorizationInfo();
|
|
|
+ roleService.addRole(roleVO);
|
|
|
+ return Result.OK();
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
+ @ApiOperation(value = "角色信息修改")
|
|
|
+ @RequiresPermissions("system:role:edit")
|
|
|
+ @PostMapping("/edit")
|
|
|
+ @ResponseBody
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "roleId", value = "角色id", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "roleName", value = "角色名称", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "menuIds", value = "菜单组", required = false, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "deptIds", value = "部门", required = false, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "roleKey", value = "角色权限字符", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "roleSort", value = "排序", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "dataScope", value = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4本部门及以下数据权限)", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "status", value = "角色状态(0正常 1停用)", required = true, paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "remark", value = "备注", required = false, paramType = "query"),
|
|
|
+ })
|
|
|
+ public Result<?> edit(
|
|
|
+ @RequestParam("roleName") String roleName,
|
|
|
+ @RequestParam("roleId") Integer roleId,
|
|
|
+ @RequestParam(value = "menuIds", required = false) Integer[] menuIds,
|
|
|
+ @RequestParam(value = "deptIds", required = false) Integer[] deptIds,
|
|
|
+ @RequestParam("roleKey") String roleKey,
|
|
|
+ @RequestParam("roleSort") Integer roleSort,
|
|
|
+ @RequestParam("dataScope") String dataScope,
|
|
|
+ @RequestParam("status") String status,
|
|
|
+ @RequestParam(value = "remark", required = false) String remark
|
|
|
+ ) {
|
|
|
+
|
|
|
+ //新增角色名称校验
|
|
|
+ SysRoleVO roleVO = new SysRoleVO();
|
|
|
+ roleVO.setRoleName(roleName);
|
|
|
+ roleVO.setRoleKey(roleKey);
|
|
|
+ roleVO.setRoleId(roleId);
|
|
|
+ roleVO.setRoleSort(roleSort);
|
|
|
+ roleVO.setDataScope(dataScope);
|
|
|
+ roleVO.setStatus(status);
|
|
|
+ roleVO.setRemark(remark);
|
|
|
+ roleVO.setMenuIds(menuIds);
|
|
|
+ roleVO.setDeptIds(deptIds);
|
|
|
+ SysRoleDTO roleDTO = roleService.queryRoleByName(roleVO);
|
|
|
+ if (roleDTO != null) {
|
|
|
+ return Result.error("角色名称不能重复!");
|
|
|
+ }
|
|
|
+ //权限字符校验
|
|
|
+ SysRoleDTO roleKeyDto = roleService.queryRoleByKey(roleVO);
|
|
|
+ if (roleKeyDto != null) {
|
|
|
+ return Result.error("权限字符不能重复!");
|
|
|
+ }
|
|
|
+ AuthorizationUtils.clearAllCachedAuthorizationInfo();
|
|
|
+ roleService.edit(roleVO);
|
|
|
+ return Result.OK();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @ApiOperation(value = "角色删除")
|
|
|
+ @RequiresPermissions("system:role:remove")
|
|
|
+ @PostMapping("/remove")
|
|
|
+ @ResponseBody
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "roleId", value = "角色id", required = true, paramType = "query")})
|
|
|
+ public Result<?> remove(@RequestParam("roleId") Integer roleId) {
|
|
|
+ List<SysUserRoleDTO> sysUserRoleDTOS = userService.queryUserByRoleId(roleId);
|
|
|
+ if (ListUtil.isNotBlank(sysUserRoleDTOS)) {
|
|
|
+ return Result.error("角色已被分配无法删除");
|
|
|
+ }
|
|
|
+ userService.remove(roleId);
|
|
|
+ return Result.OK();
|
|
|
+ }
|
|
|
}
|