package cc.mrbird.febs.system.controller; 
 | 
  
 | 
  
 | 
import cc.mrbird.febs.common.annotation.ControllerEndpoint; 
 | 
import cc.mrbird.febs.common.controller.BaseController; 
 | 
import cc.mrbird.febs.common.entity.FebsResponse; 
 | 
import cc.mrbird.febs.common.entity.QueryRequest; 
 | 
import cc.mrbird.febs.common.exception.FebsException; 
 | 
import cc.mrbird.febs.system.entity.Role; 
 | 
import cc.mrbird.febs.system.service.IRoleService; 
 | 
import com.wuwenze.poi.ExcelKit; 
 | 
import lombok.RequiredArgsConstructor; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.shiro.authz.annotation.RequiresPermissions; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import javax.validation.Valid; 
 | 
import javax.validation.constraints.NotBlank; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * @author MrBird 
 | 
 */ 
 | 
@Slf4j 
 | 
@RestController 
 | 
@RequiredArgsConstructor 
 | 
@RequestMapping("role") 
 | 
public class RoleController extends BaseController { 
 | 
  
 | 
    private final IRoleService roleService; 
 | 
  
 | 
    @GetMapping 
 | 
    public FebsResponse getAllRoles(Role role) { 
 | 
        return new FebsResponse().success().data(roleService.findRoles(role)); 
 | 
    } 
 | 
  
 | 
    @GetMapping("list") 
 | 
    @RequiresPermissions("role:view") 
 | 
    public FebsResponse roleList(Role role, QueryRequest request) { 
 | 
        Map<String, Object> dataTable = getDataTable(this.roleService.findRoles(role, request)); 
 | 
        return new FebsResponse().success().data(dataTable); 
 | 
    } 
 | 
  
 | 
    @PostMapping 
 | 
    @RequiresPermissions("role:add") 
 | 
    @ControllerEndpoint(operation = "新增角色", exceptionMessage = "新增角色失败") 
 | 
    public FebsResponse addRole(@Valid Role role) { 
 | 
        this.roleService.createRole(role); 
 | 
        return new FebsResponse().success(); 
 | 
    } 
 | 
  
 | 
    @GetMapping("delete/{roleIds}") 
 | 
    @RequiresPermissions("role:delete") 
 | 
    @ControllerEndpoint(operation = "删除角色", exceptionMessage = "删除角色失败") 
 | 
    public FebsResponse deleteRoles(@NotBlank(message = "{required}") @PathVariable String roleIds) { 
 | 
        this.roleService.deleteRoles(roleIds); 
 | 
        return new FebsResponse().success(); 
 | 
    } 
 | 
  
 | 
    @PostMapping("update") 
 | 
    @RequiresPermissions("role:update") 
 | 
    @ControllerEndpoint(operation = "修改角色", exceptionMessage = "修改角色失败") 
 | 
    public FebsResponse updateRole(Role role) { 
 | 
        this.roleService.updateRole(role); 
 | 
        return new FebsResponse().success(); 
 | 
    } 
 | 
  
 | 
    @GetMapping("excel") 
 | 
    @RequiresPermissions("role:export") 
 | 
    @ControllerEndpoint(exceptionMessage = "导出Excel失败") 
 | 
    public void export(QueryRequest queryRequest, Role role, HttpServletResponse response) throws FebsException { 
 | 
        List<Role> roles = this.roleService.findRoles(role, queryRequest).getRecords(); 
 | 
        ExcelKit.$Export(Role.class, response).downXlsx(roles, false); 
 | 
    } 
 | 
  
 | 
} 
 |