商家主动退款,优化

This commit is contained in:
Jack 2025-07-12 10:23:46 +08:00
parent 2eeb79f139
commit c50803ce54

View File

@ -2186,7 +2186,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
} }
/** /**
* 商家处理退货退款支持全单/部分商品退货 * 商家处理退货退款不退货支持全单/部分商品退货
* *
* @param requestParams JSON参数包含: * @param requestParams JSON参数包含:
* - order_id: 订单ID (必填) * - order_id: 订单ID (必填)
@ -2233,25 +2233,34 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
// === 4. 处理退货商品信息 === // === 4. 处理退货商品信息 ===
OrderReturnInputVo partialRefund = null; OrderReturnInputVo partialRefund = null;
// 不分退款
Boolean isPartialRefund = false; Boolean isPartialRefund = false;
int partialRefundItemCnt = 0;
if (StrUtil.isNotBlank(requestParams.getStr("order_return_vo"))) { if (StrUtil.isNotBlank(requestParams.getStr("order_return_vo"))) {
try { try {
partialRefund = JSONUtil.toBean(requestParams.getStr("order_return_vo"), OrderReturnInputVo.class); partialRefund = JSONUtil.toBean(requestParams.getStr("order_return_vo"), OrderReturnInputVo.class);
isPartialRefund = partialRefund != null && CollectionUtil.isNotEmpty(partialRefund.getReturn_items()); isPartialRefund = partialRefund != null && CollectionUtil.isNotEmpty(partialRefund.getReturn_items());
partialRefundItemCnt = partialRefund.getReturn_items().size();
} catch (Exception e) { } catch (Exception e) {
return CommonResult.failed("退货商品参数格式错误"); return CommonResult.failed("退货商品参数格式错误");
} }
} }
// 获取订单商品项
List<ShopOrderItem> orderItems = shopOrderItemService.find(
new QueryWrapper<ShopOrderItem>().eq("order_id", orderId));
if (CollectionUtil.isEmpty(orderItems)) {
return CommonResult.failed("订单没有可退货的商品");
}
if (isPartialRefund && orderItems.size() == partialRefundItemCnt) {
isPartialRefund = false;
}
// === 5. 创建退货单如不存在 === // === 5. 创建退货单如不存在 ===
ShopOrderReturn refundOrder = null; ShopOrderReturn refundOrder = null;
if (!hasRefundRecord) { if (!hasRefundRecord) {
// 5.1 获取订单商品项
List<ShopOrderItem> orderItems = shopOrderItemService.find(
new QueryWrapper<ShopOrderItem>().eq("order_id", orderId));
if (CollectionUtil.isEmpty(orderItems)) {
return CommonResult.failed("订单没有可退货的商品");
}
// 5.2 准备退货请求数据 // 5.2 准备退货请求数据
OrderReturnInputVo refundRequest = new OrderReturnInputVo(); OrderReturnInputVo refundRequest = new OrderReturnInputVo();