| 
					
				 | 
			
			
				@@ -0,0 +1,53 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.sysu.admin.controller.lz.ns; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.controller.lz.ns.bean.NsActionTree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.support.base.BaseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.xiesx.fastboot.core.jpa.JpaPlusRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class NsActionTreeService extends BaseService<NsActionTree, Integer> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NsActionTreeRepository repository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<NsActionTree> findAllByTypeIdAndParentId(Integer typeId, Integer parentId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return repository.findAllByTypeIdAndParentId(typeId, parentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 查找整棵树 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<NsActionTree> findTree(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<NsActionTree> roots = repository.findAllByParentId(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roots.stream().forEach(root -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(root.getLeaf() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                recursive(root); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return roots; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 递归获取子节点数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param nsActionTree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void recursive(NsActionTree nsActionTree){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<NsActionTree> childList = repository.findAllByParentId(nsActionTree.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nsActionTree.setChildList(childList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        childList.stream().forEach(child -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(child.getLeaf() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                recursive(child); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public JpaPlusRepository<NsActionTree, Integer> r() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return repository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |