package com.example.springboot.controller; import com.example.springboot.entity.Permission; import com.example.springboot.entity.Role; import com.example.springboot.entity.RolePermission; import com.example.springboot.entity.vo.Result; import com.example.springboot.entity.vo.RolePermissionVo; import com.example.springboot.service.PermissionService; import com.example.springboot.service.RolePermissionService; import com.example.springboot.service.RoleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresRoles; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Slf4j @Api(tags = "角色和权限关系") @RequestMapping("/api/rolePermission") public class RolePermissionController { @Autowired private RolePermissionService rolePermissionService; @Autowired private RoleService roleService; @Autowired private PermissionService permissionService; @ApiOperation(value = "添加或者更新角色和权限关系") @PostMapping("/saveOrUpdate") @RequiresPermissions({"rolePermission:add"}) @RequiresRoles({"admin"}) public Result saveOrUpdate(@RequestBody RolePermission rolePermission) { Integer count = rolePermissionService.lambdaQuery() .eq(RolePermission::getRoleId, rolePermission.getRoleId()) .eq(RolePermission::getPermissionId, rolePermission.getPermissionId()) .ne(rolePermission.getId() != null, RolePermission::getId, rolePermission.getId()) .count(); if (count > 0) return Result.fail("授权已存在"); rolePermissionService.saveOrUpdate(rolePermission); return Result.success(); } @ApiOperation(value = "根据id删除角色和权限关系") @PostMapping("/removeById") @RequiresPermissions({"rolePermission:delete"}) @RequiresRoles({"admin"}) public Result removeById(@RequestBody RolePermissionVo rolePermissionVO) { rolePermissionService.removeById(rolePermissionVO.getId()); return Result.success(); } @ApiOperation(value = "分页查询角色和权限关系") @GetMapping("/selectPage") @RequiresRoles({"admin"}) @RequiresPermissions({"rolePermission:select"}) public Result selectPage(RolePermissionVo rolePermissionVO) { return Result.success(rolePermissionService.selectPage(rolePermissionVO)); } @ApiOperation(value = "根据id查询角色和权限关系") @GetMapping("/getById") @RequiresRoles({"admin"}) @RequiresPermissions({"rolePermission:select"}) public Result getById(RolePermissionVo rolePermissionVO) { RolePermission rolePermission = rolePermissionService.getById(rolePermissionVO.getId()); if (rolePermission != null) { Role role = roleService.getById(rolePermission.getRoleId()); Permission permission = permissionService.getById(rolePermission.getPermissionId()); rolePermission.setRole(role); rolePermission.setPermission(permission); } return Result.success(rolePermission); } }