for (OrderDishDetailDto orderDishDetailDto : orderDishDetailDtoList) { Long dishId = orderDishDetailDto.getDishId(); DishDetailDishVo dishDetailDishVo = dishMap.get(dishId); if (dishDetailDishVo.getOrderableState() == 1) { orderDishDetail.add(orderDishDetailDto); continue; } else { List<OrderDishItemDto> choiceList = orderDishDetailDto.getChoiceList(); if (orderDishDetailDto.getIsDish() == 1) { //套餐 List<OrderDishDetailDto> orderDishDetail1 = orderDishDetailDto.getOrderDishDetail(); for (OrderDishDetailDto dishDetailDto : orderDishDetail1) { Long dishId_1 = dishDetailDto.getDishId(); DishDetailDishVo dishDetailDishVo_1 = dishMap.get(dishId_1); if (dishDetailDishVo_1.getOrderableState() == 1) { orderDishDetail.add(dishDetailDto); continue; } } } else { List<OrderDishItemDto> orderDishItems = goodsSellable(orderDishDetailDto, dishDetailDishVo); if (CollUtil.isNotEmpty(orderDishItems)) { orderDishDetail.add(orderDishDetailDto); } } } }。将这段代码改成递归
时间: 2024-01-19 16:03:09 浏览: 20
好的,我来帮你将这段代码改成递归实现:
```
private void filterOrderableDishes(List<OrderDishDetailDto> orderDishDetailDtoList, Map<Long, DishDetailDishVo> dishMap, List<OrderDishDetailDto> orderDishDetail) {
if (CollUtil.isEmpty(orderDishDetailDtoList)) {
return;
}
OrderDishDetailDto orderDishDetailDto = orderDishDetailDtoList.get(0);
Long dishId = orderDishDetailDto.getDishId();
DishDetailDishVo dishDetailDishVo = dishMap.get(dishId);
if (dishDetailDishVo.getOrderableState() == 1) {
orderDishDetail.add(orderDishDetailDto);
filterOrderableDishes(orderDishDetailDtoList.subList(1, orderDishDetailDtoList.size()), dishMap, orderDishDetail);
} else {
List<OrderDishItemDto> choiceList = orderDishDetailDto.getChoiceList();
if (orderDishDetailDto.getIsDish() == 1) { //套餐
List<OrderDishDetailDto> orderDishDetail1 = orderDishDetailDto.getOrderDishDetail();
filterOrderableDishes(orderDishDetail1, dishMap, orderDishDetail);
} else {
List<OrderDishItemDto> orderDishItems = goodsSellable(orderDishDetailDto, dishDetailDishVo);
if (CollUtil.isNotEmpty(orderDishItems)) {
orderDishDetail.add(orderDishDetailDto);
}
filterOrderableDishes(orderDishDetailDtoList.subList(1, orderDishDetailDtoList.size()), dishMap, orderDishDetail);
}
}
}
```
你可以将原方法的调用改为 `filterOrderableDishes(orderDishDetailDtoList, dishMap, orderDishDetail);`。