|  | @@ -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;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 获取分页对象
 | 
	
		
			
				|  |  |       */
 | 
	
	
		
			
				|  | @@ -114,14 +114,14 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
 | 
	
		
			
				|  |  |          // 如果是单项退款,且订单状态为待发货,则判断退款操作是否可以取消
 | 
	
		
			
				|  |  |          if (orderRefundDto.getRefundType().equals(RefundType.SINGLE.value()) && orderRefundDto.getStatus().equals(OrderStatus.PADYED.value())) {
 | 
	
		
			
				|  |  |              Integer orderRefundNums = orderRefundMapper.getOrderRefundCountByRefundSn(orderRefundDto.getRefundSn());
 | 
	
		
			
				|  |  | -            Integer orderItemNums = orderItemService.count(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderRefundDto.getOrderNumber()));
 | 
	
		
			
				|  |  | +            int orderItemNums = orderItemService.count(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, orderRefundDto.getOrderNumber()));
 | 
	
		
			
				|  |  |              //订单退款项等于订单项(多个订单项) -> 该订单已全部进行退款申请 -> 不能进行取消退款操作
 | 
	
		
			
				|  |  |              if (orderItemNums > 1 && orderRefundNums.equals(orderItemNums)) {
 | 
	
		
			
				|  |  |                  orderRefundDto.setIsCancel(false);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          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());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //推送商家审核状态后 同步退款单状态
 |