原型需求:
实现代码:
public class AmsTypeVo extends CommonBase {
@ApiModelProperty(value = "主键id")
private String id;
@ApiModelProperty(value = "组织id")
private String organization;
@ApiModelProperty(value = "类型名称")
private String typeName;
@ApiModelProperty(value = "父节点id")
private String parentId;
@ApiModelProperty(value = "类型code")
private String typeCode;
@ApiModelProperty(value = "排序")
private Byte orderBy;
@ApiModelProperty(value = "状态0启用,1禁用")
private Byte status;
@ApiModelProperty(value = "状态0启用,1禁用")
private String statusName;
List<AmsTypeVo> childList;
}
public Map<String,Object> selectAmsTypeTree(String token, String orgId) {
Map<String,Object> jsonMap=new HashMap<>();
jsonMap.put("typeTree",getTreeList());
return jsonMap;
}
public List<AmsTypeVo> getTreeList(){
List<AmsTypeVo> nextSubSet=new ArrayList<>();
String typeId = "0";//根节点
List<AmsTypeVo> rootList = amsTypeMapper.selectTypeByParentId(typeId);
for(AmsTypeVo amsTypeVo:rootList){
nextSubSet=getNextSubSet(amsTypeVo);
amsTypeVo.setChildList(nextSubSet);
}
return rootList;
}
private List<AmsTypeVo> getNextSubSet(AmsTypeVo amsTypeVo){
List<AmsTypeVo> list = amsTypeMapper.selectTypeByParentId(amsTypeVo.getId());
for(AmsTypeVo ams:list){
List<AmsTypeVo> ts=getNextLevel(ams);
ams.setChildList(ts);
}
return list;
}
private List<AmsTypeVo> getNextLevel(AmsTypeVo amsTypeVo) {
List<AmsTypeVo> list = amsTypeMapper.selectTypeByParentId(amsTypeVo.getId());
if(list!=null && list.size()>0){
for(AmsTypeVo aa:list){
aa.setChildList(getNextLevel(aa));
}
}
return list;
}
实现效果