/**
     * 加载无级功能树 ztree是我们本身封装的树对象、ztree
     * @author jhx
     * @date 2016-11-25
     * @param userID
     * @param tenantID
     * @param systemID
     * @param type "add edit"
     */
@Override
public List<ZTree> getModulesBySystemID(String userID, String tenantID,
String systemID, String type) {
List<ZTree> res = new ArrayList<ZTree>();
List<ZTree> trees = new ArrayList<ZTree>();
if(!StringHelper.isEmpty(type)&&type.equals("add")){
String[] allsystem = null;
if(StringHelper.isEmpty(systemID)){
List<System> systems =  commonDao.getDataList(System.class," 1= 1");
if(systems!=null&&systems.size()>0){
allsystem = new String[systems.size()];
for(int j=0;j<systems.size();j++){
allsystem[j]=systems.get(j).getId();
}
}
}
ZTree ztrroot = new ZTree();
ztrroot.setId("sysmoduleroot");
ztrroot.setIsParent(true);
ztrroot.setText("应用功能");
String[] systemsids = null;
if(StringHelper.isEmpty(systemID)){
systemsids = allsystem;
}else{
systemsids = systemID.split(",");
}
if(systemsids.length>0){
   for(int i= 0;i<systemsids.length;i++){
    ZTree ztr = new ZTree();
    System system =  commonDao.get(System.class,systemsids[i]);
    ztr.setId(system.getId());
    ztr.setIsParent(true);
    ztr.setText(system.getSysName());
    List<ZTree> ztreetem = getModulesTree(ztr);
    ztr.setChildren(ztreetem);
    trees.add(ztr);
   }
   
}
ztrroot.setChildren(trees);
res.add(ztrroot);
}
return res;
}
public List<ZTree> getModulesTree(ZTree ztree){
List<ZTree>  res = new ArrayList<ZTree>();
 SystemModule sys = null;
 List<ZTree> lists = null;
 if(!StringHelper.isEmpty(ztree.getId())){
 List<SystemModule> syslist = commonDao.getDataList(SystemModule.class,
 " SYSTEMID ='"+ztree.getId()+"' and PARENTID IS NULL");
 for(int i=0;i<syslist.size();i++){
 sys = syslist.get(i);
 ZTree Z = new ZTree();
 Z.setId(sys.getId());
     Z.setIsParent(true);
     Z.setText(sys.getSysModuleName());
 lists =getModulesTree(sys,null,Z);
 Z.setChildren(lists);
 res.add(Z);
 }
 }
return res;
}
public List<ZTree> getModulesTree(SystemModule system ,
List<ZTree> list,ZTree z){
if(list==null){
list = new ArrayList<ZTree>();
 }
List<SystemModule> syslist = commonDao.getDataList(SystemModule.class, " PARENTID ='"+system.getId()+"'");
if(syslist !=null && syslist.size()>0){
    for(int i=0;i<syslist.size();i++){
    SystemModule a = syslist.get(i);
    if(a.getIsLeaf().equals("0")){
    z = new ZTree();
z.setId(a.getId());
    z.setIsParent(true);
    z.setText(a.getSysModuleName());
    z.setChildren(getModulesTree(a,null,z));
    list.add(z);
    }else{
    getModulesTree(a,list,z);
    }
    } 
}else{
 ZTree Z = new ZTree();
 Z.setId(system.getId());
     Z.setIsParent(false);
     Z.setText(system.getSysModuleName());
     list.add(Z);
}
return list;

}

java遍历无极树的源码相关推荐

  1. java如何将数据保存为xml6_用Java实现可保存状态的数据库生成XML树,源码来了(9)...

    用Java实现可保存状态的数据库生成XML树,源码来了(9) 时间:2006/7/19 5:38:30 作者:佚名 人气:30 6.3.2.Servlet源码 1.RefreshServlet.jav ...

  2. 《Java修炼指南:高频源码解析》阅读笔记一Java数据结构的实现集合类

    一.Arrays工具类 来自java.util.Arrays,用来处理数组的各种方法. 1.1 List asList(T- a) 用来返回由自定数组支持的固定大小列表,虽然这里返回了一个List,但 ...

  3. java毕业设计雷士灯具管理系统源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计雷士灯具管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计雷士灯具管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

  4. java B2B2C Springboot电子商务平台源码-Feign设计原理

    什么是Feign? 电子商务平台源码请加企鹅求求:一零三八七七四六二六.Feign 的英文表意为"假装,伪装,变形", 是一个http请求调用的轻量级框架,可以以Java接口注解的 ...

  5. 计算机毕业设计Java出彩校园信息交流平台(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java出彩校园信息交流平台(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java出彩校园信息交流平台(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...

  6. 计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  7. java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈: 项目架构:B ...

  8. java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

  9. java计算机毕业设计舞蹈网站源码+lw文档+系统+数据库

    java计算机毕业设计舞蹈网站源码+lw文档+系统+数据库 java计算机毕业设计舞蹈网站源码+lw文档+系统+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ...

最新文章

  1. __slots__(面向对象进阶)
  2. linux 常用命令整理----链接文件
  3. How does SAP OData framework interpret $expand=Notes
  4. python跨目录调用_python 跨目录访问文件
  5. FL-EM7688 Smart评估板openwrt开发环境搭建(linux固件部分)
  6. 剑指Offer_47_求1+2+3+...+n
  7. 使用git管理自己的代码--简单使用流程
  8. 手动安装ojdbc6
  9. 流畅的Python(Fluent Python)
  10. [ROS2 基础] 仿真系统和搭建方法
  11. “Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005C8ECFFA80 处。”
  12. ie浏览器出现代理服务器没有响应
  13. 单片机复位电路,隐藏着这么多门道
  14. MMO游戏设计三:架构设计
  15. 卡方分布(Chi-Squared Distribution)
  16. react项目—单击按钮返回上一页
  17. MineCraft | 命令附魔
  18. 五个维度着手MySQL的优化,我和面试官都聊嗨了
  19. Intel SGX入门(一)——背景篇
  20. .Net Core 2.1 JWT Bearer 的认证

热门文章

  1. 基于51单片机ds1302时钟、ds18b20、lcd12864的恒温器
  2. Python:类(class)的变量声明
  3. 第一章Web技术概述
  4. EF 多对多关系 中间表操作
  5. 深入理解Java虚拟机(周志明)——读书笔记1
  6. MFC之图像绘制---高速绘图控件(High-speed Charting Control)应用(一)
  7. 如何配置Linux ip地址
  8. MySQL5.7 卸载 - Linux下卸载
  9. 基于大数据分析的葡萄酒品质鉴别系统设计与实现
  10. 引言-知识技能树(数据分析相关)