背景
使用了restful的小伙伴對于導出這些需求本能就是拒絕的~破壞了restful的url的一致性【嚴格矯正 不是http json就是restful 很多小伙伴都會吧暴露出一個json就直接稱為restful 】
正如上文的代碼生成器 我們會批量生成一堆代碼 其中絕大部分都是RestController
public abstract class AbstractRestController{ protected Class voClazz; @Autowired private Service service; public AbstractRestController() { TypeToken voType = new TypeToken (getClass()) { }; voClazz = (Class ) voType.getRawType(); } @PostMapping() @ApiOperation(value = "新建實體", notes = "") public Result add(@RequestBody V vo) { service.saveSelective(vo); return ResultGenerator.genSuccessResult(); } @DeleteMapping("/{id}") @ApiOperation(value = "刪除實體", notes = "") public Result delete(@PathVariable PK id) { service.deleteById(id); return ResultGenerator.genSuccessResult(); } @PutMapping @ApiOperation(value = "更新實體", notes = "") public Result update(@RequestBody V vo) { service.updateByPrimaryKeySelective(vo); return ResultGenerator.genSuccessResult(); } @GetMapping @ApiOperation(value = "獲取實體列表", notes = "") public Result list(S so) { PageHelper.startPage(so.getCurrentPage(), so.getPageSize()); List list = service.findAll(); PageInfo pageInfo = new PageInfo(list); excelExportParam(); return ResultGenerator.genSuccessResult(pageInfo); } protected void excelExportParam() { ExportParams ep = new ExportParams(null, "數(shù)據(jù)"); ExcelExportParam param = new ExcelExportParam<>(); param.setClazz(voClazz); param.setExcelExport(ExcelExport.NormalExcel); param.setExportParams(ep); param.setFileName("文件.xls"); F6Static.setExcelExportParam(param); } @GetMapping("/{id}") @ApiOperation(value = "獲取單個實體", notes = "") public Result detail(@PathVariable PK id) { V vo = service.findById(id); return ResultGenerator.genSuccessResult(vo); } @DeleteMapping("/batch") @ApiOperation(value = "批量刪除實體", notes = "") public Result batchDelete(@RequestParam String ids) { service.deleteByIds(ids); return ResultGenerator.genSuccessResult(); } @GetMapping("/batch") @ApiOperation(value = "批量獲取實體", notes = "") public Result batchDetail(@RequestParam String ids) { List vos = service.findByIds(ids); return ResultGenerator.genSuccessResult(vos); } @PostMapping("/batch") @ApiOperation(value = "批量新建實體", notes = "") public Result add(@RequestBody List vos) { service.save(vos); return ResultGenerator.genSuccessResult(); } @GetMapping("/count") @ApiOperation(value = "獲取實體數(shù)目", notes = "") public Result count(@RequestBody V v) { int count = service.selectCount(v); return ResultGenerator.genSuccessResult(count); }