list集合 树 三层集合嵌套 {..{..{..}}}


手机版商品分类  

查询一级分类所有  和一级分类下第一个子元素的二级集合 和第一个分类下的所有三级集合

//记录分类编号

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;

你可能感兴趣的:(list集合 树 三层集合嵌套 {..{..{..}}})