手机版商品分类
查询一级分类所有 和一级分类下第一个子元素的二级集合 和第一个分类下的所有三级集合
//记录分类编号
Long cateId =null;
List result =new ArrayList<>();
//一级分类集合
List cates =null;
if (mobcatebarId ==null) {
cates =mobRepository.selectOneMobCate();
}else {
cates =mobRepository.selectOneMobCate(mobcatebarId);
}
//获取一级分类集合中首个分类的编号
if (cates !=null) {
//一级分类不存在时的异常处理
if(cates.size() ==0){
throw new ServiceException(ErrorCodeDef.GOODS_CATEGORY_NOT_EXISTING,"商品分类不存在");
}
//设置返回的一级分类详细
cates.forEach(cate -> {
MobCateBarVo mobCateBarVo =new MobCateBarVo();
BeanUtils.copyProperties(cate,mobCateBarVo);
result.add(mobCateBarVo);
});
if (mobcatebarId ==null) {
//默认第一个分类的编号
cateId = cates.get(0).getCateBarId();
}else {
//赋值
cateId = mobcatebarId;
}
}else{
//一级分类不存在时的异常处理
throw new ServiceException(ErrorCodeDef.GOODS_CATEGORY_NOT_EXISTING,"商品分类不存在");
}
//二级子分类集合
List cateBars =mobRepository.queryUsingMobCateBar(cateId);
List vos =new ArrayList<>();
//根据二级子分类集合,分别获取每个二级子分类集合的三级分类
cateBars.stream().map(cateTwo-> {
//集合转类型
MobCateBarVo subVo2 =new MobCateBarVo();
BeanUtils.copyProperties(cateTwo,subVo2);
//记录三级分类编号
Long cateIds = cateTwo.getCateBarId();
//获取三级分类集合
List mobCateBars =mobRepository.queryUsingMobCateBar(cateIds);
List mobVos =new ArrayList<>();
//设定二级分类所有三级分类
mobCateBars.stream().map(cateThree ->{
MobCateBarVo subVo3 =new MobCateBarVo();
BeanUtils.copyProperties(cateThree,subVo3);
return subVo3;
}).forEach(mobVos::add);
subVo2.setChilds(mobVos);
return subVo2;
}).forEach(vos::add);
// 将取得的二级分类和三级分类设定到一级分类中
if (cates !=null) {
result.get(0).setChilds(vos);
}
//返回一级二级三级分类的树型结构
return result;