1.产品类目
电商的商品都是按照一定的目录结构排序的,有根目录和子目录,例如下面100001-100005是产品的根目录,所有的商品都属于这几大类,冰箱(100006)属于家用电器(100001)
2.查找方法
2.1 先查出一级目录,然后查其子目录,直到查到的是null
2.2 直接查出目录,往上查父目录,一直查到parent_id是0
3.具体操作
选择从根目录开始往下查,在CategoryService层中添加接口selectAll,其中返回值的类型是返回给前端的responseVo,参数是由CategoryVo组成的List,这样就可以查到所有的category,因为前端不需要category中所有的属性,所有单独写一个categoryVo类
ResponseVo<List<CategoryVo>> selectAll();
然后再实现类中调用mapper,查到所有category,通过增强for循环遍历所有的list,从中选出parentId为0的category,再将信息复制到categoryVo中剔除不需要的属性,最后将所有符合条件的categoryVo组成一个List返回给前端
public ResponseVo<List<CategoryVo>> selectAll() {
List<CategoryVo> categoryVoList = new ArrayList<>();
//查出所有的类目
List<Category> categories = categoryMapper.selectAll();
//查出parent_id为0的所有根目录,放入到list中并且返回
for (Category category : categories) {
if (category.getParentId() == 0) {
CategoryVo categoryVo = new CategoryVo();
//把数据库中category对象的属性拷贝到categoryVo中
BeanUtils.copyProperties(category, categoryVo);
categoryVoList.add(categoryVo);
}
}
return ResponseVo.success(categoryVoList);
}