java中do...while实现递归父级

public String getParentId(String id) {
// 当前用户id
String currentId = id;
// 层级链
List parentChain = new ArrayList<>();
do {
// 检查是否存在循环关系
if (parentChain.contains(currentId)) {
// 存在循环层级关系,可以终止循环
return null;
}
parentChain.add(currentId);
// 查询层级关系
XxxPxxx xxxPxxx = xxxPxxxService.findById(currentId).getContext();
if (Objects.isNull(xxxPxxx )) {
return null;
}
// 查询上级信息
YyyVO yyyVO= yyyPyyyService.findById(xxxPxxx.getId()).getContext();
if (Objects.isNull(customerVO)) {
return null;
}
// 判断是否为指定***点
if (yyyVO.getAbc().equals(2)) {
return xxxPxxx.getId();
}
// 继续往上查找
currentId = yyyVO.getId();
} while (true);
}

posted @ 2021-08-24 11:12  cqrunnerxjzh  阅读(278)  评论(0编辑  收藏  举报