Browse Source

增加退单详情时整单运费

wang 1 day ago
parent
commit
ae2e80e37c

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

@@ -66,6 +66,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private final ShopDetailService shopDetailService;
     private final ShopWalletMapper shopWalletMapper;
     private final OrderMapper orderMapper;
+    private final OrderItemMapper orderItemMapper;
     private final MapperFacade mapperFacade;
     private final ShopWalletLogService shopWalletLogService;
     private final ApplicationContext applicationContext;
@@ -75,7 +76,6 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private final OrderRefundSkuMapper orderRefundSkuMapper;
 
 
-
     /**
      * 获取分页对象
      */
@@ -121,7 +121,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             }
         }
         orderRefundDto.setRecords(orderRefundRecordMapper.selectList(new LambdaQueryWrapper<OrderRefundRecord>()
-                .eq(OrderRefundRecord::getOrderRefundId,orderRefundDto.getRefundId())
+                .eq(OrderRefundRecord::getOrderRefundId, orderRefundDto.getRefundId())
                 .orderByDesc(OrderRefundRecord::getSort)));
         return orderRefundDto;
     }
@@ -296,9 +296,18 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     }
 
     private void getRefundTypeByOrderItem2(OrderRefundDto orderRefundDto) {
+        int oldSum = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+                        .eq(OrderItem::getOrderNumber, orderRefundDto.getOrderNumber())).stream().mapToInt(OrderItem::getProdCount)
+                .sum();
         List<OrderItem> item = orderItemService.getRefundTypeByOrderItem2(orderRefundDto.getRefundId());
-        if (!item.isEmpty()){
-            orderRefundDto.setGoodsTotal(item.stream().map(OrderItem::getGoodsTotal).reduce(0.0, Double::sum));}
+        int newSum = item.stream().mapToInt(OrderItem::getProductCount).sum();
+        if (!item.isEmpty()) {
+            orderRefundDto.setGoodsTotal(item.stream().map(OrderItem::getGoodsTotal).reduce(0.0, Double::sum));
+            if (oldSum == newSum) {
+                //代表全部退,所以需要增加运费显示
+                orderRefundDto.setGoodsTotal(orderRefundDto.getGoodsTotal() + orderRefundDto.getFreightAmount());
+            }
+        }
         orderRefundDto.setOrderItems(item);
     }
 
@@ -943,7 +952,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     //*************************** 售后接口 ***************************
     @Override
     public String createRefundOrder(String channelOrderId, String afterSaleOrder) {
-        log.info("createRefundOrder 退款单推送单号开始channelOrderId:{},afterSaleOrder:{}",channelOrderId,afterSaleOrder);
+        log.info("createRefundOrder 退款单推送单号开始channelOrderId:{},afterSaleOrder:{}", channelOrderId, afterSaleOrder);
         HBBaseReq<Object> build = HBBaseReq.create();
         build.setAppId(hbSignUtil.getAppId());
 
@@ -1002,7 +1011,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             thirdPartyRefundRequest.setOutStationNo(shopDetailByShopId.getHbStationNo());
             thirdPartyRefundRequest.setAfterSaleOrder(orderRefund.getRefundSn());
             thirdPartyRefundRequest.setSaleType(1);//售前售后标 1:售前 2:售后
-            if (order.getHbOrderStatus().equals(OrderStatus.SUCCESS.value())){
+            if (order.getHbOrderStatus().equals(OrderStatus.SUCCESS.value())) {
                 thirdPartyRefundRequest.setSaleType(2);
             }
             thirdPartyRefundRequest.setReason(orderRefund.getBuyerReason());
@@ -1012,7 +1021,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             Integer applyType = orderRefund.getApplyType();
             if (Objects.equals(applyType, 1)) {
                 thirdPartyRefundRequest.setApplyDeal(10);
-            } else if (Objects.equals(applyType, 2)){
+            } else if (Objects.equals(applyType, 2)) {
                 thirdPartyRefundRequest.setApplyDeal(40);
             } else {
                 thirdPartyRefundRequest.setApplyDeal(50);
@@ -1104,9 +1113,9 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                 //审核通过
                 orderRefund.setApplyType(applyDeal);
 
-                if (applyDeal == 1){
+                if (applyDeal == 1) {
                     orderRefund.setReturnMoneySts(ReturnMoneyStsType.SUCCESS.value());
-                }else{
+                } else {
                     //退货退款需要处理二审
                     orderRefund.setReturnMoneySts(ReturnMoneyStsType.CONSIGNMENT.value());
                 }
@@ -1122,7 +1131,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                 orderRefundRecordMapper.insert(orderRefundRecord1);
             }
 
-            if (applyDeal == 1){
+            if (applyDeal == 1) {
                 orderService.returnRefund(orderRefund.getOrderNumber());
             }
             //推送商家审核状态后 同步退款单状态