diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderPayServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderPayServiceImpl.java index 61bccad67..9d85fa5f3 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderPayServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderPayServiceImpl.java @@ -441,7 +441,11 @@ public class OrderPayServiceImpl implements OrderPayService { } orderDetailService.updateById(orderDetail); if (orderDetail.getProductId() != null && orderDetail.getProductId() > 0) { - productStockMap.put(orderDetail.getProductId(), refundDetail.getNum()); + if (productStockMap.containsKey(orderDetail.getProductId())) { + productStockMap.put(orderDetail.getProductId(), productStockMap.get(orderDetail.getProductId()).add(refundDetail.getNum())); + } else { + productStockMap.put(orderDetail.getProductId(), refundDetail.getNum()); + } } } long count = orderDetailService.count(QueryWrapper.create().eq(OrderDetail::getOrderId, orderInfo.getId()) @@ -459,14 +463,22 @@ public class OrderPayServiceImpl implements OrderPayService { for (OrderDetail orderDetail : orderDetails) { if (isPay) { if (orderDetail.getProductId() != null && orderDetail.getProductId() > 0) { - productStockMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(orderDetail.getRefundNum())); + if (productStockMap.containsKey(orderDetail.getProductId())) { + productStockMap.put(orderDetail.getProductId(), productStockMap.get(orderDetail.getProductId()).add(orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(orderDetail.getRefundNum()))); + } else { + productStockMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(orderDetail.getRefundNum())); + } } orderDetail.setReturnAmount(orderDetail.getPayAmount()); orderDetail.setRefundNum(orderDetail.getNum().subtract(orderDetail.getReturnNum())); orderDetail.setStatus(OrderStatusEnums.REFUND.getCode()); } else { if (orderDetail.getProductId() != null && orderDetail.getProductId() > 0) { - productStockMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum())); + if (productStockMap.containsKey(orderDetail.getProductId())) { + productStockMap.put(orderDetail.getProductId(), productStockMap.get(orderDetail.getProductId()).add(orderDetail.getNum().subtract(orderDetail.getReturnNum()))); + } else { + productStockMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum())); + } } orderDetail.setReturnNum(orderDetail.getNum()); orderDetail.setStatus(OrderStatusEnums.CANCELLED.getCode());