从里到外
用代码封装成json格式的数据
1 封装的对象是:
解决参数的名字问题
/**
* 全部查询,并且生成树状结构
* @return
*/
public ItemCatResult queryAllToTree() {
ItemCatResult result = new ItemCatResult();
// 全部查出,并且在内存中生成树形结构
EasyUIResult<ItemCat> easyUIResult = queryList(1, 99999, Order.formString("sort_order.asc"));
List<ItemCat> cats = easyUIResult.getRows();
全部查出以后,没有结构。将数据封装成所需要的数据
-----------------------------------------
// 转为map存储,key为父节点ID,value为数据集合
Map<Long, List<ItemCat>> itemCatMap = new HashMap<Long, List<ItemCat>>();
for (ItemCat itemCat : cats) {
if(!itemCatMap.containsKey(itemCat.getParentId())){
itemCatMap.put(itemCat.getParentId(), new ArrayList<ItemCat>());
}
itemCatMap.get(itemCat.getParentId()).add(itemCat);
}
// 封装一级对象
List<ItemCat> itemCatList1 = itemCatMap.get(0L);
for (ItemCat itemCat : itemCatList1) {
ItemCatData itemCatData = new ItemCatData();
itemCatData.setUrl("/products/" + itemCat.getId() + ".html");
itemCatData.setNname("<a href='"+itemCatData.getUrl()+"'>"+itemCat.getName()+"</a>");
result.getItemCats().add(itemCatData);
if(!itemCat.getIsParent()){
continue;
}
// 封装二级对象
List<ItemCat> itemCatList2 = itemCatMap.get(itemCat.getId());
List<ItemCatData> itemCatData2 = new ArrayList<ItemCatData>();
itemCatData.setItems(itemCatData2);
for (ItemCat itemCat2 : itemCatList2) {
ItemCatData id2 = new ItemCatData();
id2.setNname(itemCat2.getName());
id2.setUrl("/products/" + itemCat2.getId() + ".html");
itemCatData2.add(id2);
if(itemCat2.getIsParent()){
// 封装三级对象
List<ItemCat> itemCatList3 = itemCatMap.get(itemCat2.getId());
List<String> itemCatData3 = new ArrayList<String>();
id2.setItems(itemCatData3);
for (ItemCat itemCat3 : itemCatList3) {
itemCatData3.add("/products/" + itemCat3.getId() + ".html|"+itemCat3.getName());
}
}
}
if(result.getItemCats().size() >= 14){
break;
}
}
return result;
}