|
@@ -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()){
|