前端页面部分数据不显示问题

 

 不显示菜品分类。原因是给前端返回的是一个Dish对象,里面的属性categoryId不能被前端解析,在list.html中,菜品分类这一列标识为:

  

<el-table-column
 prop="categoryName"
 label="菜品分类"
></el-table-column>

所以封装一个DishDTO类:

复制代码
@Data
public class DishDto extends Dish {

    private List<DishFlavor> flavors = new ArrayList<>();

    private String categoryName;

    private Integer copies;
}
复制代码

查的时候这么查:

复制代码
 1 @GetMapping("/page")
 2     public R<Page<DishDto>> page(int page, int pageSize, String name) {
 3         Page<Dish> dishPage = new Page<>(page, pageSize);
 4         dishService.page(dishPage, new QueryWrapper<Dish>().like(StringUtils.isNotEmpty(name), "name", name).orderByDesc("update_time"));
 5 
 6         Page<DishDto> dishDtoPage = new Page<>();
 7         /**
 8          * protected List<T> records;
 9          * records里保存的就是Dish、DishDTO对象,拷贝的时候,单独处理
10          */
11         BeanUtils.copyProperties(dishPage, dishDtoPage, "records");
12         List<DishDto> dishDtos = dishPage.getRecords().stream().map((item) -> {
13             /**
14              * 因为Dish里只存了categoryId,没有前端要的categoryName
15              * 所以我们根据categoryId查一下categoryName
16              */
17             DishDto dishDto = new DishDto();
18             BeanUtils.copyProperties(item, dishDto);
19             Long categoryId = item.getCategoryId();
20             String categoryName = categoryService.getById(categoryId).getName();
21             dishDto.setCategoryName(categoryName);
22             return dishDto;
23         }).collect(Collectors.toList());
24         dishDtoPage.setRecords(dishDtos);
25         return R.success(dishDtoPage);
26     }
复制代码

 



posted @   LiRang2022  阅读(1102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示