wangming 5 天之前
父节点
当前提交
70ccf96b9e

+ 2 - 41
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderRefundController.java

@@ -316,57 +316,18 @@ public class OrderRefundController {
             throw new GlobalException("当前订单正在等待成团状态,需等待成团才能进行下一步操作");
         }
 
-
-//        if (!Objects.equals(orderRefundParam.getRefundType(),RefundType.ALL.value()) && Objects.equals(order.getStatus(),OrderStatus.PADYED.value())) {
-//            throw new GlobalException("未发货订单仅支持整单退款");
-//        }
-//        // 代发货整单退款不可以输入金额,为固定全额退款
-//        if (Objects.equals(orderRefundParam.getRefundType(),RefundType.ALL.value()) && Objects.equals(order.getStatus(),OrderStatus.PADYED.value())) {
-//            orderRefundParam.setRefundAmount(order.getActualTotal());
-//        }
-
         if (orderRefundParam.getRefundAmount() > (order.getActualTotal())) {
             throw new GlobalException("退款金额已超出订单金额,无法申请");
         }
 
-        //待收货 -> 整单退款 -> 退款金额 < 订单金额 - 运费金额 当前配送费为提前支付,退款时直接进行退款
-//        if (Objects.equals(order.getStatus(), OrderStatus.CONSIGNMENT.value()) && orderRefundParam.getRefundType().equals(RefundType.ALL.value())) {
-//            Double refundAmount = Arith.sub(order.getActualTotal(), order.getFreightAmount());
-//            if (orderRefundParam.getRefundAmount() > refundAmount) {
-//                throw new GlobalException("退款金额已超出订单金额,无法申请");
-//            }
-//        }
-
         if (!orderRefundService.checkRefundDate(order)) {
             throw new GlobalException("当前订单已确认收货超过" + Constant.MAX_FINALLY_REFUND_TIME + "天,无法退款");
         }
-//        if (Objects.equals(order.getOrderType(), Constant.ORDER_TYPE_SCORE)) {
-//            throw new GlobalException("积分商品,无法退款");
-//        }
+
         if (Objects.equals(orderRefundParam.getRefundType(), RefundType.ALL.value()) && (!Objects.isNull(order.getRefundStatus()) && !Objects.equals(order.getRefundStatus(), RefundStatusEnum.DISAGREE.value()))) {
             throw new GlobalException("该订单已有商品正在退款中,不能再进行整单退款");
         }
 
-// 已支付订单取消订单,已付款后需要相应处理物流状态
-//        if(StringUtils.isNotEmpty(order.getDvyFlowId())){
-//            OrderDetailRequest orderDetailRequest = new OrderDetailRequest();
-//            orderDetailRequest.setOrder_id(order.getDvyFlowId());
-//            orderDetailRequest.setOrigin_id(orderRefundParam.getOrderNumber());
-//            OrderStatusResponse orderStatusResponse = paoTuiApi.deliveryRoute(orderDetailRequest);
-//            if (ObjectUtil.isNotEmpty(orderStatusResponse.getInfo()) && orderStatusResponse.getInfo().size()>0){
-//                if(orderStatusResponse.getInfo().get(0).getStatus()==40){
-//                    throw new GlobalException("正在配送中,无法取消");
-//                }else if(orderStatusResponse.getInfo().get(0).getStatus()<40){
-//                    //        //先取消配送订单
-//                    CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
-//                    cancelOrderRequest.setOrder_id(order.getDvyFlowId());
-//                    cancelOrderRequest.setOrigin_id(orderRefundParam.getOrderNumber());
-//                    cancelOrderRequest.setCancel_reason_code(3);
-//                    cancelOrderRequest.setCancel_reason("不想要了");
-//                    CancelOrderRequest cancelOrderRequest1 = paoTuiApi.orderCancel(cancelOrderRequest);
-//                }
-//            }
-//        }
         // 生成退款单信息
         OrderRefund newOrderRefund = new OrderRefund();
 
@@ -481,7 +442,7 @@ public class OrderRefundController {
         newOrderRefund.setReturnMoneySts(ReturnMoneyStsType.APPLY.value());
         newOrderRefund.setApplyTime(new Date());
         newOrderRefund.setUpdateTime(new Date());
-        newOrderRefund.setFreightAmount(order.getFreightAmount());
+        newOrderRefund.setFreightAmount(orderRefundParam.getFreightAmount());
         newOrderRefund.setOffsetPoints(order.getOffsetPoints()==null?0:order.getOffsetPoints());
         OrderRefund orderRefund = orderRefundService.applyRefund(newOrderRefund);
         if (!orderRefundSkuList.isEmpty()){

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/OrderRefundParam.java

@@ -82,5 +82,7 @@ public class OrderRefundParam {
     @ApiModelProperty(value = "退款商品详情")
     private List<OrderRefundSku> orderRefundSkuList;
 
+    @ApiModelProperty(value = "订单运费")
+    private Double freightAmount;
 
 }

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/OrderRefundDto.java

@@ -96,4 +96,6 @@ public class OrderRefundDto extends OrderRefund implements Serializable {
 
     private Long offsetPoints;
 
+    private Double goodsTotal;
+
 }

+ 3 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/OrderItem.java

@@ -186,5 +186,8 @@ public class OrderItem implements Serializable {
     @TableField(exist = false)
     private Integer productCount;
 
+    @TableField(exist = false)
+    private Double goodsTotal;
+
 
 }

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

@@ -60,14 +60,11 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private final RefundDeliveryService refundDeliveryService;
     private final OrderSettlementService orderSettlementService;
     private final OrderSettlementMapper orderSettlementMapper;
-
     private final ShopDetailService shopDetailService;
-
     private final ShopWalletMapper shopWalletMapper;
     private final OrderMapper orderMapper;
     private final MapperFacade mapperFacade;
     private final ShopWalletLogService shopWalletLogService;
-
     private final ApplicationContext applicationContext;
     private final PayManagerService payManagerService;
     private final Snowflake snowflake;
@@ -219,7 +216,6 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                 refundParam.setRefundDateToString(DateUtil.formatDate(refundParam.getRefundDate()));
                 refundNewList.add(refundParam);
             }
-
         }
         return refundNewList;
     }
@@ -293,7 +289,11 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     }
 
     private void getRefundTypeByOrderItem2(OrderRefundDto orderRefundDto) {
-        orderRefundDto.setOrderItems(orderItemService.getRefundTypeByOrderItem2(orderRefundDto.getRefundId()));
+        List<OrderItem> item = orderItemService.getRefundTypeByOrderItem2(orderRefundDto.getRefundId());
+        if (!item.isEmpty()){
+            orderRefundDto.setGoodsTotal(item.get(0).getGoodsTotal());
+        }
+        orderRefundDto.setOrderItems(item);
     }
 
 

+ 1 - 1
yami-shop-service/src/main/resources/mapper/OrderItemMapper.xml

@@ -49,7 +49,7 @@
     </select>
 
     <select id="getRefundTypeByOrderItem2" resultType="com.yami.shop.bean.model.OrderItem">
-        SELECT a.product_count,b.* FROM tz_order_refund_sku a
+        SELECT a.product_count,b.*,(a.product_count * b.price) goods_total FROM tz_order_refund_sku a
         LEFT JOIN tz_order_item b on a.order_item_id=b.order_item_id
         where a.order_refund_id=#{refundId}
     </select>