Java后台转换成树结构

package cn.ccccltd.ccccoi.mediumterminvestment.domain;

import java.io.Serializable;
import java.util.List;

/**
* @Description:返回前端,业务模块
* @author yujiaqi
* @date: 2019年9月9日下午2:07:19
*/
public class ProjectBasicInfoDTO implements Serializable {

private static final long serialVersionUID = 1L;

private String id;
private String pId;
private String key;
private String title;
private String value;
private List<ProjectBasicInfoDTO> children;
private Boolean selectable;
private Boolean disableCheckbox;
private Boolean disabled;
public String getId() {
return id;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public void setId(String id) {
this.id = id;
}
public String getpId() {
return pId;
}
public void setpId(String pId) {
this.pId = pId;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<ProjectBasicInfoDTO> getChildren() {
return children;
}
public void setChildren(List<ProjectBasicInfoDTO> children) {
this.children = children;
}
public Boolean getSelectable() {
return selectable;
}
public void setSelectable(Boolean selectable) {
this.selectable = selectable;
}
public Boolean getDisableCheckbox() {
return disableCheckbox;
}
public void setDisableCheckbox(Boolean disableCheckbox) {
this.disableCheckbox = disableCheckbox;
}
public Boolean getDisabled() {
return disabled;
}
public void setDisabled(Boolean disabled) {
this.disabled = disabled;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}

service实现类:

/**
* 查询投资项目资金来源
*/
@Override
public List<ProjectBasicInfoDTO> queryFundingSource() {
//查询投资项目资金来源
List<DictionaryBean> list = projectBasicInfoMapper.queryDictionaryBean(Constant.FUNDING_SOURCE,Constant.DELFLAG);
List<ProjectBasicInfoDTO> dataProcessing = ProjectBasicInfoServiceImpl.dataProcessing(list);
List<ProjectBasicInfoDTO> buildByRecursive = TreeUtils.buildByRecursive(dataProcessing);
return buildByRecursive;
}
/**
* 将字典数据遍历放入ProjectBasicInfoDTO实体中
* @param list
* @return
*/
public static List<ProjectBasicInfoDTO> dataProcessing(List<DictionaryBean> list){
List<ProjectBasicInfoDTO> list1 = Lists.newArrayList();
for (DictionaryBean dictionaryBean : list) {
ProjectBasicInfoDTO projectBasicInfoDTO = new ProjectBasicInfoDTO();
projectBasicInfoDTO.setId(dictionaryBean.getItemId());
projectBasicInfoDTO.setpId(dictionaryBean.getItemParentId());
projectBasicInfoDTO.setKey(dictionaryBean.getItemId());
projectBasicInfoDTO.setTitle(dictionaryBean.getItemFullName());
projectBasicInfoDTO.setValue(dictionaryBean.getItemFullName());
projectBasicInfoDTO.setSelectable(false);
projectBasicInfoDTO.setDisableCheckbox(true);
projectBasicInfoDTO.setDisabled(true);
list1.add(projectBasicInfoDTO);
}
return list1;
}

递归方法工具类

package cn.ccccltd.ccccoi.mediumterminvestment.util;

import java.util.ArrayList;
import java.util.List;

import cn.ccccltd.ccccoi.mediumterminvestment.domain.ProjectBasicInfoDTO;

public class TreeUtils {
/**
* 使用递归方法建树
* @param treeNodes
* @return
*/
public static List<ProjectBasicInfoDTO> buildByRecursive(List<ProjectBasicInfoDTO> projectBasicInfoDTOs) {
List<ProjectBasicInfoDTO> trees = new ArrayList<ProjectBasicInfoDTO>();
for (ProjectBasicInfoDTO projectBasicInfoDTO : projectBasicInfoDTOs) {
if ("".equals(projectBasicInfoDTO.getpId()) || projectBasicInfoDTO.getpId() == null ) {
trees.add(findChildren(projectBasicInfoDTO,projectBasicInfoDTOs));
}
}
return trees;
}
/**
* 递归查找子节点
* @param treeNodes
* @return
*/
public static ProjectBasicInfoDTO findChildren(ProjectBasicInfoDTO projectBasicInfoDTO,List<ProjectBasicInfoDTO> projectBasicInfoDTOs) {
for (ProjectBasicInfoDTO projectBasicInfoDTO2 : projectBasicInfoDTOs) {
if(projectBasicInfoDTO.getId().equals(projectBasicInfoDTO2.getpId())) {
if(projectBasicInfoDTO.getChildren() == null) {
projectBasicInfoDTO.setChildren(new ArrayList<ProjectBasicInfoDTO>());
}
//是否还有子节点,如果有的话继续往下遍历,如果没有则直接返回
projectBasicInfoDTO.getChildren().add(findChildren(projectBasicInfoDTO2,projectBasicInfoDTOs));
}
}
return projectBasicInfoDTO;
}
}

树形结构效果图:

$(function(){ $.fn.extend({ SimpleTree:function(options){ //初始化参数 var option = $.extend({ click:function(a){ } },options); option.tree=this; /* 在参数对象中添加对当前菜单的引用,以便在对象中使用该菜单 */ option._init=function(){ /* * 初始化菜单展开状态,以及分叉节点的样式 */ this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */ this.tree.find("ul ul").prev("li").removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */ this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */ this.tree.find("ul ul[show='true']").prev("li").addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */ }/* option._init() End */ /* 设置所有超链接不响应单击事件 */ this.find("a").click(function(){ $(this).parent("li").click(); return false; }); /* 菜单项 接受单击 */ this.find("li").click(function(){ /* * 当单击菜单项 * 1.触发用户自定义的单击事件,将该 标签中的第一个超链接做为参数传递过去 * 2.修改当前菜单项所属的子菜单的显示状态(如果等于 true 将其设置为 false,否则将其设置为 true) * 3.重新初始化菜单 */ option.click($(this).find("a")[0]); /* 触发单击 */ /* * 如果当前节点下面包含子菜单,并且其 show 属性的值为 true,则修改其 show 属性为 false * 否则修改其 show 属性为 true */ /* if($(this).next("ul").attr("show")=="true"){ $(this).next("ul").attr("show","false"); }else{ $(this).next("ul").attr("show","true"); }*/ /* 初始化菜单 */ option._init(); }); /* 设置所有父节点样式 */ this.find("ul").prev("li").addClass("folder"); /* 设置节点“是否包含子节点”属性 */ this.find("li").find("a").attr("hasChild",false); this.find("ul").prev("li").find("a").attr("hasChild",true); /* 初始化菜单 */ option._init(); }/* SimpleTree Function End */ }); });
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值