|  | @@ -44,6 +44,7 @@ import com.yami.shop.service.OrderItemService;
 | 
	
		
			
				|  |  |  import com.yami.shop.service.OrderRefundService;
 | 
	
		
			
				|  |  |  import com.yami.shop.service.OrderService;
 | 
	
		
			
				|  |  |  import com.yami.shop.service.OrderSettlementService;
 | 
	
		
			
				|  |  | +import com.yami.shop.service.hb.IHBOrderService;
 | 
	
		
			
				|  |  |  import lombok.AllArgsConstructor;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.apache.poi.ss.usermodel.Sheet;
 | 
	
	
		
			
				|  | @@ -87,6 +88,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |      private Snowflake snowflake;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private final IHBOrderService hbOrderService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Order getOrderByOrderNumber(String orderNumber) {
 | 
	
		
			
				|  |  |          return orderMapper.getOrderByOrderNumber(orderNumber);
 | 
	
	
		
			
				|  | @@ -106,7 +110,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |      public OrderPayParam getPayUserCountByshopId(Long shopId, Date startTime, Date endTime) {
 | 
	
		
			
				|  |  |          OrderPayParam nowOrderPay = orderMapper.getOrderCountByShopId(shopId, startTime, endTime);
 | 
	
		
			
				|  |  |          StatisticsRefundParam refundParam = orderRefundMapper.getRefundByShopId(shopId, startTime, endTime);
 | 
	
		
			
				|  |  | -        Double onePrice = (nowOrderPay.getPayUserCount() == 0) ? 0 : (Arith.div(nowOrderPay.getPayActualTotal(), nowOrderPay.getPayUserCount(),2));
 | 
	
		
			
				|  |  | +        Double onePrice = (nowOrderPay.getPayUserCount() == 0) ? 0 : (Arith.div(nowOrderPay.getPayActualTotal(), nowOrderPay.getPayUserCount(), 2));
 | 
	
		
			
				|  |  |          if (nowOrderPay.getPayActualTotal() == null) {
 | 
	
		
			
				|  |  |              nowOrderPay.setPayActualTotal(0.00);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -135,10 +139,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          OrderPayParam param = new OrderPayParam();
 | 
	
		
			
				|  |  |          for (int i = 0; i < 24; i++) {
 | 
	
		
			
				|  |  |              if (payMap.get(i) != null) {
 | 
	
		
			
				|  |  | -                sum = Arith.add(sum,payMap.get(i));
 | 
	
		
			
				|  |  | +                sum = Arith.add(sum, payMap.get(i));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (yesterdayPayMap.get(i) != null) {
 | 
	
		
			
				|  |  | -                yesterdaySum = Arith.add(yesterdaySum,yesterdayPayMap.get(i));
 | 
	
		
			
				|  |  | +                yesterdaySum = Arith.add(yesterdaySum, yesterdayPayMap.get(i));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              payYesterdayActualTotal.add(Arith.round(yesterdaySum, 2));
 | 
	
		
			
				|  |  |              nowActualTotal.add(Arith.round(sum, 2));
 | 
	
	
		
			
				|  | @@ -157,9 +161,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          Double sum = 0.00;
 | 
	
		
			
				|  |  |          for (OrderPayParam orderPayParam : actualTotal) {
 | 
	
		
			
				|  |  |              DateTime time = DateTime.of(orderPayParam.getDates(), "yyyy-MM-dd");
 | 
	
		
			
				|  |  | -            if(DateUtil.compare(time,dateTime) > 0){
 | 
	
		
			
				|  |  | -                sum = Arith.add(sum,orderPayParam.getPayActualTotal());
 | 
	
		
			
				|  |  | -                orderPayParam.setOnePrice(Arith.round(sum,2));
 | 
	
		
			
				|  |  | +            if (DateUtil.compare(time, dateTime) > 0) {
 | 
	
		
			
				|  |  | +                sum = Arith.add(sum, orderPayParam.getPayActualTotal());
 | 
	
		
			
				|  |  | +                orderPayParam.setOnePrice(Arith.round(sum, 2));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              actualTotalByDay.add(orderPayParam);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -194,7 +198,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public List<Order> submit(String userId, ShopCartOrderMergerDto mergerOrder) {
 | 
	
	
		
			
				|  | @@ -213,9 +216,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          if (mergerOrder.getIsScorePay() != null && mergerOrder.getIsScorePay() == 1) {
 | 
	
		
			
				|  |  |              eventPublisher.publishEvent(new SubmitScoreOrderEvent(mergerOrder, orderList));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        for (Order order : orderList) {
 | 
	
		
			
				|  |  | +            //推送海博订单
 | 
	
		
			
				|  |  | +            hbOrderService.createOrderAsync(order.getOrderNumber());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          return orderList;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    public static void main(String[] args)  throws Exception{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static void main(String[] args) throws Exception {
 | 
	
		
			
				|  |  |          String json = "{'buyPrice':10,'buyOrder':1}";
 | 
	
		
			
				|  |  |          ObjectMapper om = new ObjectMapper();
 | 
	
		
			
				|  |  |          // 允许单引号(非标准)
 | 
	
	
		
			
				|  | @@ -345,7 +353,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |                  .eq(Order::getOrderId, order.getOrderId())
 | 
	
		
			
				|  |  |                  .eq(Order::getOrderNumber, order.getOrderNumber())
 | 
	
		
			
				|  |  |          );
 | 
	
		
			
				|  |  | -        if (!Objects.equals(orderDb.getStatus(), OrderStatus.UNPAY.value())){
 | 
	
		
			
				|  |  | +        if (!Objects.equals(orderDb.getStatus(), OrderStatus.UNPAY.value())) {
 | 
	
		
			
				|  |  |              throw new GlobalException("订单状态异常,无法更改订单金额");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //减少金额
 | 
	
	
		
			
				|  | @@ -354,45 +362,45 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          double platformAmount = 0.00;
 | 
	
		
			
				|  |  |          Map<Long, OrderItem> collect = order.getOrderItems().stream().collect(Collectors.toMap(OrderItem::getOrderItemId, orderItem -> orderItem));
 | 
	
		
			
				|  |  |          List<OrderItem> orderItemList = orderItemService.list(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, order.getOrderNumber()));
 | 
	
		
			
				|  |  | -        for (OrderItem orderItemDb:orderItemList){
 | 
	
		
			
				|  |  | +        for (OrderItem orderItemDb : orderItemList) {
 | 
	
		
			
				|  |  |              OrderItem orderItem = collect.get(orderItemDb.getOrderItemId());
 | 
	
		
			
				|  |  | -            if (orderItem.getChageAmount() >= orderItemDb.getActualTotal() || orderItem.getChageAmount() < 0){
 | 
	
		
			
				|  |  | +            if (orderItem.getChageAmount() >= orderItemDb.getActualTotal() || orderItem.getChageAmount() < 0) {
 | 
	
		
			
				|  |  |                  throw new GlobalException("订单金额必须大于0,或者数据发生变化(请刷新后重试)");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if (Objects.isNull(orderItem.getChageAmount()) || Objects.equals(orderItem.getChageAmount(),0.00)){
 | 
	
		
			
				|  |  | +            if (Objects.isNull(orderItem.getChageAmount()) || Objects.equals(orderItem.getChageAmount(), 0.00)) {
 | 
	
		
			
				|  |  |                  continue;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //修改平台优惠金额
 | 
	
		
			
				|  |  |              double playformItemAmount = 0.00;
 | 
	
		
			
				|  |  | -            if (orderItemDb.getPlatformShareReduce() > 0){
 | 
	
		
			
				|  |  | +            if (orderItemDb.getPlatformShareReduce() > 0) {
 | 
	
		
			
				|  |  |                  //金额减少比例 = 减少金额  % 总金额
 | 
	
		
			
				|  |  | -                double proportion = Arith.div(orderItem.getChageAmount(),orderItemDb.getProductTotalAmount(),6);
 | 
	
		
			
				|  |  | +                double proportion = Arith.div(orderItem.getChageAmount(), orderItemDb.getProductTotalAmount(), 6);
 | 
	
		
			
				|  |  |                  //平台优惠金额减少金额 = 减少比例 * 原平台优惠金额
 | 
	
		
			
				|  |  | -                playformItemAmount = Arith.round(Arith.mul(proportion,orderItemDb.getPlatformShareReduce()),2);
 | 
	
		
			
				|  |  | +                playformItemAmount = Arith.round(Arith.mul(proportion, orderItemDb.getPlatformShareReduce()), 2);
 | 
	
		
			
				|  |  |                  //平台优惠金额 = 原平台优惠金额 - 对应比例的金额
 | 
	
		
			
				|  |  | -                orderItemDb.setPlatformShareReduce(Arith.sub(orderItemDb.getPlatformShareReduce(),playformItemAmount));
 | 
	
		
			
				|  |  | +                orderItemDb.setPlatformShareReduce(Arith.sub(orderItemDb.getPlatformShareReduce(), playformItemAmount));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //实际金额 = 原实际金额 - 变化金额
 | 
	
		
			
				|  |  | -            orderItemDb.setActualTotal(Arith.sub(orderItemDb.getActualTotal(),orderItem.getChageAmount()));
 | 
	
		
			
				|  |  | +            orderItemDb.setActualTotal(Arith.sub(orderItemDb.getActualTotal(), orderItem.getChageAmount()));
 | 
	
		
			
				|  |  |              //总优惠金额 = 变化金额 + 原总优惠金额
 | 
	
		
			
				|  |  | -            orderItemDb.setShareReduce(Arith.add(orderItem.getChageAmount(),orderItemDb.getShareReduce()));
 | 
	
		
			
				|  |  | +            orderItemDb.setShareReduce(Arith.add(orderItem.getChageAmount(), orderItemDb.getShareReduce()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            amount = Arith.add(amount,orderItem.getChageAmount());
 | 
	
		
			
				|  |  | -            platformAmount = Arith.add(platformAmount,playformItemAmount);
 | 
	
		
			
				|  |  | +            amount = Arith.add(amount, orderItem.getChageAmount());
 | 
	
		
			
				|  |  | +            platformAmount = Arith.add(platformAmount, playformItemAmount);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          orderItemService.updateBatchById(orderItemList);
 | 
	
		
			
				|  |  |          OrderSettlement orderSettlement = orderSettlementService.getOne(new LambdaQueryWrapper<OrderSettlement>().eq(OrderSettlement::getOrderNumber, order.getOrderNumber()));
 | 
	
		
			
				|  |  |          //修改订单信息
 | 
	
		
			
				|  |  | -        orderDb.setActualTotal(Arith.sub(orderDb.getActualTotal(),amount));
 | 
	
		
			
				|  |  | -        orderDb.setReduceAmount(Arith.add(orderDb.getReduceAmount(),amount));
 | 
	
		
			
				|  |  | -        orderDb.setPlatformAmount(Arith.sub(orderDb.getPlatformAmount(),platformAmount));
 | 
	
		
			
				|  |  | +        orderDb.setActualTotal(Arith.sub(orderDb.getActualTotal(), amount));
 | 
	
		
			
				|  |  | +        orderDb.setReduceAmount(Arith.add(orderDb.getReduceAmount(), amount));
 | 
	
		
			
				|  |  | +        orderDb.setPlatformAmount(Arith.sub(orderDb.getPlatformAmount(), platformAmount));
 | 
	
		
			
				|  |  |          //初始化
 | 
	
		
			
				|  |  |          amount = 0.00;
 | 
	
		
			
				|  |  |          // 计算运费变化金额
 | 
	
		
			
				|  |  | -        if(!Objects.equals(orderDb.getFreightAmount(),order.getFreightAmount())){
 | 
	
		
			
				|  |  | -            amount = Arith.add(amount,Arith.sub(order.getFreightAmount(),orderDb.getFreightAmount()));
 | 
	
		
			
				|  |  | +        if (!Objects.equals(orderDb.getFreightAmount(), order.getFreightAmount())) {
 | 
	
		
			
				|  |  | +            amount = Arith.add(amount, Arith.sub(order.getFreightAmount(), orderDb.getFreightAmount()));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        orderDb.setActualTotal(Arith.add(orderDb.getActualTotal(),amount));
 | 
	
		
			
				|  |  | +        orderDb.setActualTotal(Arith.add(orderDb.getActualTotal(), amount));
 | 
	
		
			
				|  |  |          orderSettlement.setPayAmount(orderDb.getActualTotal());
 | 
	
		
			
				|  |  |          orderSettlementService.updateById(orderSettlement);
 | 
	
		
			
				|  |  |          //修改运费信息
 | 
	
	
		
			
				|  | @@ -435,7 +443,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |              mergeIfNeed(writer, firstRow, lastRow, ++col, col, addr.getReceiver());
 | 
	
		
			
				|  |  |              // "手机"
 | 
	
		
			
				|  |  |              mergeIfNeed(writer, firstRow, lastRow, ++col, col, addr.getMobile());
 | 
	
		
			
				|  |  | -            addrInfo=(StringUtils.isEmpty(addr.getAddress())?"":addr.getAddress())+(StringUtils.isEmpty(addr.getAddressName())?"":addr.getAddressName())+(StringUtils.isEmpty(addr.getAddrDetail())?"":addr.getAddrDetail());
 | 
	
		
			
				|  |  | +            addrInfo = (StringUtils.isEmpty(addr.getAddress()) ? "" : addr.getAddress()) + (StringUtils.isEmpty(addr.getAddressName()) ? "" : addr.getAddressName()) + (StringUtils.isEmpty(addr.getAddrDetail()) ? "" : addr.getAddrDetail());
 | 
	
		
			
				|  |  |              // "收货地址"
 | 
	
		
			
				|  |  |              mergeIfNeed(writer, firstRow, lastRow, ++col, col, addrInfo);
 | 
	
		
			
				|  |  |              int prodNameCol = ++col;
 | 
	
	
		
			
				|  | @@ -454,15 +462,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |              // 订单实付
 | 
	
		
			
				|  |  |              mergeIfNeed(writer, firstRow, lastRow, ++col, col, dbOrder.getActualTotal());
 | 
	
		
			
				|  |  |              //订单状态
 | 
	
		
			
				|  |  | -            String[] statusValue = {"","待付款","待发货","待收货","待评价","成功","失败","待成团",""};
 | 
	
		
			
				|  |  | +            String[] statusValue = {"", "待付款", "待发货", "待收货", "待评价", "成功", "失败", "待成团", ""};
 | 
	
		
			
				|  |  |              String status = statusValue[dbOrder.getStatus()];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              String refundStatus = "";
 | 
	
		
			
				|  |  | -            String[] refundStatusValue = {"","申请退款","退款成功","退款成功","退款失败"};
 | 
	
		
			
				|  |  | +            String[] refundStatusValue = {"", "申请退款", "退款成功", "退款成功", "退款失败"};
 | 
	
		
			
				|  |  |              mergeIfNeed(writer, firstRow, lastRow, ++col, col, status);
 | 
	
		
			
				|  |  | -            if (!Objects.isNull(dbOrder.getRefundStatus())){
 | 
	
		
			
				|  |  | +            if (!Objects.isNull(dbOrder.getRefundStatus())) {
 | 
	
		
			
				|  |  |                  refundStatus = refundStatusValue[dbOrder.getRefundStatus()];
 | 
	
		
			
				|  |  | -            }else {
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  |                  refundStatus = "暂无售后";
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              mergeIfNeed(writer, firstRow, lastRow, ++col, col, refundStatus);
 | 
	
	
		
			
				|  | @@ -477,24 +485,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Order getOrderDetailByOrderNumberAndShopId(String orderNumber, Long shopId) {
 | 
	
		
			
				|  |  | -        return orderMapper.getOrderDetailByOrderNumberAndShopId(orderNumber,shopId);
 | 
	
		
			
				|  |  | +        return orderMapper.getOrderDetailByOrderNumberAndShopId(orderNumber, shopId);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Map<Long, Integer> getOrderItemMap(Long orderId) {
 | 
	
		
			
				|  |  |          List<OrderRefund> orderRefunds = orderRefundMapper.selectList(new LambdaQueryWrapper<OrderRefund>()
 | 
	
		
			
				|  |  |                  .eq(OrderRefund::getOrderId, orderId)
 | 
	
		
			
				|  |  | -                .lt(OrderRefund::getReturnMoneySts,6)
 | 
	
		
			
				|  |  | -                .gt(OrderRefund::getReturnMoneySts,0)
 | 
	
		
			
				|  |  | +                .lt(OrderRefund::getReturnMoneySts, 6)
 | 
	
		
			
				|  |  | +                .gt(OrderRefund::getReturnMoneySts, 0)
 | 
	
		
			
				|  |  |          );
 | 
	
		
			
				|  |  |          Map<Long, Integer> map = Maps.newHashMap();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for (OrderRefund orderRefund:orderRefunds){
 | 
	
		
			
				|  |  | -            if (orderRefund.getRefundType() == 1){
 | 
	
		
			
				|  |  | -                map.put(0L,orderRefund.getReturnMoneySts());
 | 
	
		
			
				|  |  | +        for (OrderRefund orderRefund : orderRefunds) {
 | 
	
		
			
				|  |  | +            if (orderRefund.getRefundType() == 1) {
 | 
	
		
			
				|  |  | +                map.put(0L, orderRefund.getReturnMoneySts());
 | 
	
		
			
				|  |  |                  return map;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            map.put(orderRefund.getOrderItemId(),orderRefund.getReturnMoneySts());
 | 
	
		
			
				|  |  | +            map.put(orderRefund.getOrderItemId(), orderRefund.getReturnMoneySts());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return map;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -512,7 +520,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |  //        String userId = SecurityUtils.getUser().getUserId();
 | 
	
		
			
				|  |  |          // 获取订单信息
 | 
	
		
			
				|  |  |  //        Order order = orderService.getOrderByOrderNumberAndUserId(orderRefundParam.getOrderNumber(), userId, true);
 | 
	
		
			
				|  |  | -        Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNumber,orderRefundParam.getOrderNumber()));
 | 
	
		
			
				|  |  | +        Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNumber, orderRefundParam.getOrderNumber()));
 | 
	
		
			
				|  |  |          if (!Objects.equals(order.getIsPayed(), 1)) {
 | 
	
		
			
				|  |  |              throw new GlobalException("当前订单还未付款,无法取消");
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -541,8 +549,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //待收货 -> 整单退款 -> 退款金额 < 订单金额 - 运费金额
 | 
	
		
			
				|  |  |          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){
 | 
	
		
			
				|  |  | +            Double refundAmount = Arith.sub(order.getActualTotal(), order.getFreightAmount());
 | 
	
		
			
				|  |  | +            if (orderRefundParam.getRefundAmount() > refundAmount) {
 | 
	
		
			
				|  |  |                  throw new GlobalException("退款金额已超出订单金额,无法申请");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -550,10 +558,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          if (!checkRefundDate(order)) {
 | 
	
		
			
				|  |  |              throw new GlobalException("当前订单已确认收货超过" + Constant.MAX_FINALLY_REFUND_TIME + "天,无法退款");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (Objects.equals(order.getOrderType(),Constant.ORDER_TYPE_SCORE)) {
 | 
	
		
			
				|  |  | +        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()))) {
 | 
	
		
			
				|  |  | +        if (Objects.equals(orderRefundParam.getRefundType(), RefundType.ALL.value()) && (!Objects.isNull(order.getRefundStatus()) && !Objects.equals(order.getRefundStatus(), RefundStatusEnum.DISAGREE.value()))) {
 | 
	
		
			
				|  |  |              throw new GlobalException("该订单已有商品正在退款中,不能再进行整单退款");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 生成退款单信息
 | 
	
	
		
			
				|  | @@ -563,7 +571,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          List<OrderRefund> orderRefunds = orderRefundMapper.getProcessingOrderRefundByOrderId(order.getOrderId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          for (OrderRefund orderRefund : orderRefunds) {
 | 
	
		
			
				|  |  | -            if (Objects.equals(RefundType.ALL.value(),orderRefund.getRefundType())) {
 | 
	
		
			
				|  |  | +            if (Objects.equals(RefundType.ALL.value(), orderRefund.getRefundType())) {
 | 
	
		
			
				|  |  |                  throw new GlobalException("该订单正在进行整单退款,无法进行新的退款操作");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (Objects.equals(orderRefund.getOrderItemId(), orderRefundParam.getOrderItemId())) {
 | 
	
	
		
			
				|  | @@ -591,7 +599,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |              boolean isCanRefund = false;
 | 
	
		
			
				|  |  |              //  查看是否有支付金额和积分都为空的订单,有则抛出异常
 | 
	
		
			
				|  |  |              for (OrderItem item : orderItemList) {
 | 
	
		
			
				|  |  | -                if(item.getActualTotal() <= 0.0 && item.getUseScore() <= 0.0){
 | 
	
		
			
				|  |  | +                if (item.getActualTotal() <= 0.0 && item.getUseScore() <= 0.0) {
 | 
	
		
			
				|  |  |                      isCanRefund = true;
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -642,23 +650,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          newOrderRefund.setRefundType(orderRefundParam.getRefundType());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          newOrderRefund.setRefundAmount(orderRefundParam.getRefundAmount());
 | 
	
		
			
				|  |  | -        if (Objects.equals(RefundType.ALL.value(),orderRefundParam.getRefundType())) {
 | 
	
		
			
				|  |  | +        if (Objects.equals(RefundType.ALL.value(), orderRefundParam.getRefundType())) {
 | 
	
		
			
				|  |  |              newOrderRefund.setOrderItemId(0L);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              newOrderRefund.setOrderItemId(orderRefundParam.getOrderItemId());
 | 
	
		
			
				|  |  |              // 待发货状态-最后一件商品进行退款,退款金额 =  商品金额 + 订单运费金额
 | 
	
		
			
				|  |  | -            if (Objects.equals(order.getStatus(),OrderStatus.PADYED.value()) && order.getFreightAmount() > 0){
 | 
	
		
			
				|  |  | +            if (Objects.equals(order.getStatus(), OrderStatus.PADYED.value()) && order.getFreightAmount() > 0) {
 | 
	
		
			
				|  |  |                  int orderItenCount = orderItemService.count(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderNumber, order.getOrderNumber()));
 | 
	
		
			
				|  |  | -                if (Objects.equals(orderRefunds.size(),orderItenCount - 1)){
 | 
	
		
			
				|  |  | -                    newOrderRefund.setRefundAmount(Arith.add(newOrderRefund.getRefundAmount(),order.getFreightAmount()));
 | 
	
		
			
				|  |  | +                if (Objects.equals(orderRefunds.size(), orderItenCount - 1)) {
 | 
	
		
			
				|  |  | +                    newOrderRefund.setRefundAmount(Arith.add(newOrderRefund.getRefundAmount(), order.getFreightAmount()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          newOrderRefund.setGoodsNum(orderRefundParam.getGoodsNum());
 | 
	
		
			
				|  |  |          newOrderRefund.setApplyType(orderRefundParam.getApplyType());
 | 
	
		
			
				|  |  | -        if (Objects.equals(orderRefundParam.getApplyType(),2)){
 | 
	
		
			
				|  |  | +        if (Objects.equals(orderRefundParam.getApplyType(), 2)) {
 | 
	
		
			
				|  |  |              newOrderRefund.setIsReceiver(true);
 | 
	
		
			
				|  |  | -        }else {
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  |              newOrderRefund.setIsReceiver(orderRefundParam.getIsReceiver());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          newOrderRefund.setBuyerReason(orderRefundParam.getBuyerReason());
 | 
	
	
		
			
				|  | @@ -706,6 +714,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private void writeExcel(HttpServletResponse response, ExcelWriter writer) {
 | 
	
		
			
				|  |  |          //response为HttpServletResponse对象
 | 
	
		
			
				|  |  |          response.setContentType("application/vnd.ms-excel;charset=utf-8");
 |