父节点
----叶子节点
----子节点一
---------叶子节点
---------叶子节点
----子节点二
---------子节点三
----------------叶子节点
----------------叶子节点
如何得到父节点
采用递归算法,碰到叶子节点就加到列表里,不是叶子节点就对其进行循环再递归遍历
- /**
- * 向旗添加
- * 实现将得到的目录的所有子目录和目录本身变成ID的LIST
- * @param 目录ID
- * @return 目录与其所有子目录组成的ID的LIST
- * @throws ServiceException
- */
- public List<Long> getAllPisTCategoryStr(PisTCategory obj)throws ServiceException{
- List<PisTCategory> listAll = new ArrayList<PisTCategory>();
- List<Long> list = new ArrayList<Long>();
- listAll = getAllPisTCategoryByParentId(obj);
- if(listAll.size()!=0){
- for(int i =0;i<listAll.size();i++){
- list.add(listAll.get(i).getId());
- }
- }
- return list;
- }
- /**
- * 向旗添加
- * 实现根据目录ID得到其所有子目录list
- * @param 目录ID
- * @return 所有子目录list
- * @throws ServiceException
- */
- public List<PisTCategory> getAllPisTCategoryByParentId(PisTCategory obj)throws ServiceException{
- List<PisTCategory> listAll = new ArrayList<PisTCategory>();
- List<PisTCategory> list = new ArrayList<PisTCategory>();
- List<PisTCategory> listtest = new ArrayList<PisTCategory>();
- try{
- if(obj.getLeaf() != null){
- if(obj.getLeaf()==1){
- listAll.add(obj);
- return listAll;
- }}
- obj.setLeaf(null);
- list = getPisTCategoryByParentId_Leaf(obj);
- if(list.size()!=0){
- for(int i=0;i<list.size();i++){
- PisTCategory instance = new PisTCategory();
- instance = list.get(i);
- instance.setParentId(instance.getId());
- listtest = getAllPisTCategoryByParentId(instance);
- listAll.addAll(listtest);
- }
- }
- }catch(Exception e){
- e.printStackTrace();
- throw new ServiceException(this.getClass().getName()+e.getMessage());
- }
- return listAll;
- }
- /**
- * 向旗添加
- * 实现根据父目录查询其子目录及其的所有商品信息
- * @param categoryId
- * @return
- * @throws ServiceException
- */
- public List<PisTProduct> getListPisTProductByCategoryId(Long categoryId)throws ServiceException{
- PisTCategory obj = new PisTCategory();
- obj = pisTCategoryService.getPisTCategoryById(categoryId);
- obj.setParentId(obj.getId());
- List<Long> list = pisTCategoryService.getAllPisTCategoryStr(obj);
- System.out.println(list.size());
- GetProductBySiteCategoryQueryObject qo = new GetProductBySiteCategoryQueryObject();
- qo.setSiteId(null);
- qo.setCategorys(list);
- try {
- return pisTProductDao.getListPisTProductBySiteId_CategoryIDs(qo);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }