背景
建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联专业提供成都网站制作、成都网站建设、外贸营销网站建设,网页设计,网站制作(企业站、响应式网站建设、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!使用了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, "数据"); 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 = "获取实体数目", notes = "") public Result count(@RequestBody V v) { int count = service.selectCount(v); return ResultGenerator.genSuccessResult(count); }