手機(jī)版商品分類??
查詢一級(jí)分類所有? 和一級(jí)分類下第一個(gè)子元素的二級(jí)集合 和第一個(gè)分類下的所有三級(jí)集合
//記錄分類編號(hào)
Long cateId =null;
List?result =new ArrayList<>();
//一級(jí)分類集合
List?cates =null;
if (mobcatebarId ==null) {
cates =mobRepository.selectOneMobCate();
}else {
cates =mobRepository.selectOneMobCate(mobcatebarId);
}
//獲取一級(jí)分類集合中首個(gè)分類的編號(hào)
?if (cates !=null) {
//一級(jí)分類不存在時(shí)的異常處理
? if(cates.size() ==0){
throw new ServiceException(ErrorCodeDef.GOODS_CATEGORY_NOT_EXISTING,"商品分類不存在");
}
//設(shè)置返回的一級(jí)分類詳細(xì)
?cates.forEach(cate -> {
MobCateBarVo mobCateBarVo =new MobCateBarVo();
BeanUtils.copyProperties(cate,mobCateBarVo);
result.add(mobCateBarVo);
});
if (mobcatebarId ==null) {
//默認(rèn)第一個(gè)分類的編號(hào)
?cateId = cates.get(0).getCateBarId();
}else {
//賦值
?cateId = mobcatebarId;
}
}else{
//一級(jí)分類不存在時(shí)的異常處理
throw new ServiceException(ErrorCodeDef.GOODS_CATEGORY_NOT_EXISTING,"商品分類不存在");
}
//二級(jí)子分類集合
List?cateBars =mobRepository.queryUsingMobCateBar(cateId);
List?vos =new ArrayList<>();
//根據(jù)二級(jí)子分類集合,分別獲取每個(gè)二級(jí)子分類集合的三級(jí)分類
cateBars.stream().map(cateTwo-> {
//集合轉(zhuǎn)類型
MobCateBarVo subVo2 =new MobCateBarVo();
BeanUtils.copyProperties(cateTwo,subVo2);
//記錄三級(jí)分類編號(hào)
Long cateIds = cateTwo.getCateBarId();
//獲取三級(jí)分類集合
List?mobCateBars =mobRepository.queryUsingMobCateBar(cateIds);
List?mobVos =new ArrayList<>();
//設(shè)定二級(jí)分類所有三級(jí)分類
?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);
// 將取得的二級(jí)分類和三級(jí)分類設(shè)定到一級(jí)分類中
if (cates !=null) {
result.get(0).setChilds(vos);
}
//返回一級(jí)二級(jí)三級(jí)分類的樹(shù)型結(jié)構(gòu)
?return result;