From 3d31e4cd74b32a515cfef8e151d2d9e15e0a427e Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Sun, 2 Nov 2025 00:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=8D=E4=BB=B7=E4=B8=8B=E5=8D=95=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E6=98=AF=E5=90=A6=E8=BE=BE=E6=A0=87=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=BE=BE=E6=A0=87=E4=B8=8D=E5=85=81=E8=AE=B8=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/ShopOrderReturnService.java | 2 +- .../impl/ShopOrderBaseServiceImpl.java | 42 ++++++--- .../impl/ShopOrderReturnServiceImpl.java | 89 ++++++++++--------- 3 files changed, 80 insertions(+), 53 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java index a64e8d7c..211916bc 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderReturnService.java @@ -171,7 +171,7 @@ public interface ShopOrderReturnService extends IBaseService { * @param productId 商品ID * @return boolean true表示禁止退货,false表示允许退货 */ - boolean ifOrderItemDenyReturn(String orderId, Long productId); + boolean isOrderItemDenyReturn(String orderId, Long productId); /** * 判断订单是否禁止退货 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 0b0ab4c6..8cdf0518 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -9070,13 +9070,22 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl { - item.setIs_deny_return(isOrderDenyReturn); - }); + if (CollUtil.isNotEmpty(order.getOrder_items())) { + if (!isOrderDenyReturn) { // 允许退款的订单,再进一步检查每个商品是否不能退款 + // 订单商品列表是否禁止退款 + order.getOrder_items().forEach(item -> { + // 注意:应该使用 order_item_id 而不是 product_id + boolean isOrderItemDenyReturn = shopOrderReturnService.isOrderItemDenyReturn(order.getOrder_id(), item.getProduct_id()); + item.setIs_deny_return(isOrderItemDenyReturn ? CommonConstant.Enable : CommonConstant.Disable2); + }); + } else { + // 如果整个订单都禁止退款,则所有商品都禁止退款 + order.getOrder_items().forEach(item -> item.setIs_deny_return(CommonConstant.Enable)); + } + } }); @@ -9177,13 +9186,22 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl { - item.setIs_deny_return(isOrderDenyReturn); - }); + if (CollUtil.isNotEmpty(orderDetail.getOrder_items())) { + if (!isOrderDenyReturn) { // 允许退款的订单,再进一步检查每个商品是否不能退款 + // 订单商品列表是否禁止退款 + orderDetail.getOrder_items().forEach(item -> { + // 注意:应该使用 order_item_id 而不是 product_id + boolean isOrderItemDenyReturn = shopOrderReturnService.isOrderItemDenyReturn(orderId, item.getProduct_id()); + item.setIs_deny_return(isOrderItemDenyReturn ? CommonConstant.Enable : CommonConstant.Disable2); + }); + } else { + // 如果整个订单都禁止退款,则所有商品都禁止退款 + orderDetail.getOrder_items().forEach(item -> item.setIs_deny_return(CommonConstant.Enable)); + } + } return orderDetail; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java index c5af168c..28ef1596 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java @@ -1512,7 +1512,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl 0) { - log.debug("[是否禁止退货] 订单已超过退货期限,不允许退货,order_id: {}", orderId); + log.debug("[是否禁止退货] 订单已超过退货期限,禁止退货,order_id: {}, orderDealTime: {}, withdrawTime: {}", + orderId, orderDealTime, withdrawTime); return true; } } catch (Exception e) { - log.error("[是否禁止退货] 检查订单退货期限时发生异常,不允许退货,order_id: {}", orderId, e); + log.error("[是否禁止退货] 检查订单退货期限时发生异常,禁止退货,order_id: {}", orderId, e); + return true; } } @@ -2165,32 +2162,40 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl contractTypeIds = Convert.toList(Integer.class, contractTypeIdsStr); if (contractTypeIds != null && contractTypeIds.contains(StateCode.CONTRACT_TYPE_DENY_RETURN)) { - log.debug("[是否禁止退货] 商品设置了禁止退货标识,不允许退货,order_id: {}, product_id: {}", orderId, productId); + log.debug("[是否禁止退货] 商品设置了禁止退货标识,禁止退货,order_id: {}, product_id: {}", orderId, productIndex.getProduct_id()); return true; } } catch (Exception e) { - log.error("[是否禁止退货] 解析商品保障类型失败,不允许退货,order_id: {}, product_id: {}", orderId, productId, e); - return true; + log.error("[是否禁止退货] 解析商品保障类型失败,允许退货,order_id: {}, product_id: {}", orderId, productIndex.getProduct_id(), e); + return false; } } // 默认允许退货 - log.debug("[是否禁止退货] 允许退货}"); + log.debug("[是否禁止退货] 商品允许退货,order_id: {}, product_id: {}", orderId, productIndex.getProduct_id()); return false; } @@ -2226,7 +2231,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl 0) { - log.debug("[订单是否禁止退货] 订单:{} 已过退货期,不允许退货", orderId); + log.debug("[订单是否禁止退货] 订单已超过退货期限,禁止退货,orderId: {}, orderDealTime: {}, withdrawTime: {}", + orderId, orderDealTime, withdrawTime); return true; } } // 检查拉卡拉分账和提现状态 - if (lklOrderSeparateService.isOrderSeparated(orderId) && - lklOrderDrawService.isOrderDrawed(orderId)) { - log.debug("[订单是否禁止退货] 订单[{}]已提现,不允许退货", orderId); + boolean isLklSeparated = lklOrderSeparateService.isOrderSeparated(orderId); + boolean isLklDrawed = lklOrderDrawService.isOrderDrawed(orderId); + boolean isLklProcessed = isLklSeparated && isLklDrawed; + + if (isLklProcessed) { + log.debug("[订单是否禁止退货] 拉卡拉分账订单已提现,禁止退货,orderId: {}, separated: {}, drawed: {}", + orderId, isLklSeparated, isLklDrawed); return true; } - // 默认允许退货 + // 允许退货 + log.debug("[订单是否禁止退货] 订单允许退货,orderId: {}", orderId); return false; } catch (Exception e) { - log.error("[订单是否禁止退货] 查询订单{}退货状态异常,不允许退货", orderId, e); + log.error("[订单是否禁止退货] 查询订单退货状态异常,禁止退货,orderId: {}", orderId, e); return true; } }