实体
@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;
}