1.0 查询,递归数据查询 构造树形结构
在gulimall-product 商品服务中,完成三级分类请求:
Spring中@RestController的作用等同于@Controller + @ResponseBody。要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。
=======CategoryController.java=====
@RestController
@RequestMapping("product/category")
public class CategoryController {
@Autowired
private CategoryService categoryService;
/**
* 查出所有分类以及子分类,以树形结构组装起来
*/
@RequestMapping("/list/tree")
public R list(){
List<CategoryEntity> entityList = categoryService.listWithTree();
return R.ok().put("data", entityList);
}
=======CategoryService层=========
public interface CategoryService extends IService<CategoryEntity> {
List<CategoryEntity> listWithTree();
=======CategoryServiceImpl层=========
@Service("categoryService")
public class CategoryServiceImpl extends ServiceImpl<CategoryDao,categoryEntity> implements CategoryService{
public List<CategoryEntity> listWithTree(){
//1. 查出搜有的分类
List<CategoryEntity> entities = baseMapper.selectList(null);
//2. 组装成父子的树形结构,一级->二级...
List<CategoryEntity> level1Menus =entities.stream().filter(categoryEntity->
categoryEntity.getParentCid( ) ==0
).map((menu)->{