多平台统一管理软件接口,如何实现多平台统一管理软件接口
253
2022-12-11
JAVA后台转换成树结构数据返回给前端的实现方法
我们会经常用到树形,那么树形结构的数据是在前端做还是在后台做呢?我自己用过前端的ztree,selectTree等这些属于前端的组件,后台只需要把一个表的所有数据返回给前段就可以,前端可以通过id,pid来把层级结构划分,要是我们前端需要后台直接返回树结构数据怎么办,那么接下来我给大家介绍一下我写过的例子。
我们先看一张图了解一下树结构:我这里随便找一张图了解一下即可
接下来我们看一下数据,主要包括id,pid,名称
接下来我们写一个小例子,用递归方式转换为数
实体:
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
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
return children;
}
public void setChildren(List
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
//查询投资项目资金来源
List
List
List
return buildByRecursive;
}
/**
* 将字典数据遍历放入ProjectBasicInfoDTO实体中
* @param list
* @return
*/
public static List
List
for (DictionaryBean dictionaryBean : list) {
ProjectBasicInfoDTO projectBasicInfoDTO = new ProjectBasicInfoDTO();
projectBasicInfoDTO.setId(dictionaryBean.getItemId());
projectBasichttp://InfoDTO.setpId(dictionaryBean.getItemParentId());
projectBasicInfoDTO.setKey(dictionaryBean.getItemId());
projectBasicInfoDTO.setTitle(dictionaryBean.getItemFullName());
projectBasicInfoDTO.setValue(dictionaryBean.getItemFullName());
projectBasicInfoDTO.setSelectable(false);
projectBasicInfoDTO.setDisableCheckbox(true);
projeEUegSTTqctBasicInfoDTO.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
List
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
for (ProjectBasicInfoDTO projectBasicInfoDTO2 : projectBasicInfoDTOs) {
if(projectBasicInfoDTO.getId().equals(projectBasicInfoDTO2.getpId())) {
if(projectBasicInfoDTO.getChildren() == null) {
projectBasicInfoDTO.setChildren(new ArrayList
}
//是否还有子节点,如果有的话继续往下遍历,如果没有则直接返回
projectBasicInfoDTO.getChildren().add(findChildren(projectBasicInfoDTO2,projectBasicInfoDTOs));
}
}
return projectBasicInfoDTO;
}
}
树结构效果图
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~