实体
@Data
@TableName("dtp_sm_servicetype")
@ApiModel(value = "SmServicetype对象", description = "服务类型")
@EqualsAndHashCode(callSuper = true)
public class SmServicetype extends BaseEntity {@ApiModelProperty("服务类型名称")private String name;@ApiModelProperty("服务标题")private String title;@ApiModelProperty("服务分类描述")private String descinfo;@ApiModelProperty("服务分类父节点编号")private Long parentId;@ApiModelProperty("排序")private Integer orderIndex;@TableField(exist = false)private List<SmServicetype> childrenList;
}
调用
@ApiOperation(value = "查询所有服务类型", notes = "传入smServicetype")
public R<List<SmServicetypeVO>> serviceTypeTree(SmServicetype smServicetype) {List<SmServicetype> allList = smServicetypeService.list();List<SmServicetype> typeTreeList = this.selectSmServicetypeTrees(allList);return R.data(SmServicetypeWrapper.build().listVO(typeTreeList));
}private List<SmServicetype> selectSmServicetypeTrees(List<SmServicetype> smServicetypeList) {List<SmServicetype> collect = smServicetypeList.stream().filter(item -> item.getParentId() == -1) .map(item -> {item.setChildrenList(getChildrenList(item, smServicetypeList));return item;}).collect(Collectors.toList());return collect.size() == 0 ? smServicetypeList : collect;}private List<SmServicetype> getChildrenList(SmServicetype smServicetype, List<SmServicetype> smServicetypeList) {List<SmServicetype> collect = smServicetypeList.stream().filter(item -> item.getParentId().equals(smServicetype.getId())).map(item -> {item.setChildrenList(getChildrenList(item, smServicetypeList));return item;}).collect(Collectors.toList());return collect;
}