luodangjia
2024-10-25 3457d7d8aa8b20f807a59456223952c0aa46901e
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1283,8 +1283,8 @@
         chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
         chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
         BigDecimal bigDecimal = new BigDecimal("0.006");
         if (chargingOrderListVO.getServiceCharge()!=null){
            chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getServiceCharge().multiply(bigDecimal));
         if (chargingOrderListVO.getOrderAmount()!=null){
            chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal));
         }
         chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount());
         chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
@@ -1500,8 +1500,8 @@
      chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
      BigDecimal bigDecimal = new BigDecimal("0.006");
      if (chargingOrder.getServiceCharge()!=null){
         chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getServiceCharge().multiply(bigDecimal));
      if (chargingOrder.getOrderAmount()!=null){
         chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getOrderAmount().multiply(bigDecimal));
      }
      chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence());
      chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge());
@@ -1865,7 +1865,7 @@
      
      //开始将优惠券优惠的金额添加到明细中
      BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
      if(couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
      if(null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
         List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
         for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
            BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
@@ -2043,7 +2043,7 @@
   }
   @Override
   public Long getAver(List<Integer> siteIds) {
   public Double getAver(List<Integer> siteIds) {
      return this.baseMapper.getAver(siteIds);
   }
@@ -2061,6 +2061,11 @@
   public R payRefund(PayOrderRefundDto payOrderQueryDto) {
         if (payOrderQueryDto.getType()==1){
            TChargingOrder tChargingOrder = this.baseMapper.selectById(payOrderQueryDto.getOrderId());
            if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){
               return R.fail("退款金额需小于支付金额");
            }
            TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
            chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
            chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
@@ -2122,6 +2127,9 @@
         }
         if (payOrderQueryDto.getType()==2){
            TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
            if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){
               return R.fail("退款金额需小于支付金额");
            }
            TShoppingOrderRefund chargingOrderRefund = new TShoppingOrderRefund();
            chargingOrderRefund.setShoppingOrderId(tChargingOrder.getId());
            chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
@@ -2171,6 +2179,10 @@
                  tChargingOrder.setRefundStatus(2);
                  tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
                  if (payOrderQueryDto.getRefundAmount().compareTo(tChargingOrder.getPaymentAmount())==0){
                     tChargingOrder.setStatus(5);
                  }
                  shoppingOrderService.updateById(tChargingOrder);
                  shoppingOrderRefundService.save(chargingOrderRefund);
@@ -2290,10 +2302,10 @@
         }
         if (tChargingOrder.getRefundStatus()!=null &&tChargingOrder.getRefundStatus() == 2){
            // 如果成功退款 那么减去退款金额
            paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()));
            paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
         }else{
            if (tChargingOrder.getPaymentAmount()!=null){
               paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
               paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
            }
         }
      }
@@ -2301,8 +2313,8 @@
      commissionAmount = sharingAmount.multiply(new BigDecimal("0.006"));
      // 订单手续费 订单支付金额 - 退款金额*0.6%
      orderCommission = paymentAmount.multiply(new BigDecimal("0.006"));
      tSettlementConfirm.setSharingAmount(sharingAmount);
      tSettlementConfirm.setCommissionAmount(commissionAmount);
      tSettlementConfirm.setSharingAmount(sharingAmount.setScale(2, RoundingMode.HALF_DOWN));
      tSettlementConfirm.setCommissionAmount(commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
      tSettlementConfirm.setElectrovalence(electrovalence);
      // 服务费=总服务费-三费收费-交易手续费-交易手续费-服务费会员抵扣-服务费优惠券抵扣
      tSettlementConfirm.setServiceCharge(serviceCharge.subtract(commissionAmount).subtract(sharingAmount).subtract(orderCommission).subtract(vipDiscount).subtract(couponDiscount));
@@ -2664,4 +2676,9 @@
      info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second));
      return info;
   }
   @Override
   public Long countNoTag() {
      return this.baseMapper.countNoTag();
   }
}