class SpecificationManagerController {

    @Autowired
    private SpecificationService specificationService;


    @GetMapping("/all")
    @ApiOperation(value = "获取所有可用规格")
    public ResultMessage<List<Specification>> getAll() {
        return ResultUtil.data(specificationService.list());
    }

    @GetMapping
    @ApiOperation(value = "搜索规格")
    public ResultMessage<Page<Specification>> page(String specName, PageVO page) {<FILL_FUNCTION_BODY>}

    @PostMapping
    @ApiOperation(value = "保存规格")
    public ResultMessage<Object> save(@Valid Specification specification) {
        specificationService.save(specification);
        return ResultUtil.success();
    }

    @PutMapping("/{id}")
    @ApiOperation(value = "更改规格")
    public ResultMessage<Object> update(@Valid Specification specification, @PathVariable String id) {
        specification.setId(id);
        return ResultUtil.data(specificationService.saveOrUpdate(specification));
    }

    @DeleteMapping("/{ids}")
    @ApiImplicitParam(name = "ids", value = "规格ID", required = true, dataType = "String", allowMultiple = true, paramType = "path")
    @ApiOperation(value = "批量删除")
    public ResultMessage<Object> delAllByIds(@PathVariable List<String> ids) {
        return ResultUtil.data(specificationService.deleteSpecification(ids));
    }
}

        LambdaQueryWrapper<Specification> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.like(CharSequenceUtil.isNotEmpty(specName), Specification::getSpecName, specName);
        return ResultUtil.data(specificationService.page(PageUtil.initPage(page), lambdaQueryWrapper));
    
<no_super_class>