wangming 4 zile în urmă
părinte
comite
cc0ac67a14

+ 0 - 53
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderRefundController.java

@@ -351,59 +351,6 @@ public class OrderRefundController {
             newOrderRefund.setDistributionTotalAmount(orderService.sumTotalDistributionAmountByOrderItem(orderItemList));
             // 计算平台退款金额(退款时将这部分钱退回给平台,所以商家要扣除从平台这里获取的金额)
             newOrderRefund.setPlatformRefundAmount(order.getPlatformAmount());
-        } else {
-            // 部分物品退款
-            OrderItem orderItem = orderItemService.getOne(new LambdaQueryWrapper<OrderItem>()
-                    .eq(OrderItem::getOrderItemId, orderRefundParam.getOrderItemId())
-                    .eq(OrderItem::getOrderNumber, orderRefundParam.getOrderNumber()));
-            if (orderItem == null) {
-                throw new GlobalException("该物品在订单中不存在");
-            }
-            boolean isCanRefund = false;
-            //  查看是否有支付金额和积分都为空的订单,有则抛出异常
-            for (OrderItem item : orderItemList) {
-                if (item.getActualTotal() <= 0.0 && item.getUseScore() <= 0.0) {
-                    isCanRefund = true;
-                    break;
-                }
-            }
-            if (isCanRefund) {
-                throw new GlobalException("该订单部分订单项支付金额和积分为0,无法使用部分退款!");
-            }
-
-            if (order.getPlatformAmount() > 0 && !Arith.isEquals(orderRefundParam.getRefundAmount(), orderItem.getActualTotal())) {
-                throw new GlobalException("该订单有使用平台优惠,无法使用部分退款!");
-            }
-            // 计算该订单项的分销金额
-            newOrderRefund.setDistributionTotalAmount(orderService.sumTotalDistributionAmountByOrderItem(Collections.singletonList(orderItem)));
-
-            // 计算平台退款金额(退款时将这部分钱退回给平台,所以商家要扣除从平台这里获取的金额)
-            //此处设置实际平台抵现金额
-            newOrderRefund.setPlatformRefundAmount(orderItem.getPlatformShareReduce());
-
-            // 退款物品数量为null或者0时,则为退款全部数量
-            if (orderRefundParam.getGoodsNum() <= 0) {
-                orderRefundParam.setGoodsNum(orderItem.getProdCount());
-            }
-
-            // 判断退款数量是否溢出
-            if (orderRefundParam.getGoodsNum() > orderItem.getProdCount()) {
-                throw new GlobalException("退款物品数量已超出订单中的数量,不允许申请");
-            }
-
-            // 判断退款金额是否超出订单金额
-            double refundSingleAmount = Arith.div(orderRefundParam.getRefundAmount(), orderRefundParam.getGoodsNum(), 3);
-            double singleAmount = Arith.div(orderItem.getActualTotal(), orderItem.getProdCount(), 3);
-            if (refundSingleAmount > orderItem.getProductTotalAmount() || refundSingleAmount > singleAmount) {
-                throw new GlobalException("退款金额已超出订单金额,无法申请");
-            }
-
-            // 一个订单项只能申请一次退款
-//            for (OrderRefund orderRefund : orderRefunds) {
-//                if (Objects.equals(orderRefund.getOrderId(), orderItem.getOrderItemId())) {
-//                    throw new GlobalException("退款订单项已处理,请勿重复申请");
-//                }
-//            }
         }
 
         newOrderRefund.setShopId(order.getShopId());

+ 3 - 3
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/RefundOrderItemDto.java

@@ -14,9 +14,6 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.yami.shop.common.serializer.json.ImgJsonSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serializable;
 
 /**
  * 退款订单项
@@ -41,6 +38,9 @@ public class RefundOrderItemDto {
     @ApiModelProperty("物品数量")
     private Integer prodCount;
 
+    @ApiModelProperty("物品数量2")
+    private Integer productCount;
+
     @ApiModelProperty("产品总价格")
     private Double productTotalAmount;
 

+ 2 - 2
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -82,7 +82,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         for (OrderRefundDto record : records) {
 //            RefundDelivery refundDelivery = refundDeliveryService.getOne(new LambdaQueryWrapper<RefundDelivery>().eq(RefundDelivery::getRefundSn, record.getRefundSn()));
 //            record.setRefundDelivery(refundDelivery);
-            getRefundTypeByOrderItem(record);
+            getRefundTypeByOrderItem2(record);
         }
         return orderRefundDtoIPage;
     }
@@ -105,7 +105,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             orderRefundDto.setGoodsNum(order.getProductNums());
         }
         // 判断退款单类型(1:整单退款,2:单个物品退款)
-        getRefundTypeByOrderItem(orderRefundDto);
+        getRefundTypeByOrderItem2(orderRefundDto);
         orderRefundDto.setIsCancel(true);
         // 如果是单项退款,且订单状态为待发货,则判断退款操作是否可以取消
         if (orderRefundDto.getRefundType().equals(RefundType.SINGLE.value()) && orderRefundDto.getStatus().equals(OrderStatus.PADYED.value())) {