public List<Dish> list(Long categoryId) { Dish dish = Dish.builder() .categoryId(categoryId) .status(StatusConstant.ENABLE) .build(); return dishMapper.list(dish); }这段代码什么意思
时间: 2024-04-11 21:31:41 浏览: 117
这段代码是一个方法,名为list,它接受一个Long类型的categoryId作为参数。在方法内部,它创建了一个Dish对象,使用Dish.builder()方法进行构建,并为该对象设置了categoryId和status属性的值。categoryId的值设置为传入的参数值,status的值设置为StatusConstant.ENABLE。
接下来,该方法调用dishMapper.list(dish)方法,传入上述创建的Dish对象作为参数,并返回一个List<Dish>类型的结果。
总体来说,这段代码的意思是根据给定的categoryId和status条件,从数据库中查询并返回符合条件的Dish对象的列表。
相关问题
解释程序public R<List<DishDto>> list(Dish dish){ //构造查询条件 LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(dish.getCategoryId() != null ,Dish::getCategoryId,dish.getCategoryId()); //添加条件,查询状态为1(起售状态)的菜品 queryWrapper.eq(Dish::getStatus,1); //添加排序条件 queryWrapper.orderByAsc(Dish::getSort).orderByDesc(Dish::getUpdateTime); List<Dish> list = dishService.list(queryWrapper); List<DishDto> dishDtoList = list.stream().map((item) -> { DishDto dishDto = new DishDto(); BeanUtils.copyProperties(item,dishDto); Long categoryId = item.getCategoryId();//分类id //根据id查询分类对象 Category category = categoryService.getById(categoryId); if(category != null){ String categoryName = category.getName(); dishDto.setCategoryName(categoryName); } //当前菜品的id Long dishId = item.getId(); LambdaQueryWrapper<DishFlavor> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(DishFlavor::getDishId,dishId); List<DishFlavor> dishFlavorList = dishFlavorService.list(lambdaQueryWrapper); dishDto.setFlavors(dishFlavorList); return dishDto; }).collect(Collectors.toList()); return R.success(dishDtoList); }
这段程序是一个查询菜品的方法,需要传入一个 Dish 对象作为查询条件。首先,利用 LambdaQueryWrapper 构造查询条件,其中 eq 方法表示相等条件,orderByAsc 和 orderByDesc 表示升序和降序排序条件。然后,调用 dishService 的 list 方法进行查询,得到一个菜品列表。接着,将菜品列表转化为 DishDto 列表,其中 DishDto 是一个数据传输对象,用于将菜品信息传输给前端页面。在转化过程中,首先使用 BeanUtils 将菜品对象属性复制到 DishDto 对象中,然后根据 categoryId 查询分类对象,将分类名称设置到 DishDto 对象中,最后根据菜品 id 查询菜品口味列表,将菜品口味设置到 DishDto 对象中。最终返回 DishDto 列表。
@RestController @RequestMapping("/dish") @Slf4j public class DishController { @Autowired private DishService dishService; @Autowired private DishFlavorService dishFlavorService; @Autowired private CategoryService categoryService; /** * 新增菜品 * @param dishDto * @return */ @PostMapping() public R<String> save(@RequestBody DishDto dishDto){ dishService.saveWithFlavor(dishDto); return R.success("新增菜品成功!!"); } @GetMapping("/page") public R<Page> page(int page,int pageSize,String name){ //构造一个分页构造器对象 Page<Dish> objectPage = new Page<>(page, pageSize); Page<DishDto> dishDtoPage = new Page<>(); //条件构造器 LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>(); //添加过滤条件 queryWrapper.like(name!=null,Dish::getName,name); //添加排序条件 queryWrapper.orderByDesc(Dish::getUpdateTime); //执行分页查询 dishService.page(objectPage,queryWrapper); //对象拷贝 BeanUtils.copyProperties(objectPage,dishDtoPage,"records"); List<Dish> records = objectPage.getRecords(); List<DishDto> list = records.stream().map((item)->{ DishDto dishDto = new DishDto(); BeanUtils.copyProperties(item, dishDto); Long categoryId = item.getCategoryId();//分类id Category category = categoryService.getById(categoryId);//根据id查询分类对象 if (category != null){ String categoryName = category.getName(); dishDto.setCategoryName(categoryName); } return dishDto; }).collect(Collectors.toList()); dishDtoPage.setRecords(list); return R.success(objectPage); } } 请备注一下这段代码
这段代码是一个基于Spring Boot框架的RestController,其中包含了两个接口:一个是新增菜品的接口,另一个是分页查询菜品的接口。其中,新增菜品的接口使用了POST请求方式,接收一个DishDto对象作为参数,返回一个R<String>对象;分页查询菜品的接口使用了GET请求方式,接收三个参数:page、pageSize和name,返回一个R<Page>对象。在分页查询菜品的接口中,使用了LambdaQueryWrapper进行条件查询和排序,同时使用了BeanUtils进行对象拷贝,最终返回一个包含DishDto对象的Page对象。
阅读全文