123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- package com.usky.controller.sys;
- import com.usky.constant.Constant;
- 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.service.sys.user.UserService;
- import com.usky.utils.*;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- 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;
- @Api(tags = "系统-角色管理")
- @RestController
- @RequestMapping("sys/role")
- public class RoleController {
- private String prefix = "system/role";
- @Autowired
- private RoleService roleService;
- @Autowired
- private UserService userService;
- @RequiresPermissions("system:role:view")
- @GetMapping()
- @ApiOperation(value = "页面权限")
- public String role() {
- return prefix + "/role";
- }
- @ApiOperation(value = "角色查询-分页")
- @PostMapping("list")
- @RequiresPermissions("system:role:list")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "roleName", value = "角色名称", required = false, paramType = "query"),
- @ApiImplicitParam(name = "status", value = "角色状态 0正常 1 停用", required = false, paramType = "query"),
- @ApiImplicitParam(name = "startTime", value = "开始时间", required = false, paramType = "query"),
- @ApiImplicitParam(name = "endTime", value = "结束时间", required = false, paramType = "query"),
- @ApiImplicitParam(name = "pageSize", value = "页数据条数", required = false, paramType = "query"),
- @ApiImplicitParam(name = "pageNo", value = "当前页", required = false, paramType = "query"),
- })
- public Page<SysRoleVO> list(
- @RequestParam(value = "roleName", required = false) String roleName,
- @RequestParam(value = "status", required = false) String status,
- @RequestParam(value = "startTime", required = false) String startTime,
- @RequestParam(value = "endTime", required = false) String endTime,
- @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize,
- @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo) {
- Page<SysRoleVO> data = roleService.list(new SysDeptVO(), roleName, status, startTime, endTime, pageSize, pageNo);
- return data;
- }
- @ApiOperation(value = "角色查询-全部")
- @PostMapping("listAll")
- @RequiresPermissions("system:role:list")
- public Result<List<SysRoleVO>> list() {
- List<SysRoleVO> roleVOList = roleService.querRoleList(new SysRoleVO());
- 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();
- }
- }
|