递归查询父级下的所有子级:
List<Order> totalOrderList = new ArrayList<>();
getChildOrders(totalOrderList,order.getOrderCode(),order.getId());
----------------------------------------------
private void getChildOrders(List<Order> totalOrderList,String orderCode,String parentId) {
List<Order> orderList = null;
if(!StringUtils.isEmpty(orderCode)){
orderList = orderService.findByAdjustCode(orderCode);
}
else if(!StringUtils.isEmpty(parentId)){
orderList = orderService.findByParentId(parentId);
}
if(orderList!=null && orderList.size() > 0){
totalOrderList.addAll(orderList);
for(Order temporder : orderList){
getChildOrders(totalOrderList, temporder.getOrderCode(),temporder.getId());
}
}
}
根据子级查询自己对应的主级:
private static String getParentOrderByOrderCode(String orderCode) {
Order order = orderService.getByIdOrCode(orderCode);
Order newOrder = null;
if(order != null && !StringUtils.isEmpty(order.getAdjustCode())){
newOrder = getParentOrders(order.getAdjustCode());
if(newOrder == null){
newOrder = order;
}
}
return newOrder.getId();
}
/**
* 递归获取订单的父级订单
*
* @param adjustCode
* @return
*/
private static Order getParentOrders(String adjustCode) {
Order parentOrder = orderService.getByIdOrCode(adjustCode);
if(parentOrder != null && !StringUtils.isEmpty(parentOrder.getAdjustCode())){
parentOrder = getParentOrders(parentOrder.getAdjustCode());
}
return parentOrder;
}