package com.nova.sankuai.controller.v1; import com.nova.sankuai.domain.vo.PermissionVo; import com.nova.sankuai.domain.vo.RoleVo; import com.nova.sankuai.infra.utils.ResultJson; import com.nova.sankuai.service.IPermissionService; import com.nova.sankuai.service.IRoleService; import com.nova.sankuai.service.IRoleUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author weikangdi * @create 2021/11/22 */ @Api(tags = "角色管理") @RestController @RequestMapping(value = "/api/v1/role") @AllArgsConstructor public class RoleController { private IRoleService roleService; private final IPermissionService permissionService; private final IRoleUserService roleUserService; @PostMapping("/assignRole/{userId}") @ApiOperation(value = "分配角色") @PreAuthorize("hasAuthority('role.assignRole')") public ResultJson assignRole(@RequestBody List roleIds, @PathVariable("userId") Long userId) { roleUserService.assignRoles(roleIds, userId); return ResultJson.success(); } @PostMapping("/list") @ApiOperation(value = "获取角色列表") @PreAuthorize("hasAuthority('role.list')") public ResultJson> list() { List list = roleService.getRoleList(); return ResultJson.ok(list); } @PostMapping("/add") @ApiOperation(value = "新增角色") @PreAuthorize("hasAuthority('role.add')") public ResultJson add(@RequestBody RoleVo roleVo) { roleService.add(roleVo); return ResultJson.success(); } @DeleteMapping("/delete/{id}") @ApiOperation(value = "删除角色") @PreAuthorize("hasAuthority('role.delete')") public ResultJson delete(@PathVariable("id") Long id) { roleService.delete(id); return ResultJson.success(); } @PostMapping(value = "/edit") @ApiOperation(value = "编辑角色") @PreAuthorize("hasAuthority('role.edit')") public ResultJson edit(@RequestBody RoleVo roleVo) { roleService.edit(roleVo); return ResultJson.success(); } @GetMapping(value = "/getPermissions") @ApiOperation(value = "获取权限菜单列表") @PreAuthorize("hasAuthority('role.getPermissions')") public ResultJson listMenu() { List list = permissionService.getPermissions(); return ResultJson.ok(list); } }