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 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 roles = this.roleService.findRoles(role, queryRequest).getRecords(); ExcelKit.$Export(Role.class, response).downXlsx(roles, false); } }