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<Void> assignRole(@RequestBody List<Long> roleIds, @PathVariable("userId") Long userId) {
|
roleUserService.assignRoles(roleIds, userId);
|
return ResultJson.success();
|
}
|
|
|
@PostMapping("/list")
|
@ApiOperation(value = "获取角色列表")
|
@PreAuthorize("hasAuthority('role.list')")
|
public ResultJson<List<RoleVo>> list() {
|
List<RoleVo> list = roleService.getRoleList();
|
return ResultJson.ok(list);
|
}
|
|
@PostMapping("/add")
|
@ApiOperation(value = "新增角色")
|
@PreAuthorize("hasAuthority('role.add')")
|
public ResultJson<Void> 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<PermissionVo> list = permissionService.getPermissions();
|
return ResultJson.ok(list);
|
}
|
}
|