java遍历无极树的源码
/**
* 加载无级功能树 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遍历无极树的源码相关推荐
- java如何将数据保存为xml6_用Java实现可保存状态的数据库生成XML树,源码来了(9)...
用Java实现可保存状态的数据库生成XML树,源码来了(9) 时间:2006/7/19 5:38:30 作者:佚名 人气:30 6.3.2.Servlet源码 1.RefreshServlet.jav ...
- 《Java修炼指南:高频源码解析》阅读笔记一Java数据结构的实现集合类
一.Arrays工具类 来自java.util.Arrays,用来处理数组的各种方法. 1.1 List asList(T- a) 用来返回由自定数组支持的固定大小列表,虽然这里返回了一个List,但 ...
- java毕业设计雷士灯具管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计雷士灯具管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计雷士灯具管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...
- java B2B2C Springboot电子商务平台源码-Feign设计原理
什么是Feign? 电子商务平台源码请加企鹅求求:一零三八七七四六二六.Feign 的英文表意为"假装,伪装,变形", 是一个http请求调用的轻量级框架,可以以Java接口注解的 ...
- 计算机毕业设计Java出彩校园信息交流平台(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java出彩校园信息交流平台(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java出彩校园信息交流平台(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...
- 计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java班费收支管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 ...
- java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈: 项目架构:B ...
- java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计-篮球资讯网站-源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...
- java计算机毕业设计舞蹈网站源码+lw文档+系统+数据库
java计算机毕业设计舞蹈网站源码+lw文档+系统+数据库 java计算机毕业设计舞蹈网站源码+lw文档+系统+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ...
最新文章
- __slots__(面向对象进阶)
- linux 常用命令整理----链接文件
- How does SAP OData framework interpret $expand=Notes
- python跨目录调用_python 跨目录访问文件
- FL-EM7688 Smart评估板openwrt开发环境搭建(linux固件部分)
- 剑指Offer_47_求1+2+3+...+n
- 使用git管理自己的代码--简单使用流程
- 手动安装ojdbc6
- 流畅的Python(Fluent Python)
- [ROS2 基础] 仿真系统和搭建方法
- “Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005C8ECFFA80 处。”
- ie浏览器出现代理服务器没有响应
- 单片机复位电路,隐藏着这么多门道
- MMO游戏设计三:架构设计
- 卡方分布(Chi-Squared Distribution)
- react项目—单击按钮返回上一页
- MineCraft | 命令附魔
- 五个维度着手MySQL的优化,我和面试官都聊嗨了
- Intel SGX入门(一)——背景篇
- .Net Core 2.1 JWT Bearer 的认证