今天做遇到一个父子级条件查询的问题,直接上手前端展示。当点击左侧的"食品"分类时,需要将其子分类对应的商品也查询出来(右侧暂时没有加查询条件~)
接下来是数据库,蓝色背景就是食品相关的分类(包括子类)。我们需要将这些分类对应的商品查询出来。按目前的数据量可以直接根据p_id=3在t_goos_type中查询数据,但是当数据量增多时(子类的子类的子类....套娃),就需要采取新的方案进行处理。
Service中的方法
1、typeId:即前端点击的分类Id,对应上图数据库中的3(食品的id值)
2、先根据参数查询数据库中对应的数据。
3、必须分情况进行判断:A.用户点击的是"所有分类" B.用户点击的是"某个分类"。当查询的数据为-1时,用户点击的是"所有分类"。此时通过Mybatis Plus的list()方法查询出分类列表的所有数据,通过stream()流(JDK8新特性)的方式获取每个GoodsType对象中的id属性,并将其转换为List集合。(当然你也可以用for循环搞定~)</