package com.ruoyi.common.core.domain; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysMenu; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.List; import java.util.stream.Collectors; /** * Treeselect树结构实体类 * * @author Lion Li */ @Data @NoArgsConstructor @Accessors(chain = true) @ApiModel("树结构实体类") public class TreeSelect implements Serializable { private static final long serialVersionUID = 1L; /** * 节点ID */ @ApiModelProperty(value = "节点ID") private Long id; /** * 节点名称 */ @ApiModelProperty(value = "节点名称") private String label; /** * 子节点 */ @ApiModelProperty(value = "子节点") @JsonInclude(JsonInclude.Include.NON_EMPTY) private List children; public TreeSelect(SysDept dept) { this.id = dept.getDeptId(); this.label = dept.getDeptName(); this.children = dept.getChildren() .stream() .map(d -> new TreeSelect((SysDept) d)) .collect(Collectors.toList()); } public TreeSelect(SysMenu menu) { this.id = menu.getMenuId(); this.label = menu.getMenuName(); this.children = menu.getChildren() .stream() .map(d -> new TreeSelect((SysMenu) d)) .collect(Collectors.toList()); } }