@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysDataDictTreeResp extends SysDataDict {

@ApiModelProperty(value = "子集")
List<SysDataDictTreeResp> childrenList;

}

//构建树

private List<SysDataDictTreeResp> generateDictTree(Map<String, List<SysDataDict>> dataGroupMap,
List<SysDataDict> defaultGroupSonKeys) {
return defaultGroupSonKeys.stream().map(data -> {
SysDataDictTreeResp resp = new SysDataDictTreeResp();
BeanUtils.copyProperties(data, resp);
resp.setChildrenList(generateChildrenDict(dataGroupMap, data.getDataKey()));
return resp;
}).collect(Collectors.toList());
}

private List<SysDataDictTreeResp> generateChildrenDict(Map<String, List<SysDataDict>> dataGroupMap, String dataKey) {
if (dataGroupMap.containsKey(dataKey)) {
List<SysDataDict> mapValues = dataGroupMap.get(dataKey);
return generateDictTree(dataGroupMap, mapValues);
}
return Collections.emptyList();
}