Pārlūkot izejas kodu

fix: 订单详情返回每件商品已退款数量,前端校验已退完不可再选

- OrderItemVO 新增 refundedQuantity 字段
- getDetailVOById 通过 RefundService 填充已退款数量
- 前端已有校验逻辑:disabled 已退完商品,退款数量上限=购买数-已退数

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline 2 nedēļas atpakaļ
vecāks
revīzija
fd6120ab83

+ 2 - 0
haha-common/src/main/java/com/haha/common/vo/OrderItemVO.java

@@ -15,6 +15,8 @@ public class OrderItemVO {
     private String productName;
     private String pic;
     private Integer productNum;
+    /** 已退款数量 */
+    private Integer refundedQuantity;
     private BigDecimal money;
     private BigDecimal originPrice;
     private BigDecimal price;

+ 9 - 0
haha-service/src/main/java/com/haha/service/impl/OrderServiceImpl.java

@@ -210,6 +210,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         vo.setPayType(order.getPayType());
 
         List<OrderItemVO> products = orderGoodsService.getVOByOrderId(id);
+
+        // 填充每个商品的已退款数量
+        if (refundService != null && !products.isEmpty()) {
+            Map<Long, Integer> refundedQtyMap = refundService.getRefundedQuantityMap(id);
+            for (OrderItemVO p : products) {
+                p.setRefundedQuantity(refundedQtyMap.getOrDefault(p.getId(), 0));
+            }
+        }
+
         vo.setProducts(products);
 
         // 填充用户消费标签