diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index fa5e124c..f1070732 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -2547,7 +2547,13 @@ public class OrderMasterController extends BaseController { return AjaxResult.error("商品主单已进入确认中状态,无法退单!"); } - // 3. 检查商品主单是否有关联的服务主单 + // 3. 检查商品主单是否有子单 + List goodsOrderDetails = orderDetailService.selectByOrderMasterId(goodsOrderMasterId); + if (goodsOrderDetails != null && !goodsOrderDetails.isEmpty()) { + return AjaxResult.error("商品主单存在子单,无法退单!请先处理相关子单。"); + } + + // 4. 检查商品主单是否有关联的服务主单 if (goodsOrderMaster.getHasServiceOrder() != null && goodsOrderMaster.getHasServiceOrder() == 1) { // 查找关联的服务主单 OrderMaster serviceOrderMaster = orderMasterService.selectByGoodsOrderMasterId(goodsOrderMasterId); @@ -2557,7 +2563,13 @@ public class OrderMasterController extends BaseController { return AjaxResult.error("关联的服务主单已进入确认中状态,无法退单!"); } - // 4. 先退服务主单 + // 检查服务主单是否有子单 + List serviceOrderDetails = orderDetailService.selectByOrderMasterId(serviceOrderMaster.getId()); + if (serviceOrderDetails != null && !serviceOrderDetails.isEmpty()) { + return AjaxResult.error("关联的服务主单存在子单,无法退单!请先处理相关子单。"); + } + + // 5. 先退服务主单 logger.info("开始退服务主单,serviceOrderMasterId={}", serviceOrderMaster.getId()); OrderMaster serviceOrderParam = new OrderMaster(); serviceOrderParam.setId(serviceOrderMaster.getId()); @@ -2570,7 +2582,7 @@ public class OrderMasterController extends BaseController { } } - // 5. 再退商品主单 + // 6. 再退商品主单 logger.info("开始退商品主单,goodsOrderMasterId={}", goodsOrderMasterId); OrderMaster goodsOrderParam = new OrderMaster(); goodsOrderParam.setId(goodsOrderMasterId); @@ -2581,7 +2593,7 @@ public class OrderMasterController extends BaseController { } logger.info("退商品主单成功,goodsOrderMasterId={}", goodsOrderMasterId); - // 6. 退单成功后进行退款操作 + // 7. 退单成功后进行退款操作 try { // 获取商品主单的财务信息 FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(goodsOrderMasterId);