longz
2026-07-15 a3657cc4e9fd9f13e4838db8eebaf914c529beee
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -274,7 +274,10 @@
      Map<String, Object> map = new HashMap<>();
      int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size();
      map.put("number", size);
      query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize());
      Integer pageCurr = query.getPageCurr() == null || query.getPageCurr() < 1 ? 1 : query.getPageCurr();
      Integer pageSize = query.getPageSize() == null || query.getPageSize() < 1 ? 10 : query.getPageSize();
      query.setPageCurr((pageCurr - 1) * pageSize);
      query.setPageSize(pageSize);
      List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize());
      List<MyChargingOrderList> orderLists = new ArrayList<>();
      for (TChargingOrder tChargingOrder : list) {
@@ -282,16 +285,19 @@
         myChargingOrderList.setId(tChargingOrder.getId().toString());
         myChargingOrderList.setSiteId(tChargingOrder.getSiteId());
         myChargingOrderList.setStatus(tChargingOrder.getStatus());
         Site site = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData().get(0);
         myChargingOrderList.setTitle(site.getName());
         Site site = getOrderSite(tChargingOrder.getSiteId());
         myChargingOrderList.setTitle(site == null ? "未知电站" : site.getName());
         myChargingOrderList.setChargingDegree(tChargingOrder.getChargingCapacity());
         String name = chargingGunClient.getAllName(tChargingOrder.getChargingGunId()).getData();
         String name = getChargingGunName(tChargingOrder.getChargingGunId());
         myChargingOrderList.setChargingGunId(tChargingOrder.getChargingGunId());
         myChargingOrderList.setName(name);
         myChargingOrderList.setEndMode(tChargingOrder.getEndMode());
         BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
         Integer status = tChargingOrder.getStatus();
         BigDecimal payMoney = status != null && status < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
         myChargingOrderList.setPayMoney(payMoney);
         myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
         if (tChargingOrder.getCreateTime() != null) {
            myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
         }
         long count = orderEvaluateService.count(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderType, 1)
               .eq(TOrderEvaluate::getOrderId, tChargingOrder.getId()).eq(TOrderEvaluate::getDelFlag, 0));
         myChargingOrderList.setEvaluate(count + 1L);
@@ -301,6 +307,23 @@
      map.put("list", orderLists);
      map.put("totle", list.size());
      return map;
   }
   private Site getOrderSite(Integer siteId) {
      if (siteId == null) {
         return null;
      }
      R<List<Site>> result = siteClient.getSiteByIds(Collections.singletonList(siteId));
      List<Site> sites = result == null ? Collections.emptyList() : result.getData();
      return sites == null || sites.isEmpty() ? null : sites.get(0);
   }
   private String getChargingGunName(Integer chargingGunId) {
      if (chargingGunId == null) {
         return "";
      }
      R<String> result = chargingGunClient.getAllName(chargingGunId);
      return result == null || result.getData() == null ? "" : result.getData();
   }
   
   
@@ -510,14 +533,7 @@
        if (order == null || isWhitelistAllFreeOrder(order)) {
            return BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
        }
        BigDecimal thirdPayAmount = money(order.getThirdPayAmount());
        if (thirdPayAmount.compareTo(BigDecimal.ZERO) > 0) {
            return thirdPayAmount;
        }
        if (Integer.valueOf(3).equals(order.getPayMethod())) {
            return money(order.getRechargeAmount());
        }
        return thirdPayAmount;
        return ChargingSimulationSupport.thirdPayAmount(order);
    }
    /**
@@ -1019,8 +1035,7 @@
      BigDecimal electricityFee = money(request.getElectricityFee());
      BigDecimal serviceFee = money(request.getServiceFee());
      BigDecimal simulationTotal = electricityFee.add(serviceFee).setScale(2, RoundingMode.HALF_UP);
      BigDecimal availableAmount = money(order.getChargeAmount()).compareTo(BigDecimal.ZERO) > 0
            ? money(order.getChargeAmount()) : money(order.getRechargeAmount());
      BigDecimal availableAmount = ChargingSimulationSupport.availableAmount(order);
      if (simulationTotal.compareTo(availableAmount) > 0) {
         throw new ServiceException("模拟消费金额不能超过订单可消费金额" + availableAmount.toPlainString() + "元");
      }
@@ -1060,7 +1075,6 @@
      TChargingOrder order = this.getOne(new LambdaQueryWrapper<TChargingOrder>()
            .eq(TChargingOrder::getAppUserId, userId)
            .eq(TChargingOrder::getChargingGunId, gunId)
            .eq(TChargingOrder::getSourceName, "ICBC")
            .eq(TChargingOrder::getRechargePaymentStatus, 2)
            .in(TChargingOrder::getStatus, Arrays.asList(2, 3, 4))
            .eq(TChargingOrder::getDelFlag, 0)
@@ -1068,7 +1082,7 @@
            .orderByDesc(TChargingOrder::getId)
            .last("limit 1"));
      if (order == null) {
         throw new ServiceException("当前枪没有属于你的可模拟ICBC已支付订单");
         throw new ServiceException("当前枪没有属于你的可模拟已支付订单");
      }
      return order;
   }
@@ -1078,12 +1092,21 @@
      result.setOrderId(order.getId());
      result.setOrderCode(order.getCode());
      result.setOrderStatus(order.getStatus());
      result.setPaymentMode(ChargingSimulationSupport.paymentMode(order));
      result.setPayMethod(order.getPayMethod());
      result.setRechargePaymentType(order.getRechargePaymentType());
      result.setSourceName(order.getSourceName());
      result.setRechargeAmount(order.getRechargeAmount());
      result.setChargeAmount(order.getChargeAmount());
      result.setAvailableAmount(ChargingSimulationSupport.availableAmount(order));
      result.setBalancePayAmount(order.getBalancePayAmount());
      result.setThirdPayAmount(order.getThirdPayAmount());
      result.setElectricityFee(order.getElectrovalence());
      result.setServiceFee(order.getServiceCharge());
      result.setPaymentAmount(order.getPaymentAmount());
      result.setRefundAmount(order.getRefundAmount());
      result.setBalanceRefundAmount(order.getBalanceRefundAmount());
      result.setThirdRefundAmount(order.getThirdRefundAmount());
      result.setRefundStatus(order.getRefundStatus());
      result.setIcbcOrderId(order.getRechargeSerialNumber());
      TChargingOrderShareRecord shareRecord = chargingOrderShareRecordMapper.selectOne(
@@ -1093,6 +1116,14 @@
                  .eq(TChargingOrderShareRecord::getDelFlag, false)
                  .orderByDesc(TChargingOrderShareRecord::getId)
                  .last("limit 1"));
      if (shareRecord == null) {
         shareRecord = chargingOrderShareRecordMapper.selectOne(
               new LambdaQueryWrapper<TChargingOrderShareRecord>()
                     .eq(TChargingOrderShareRecord::getChargingOrderId, order.getId())
                     .eq(TChargingOrderShareRecord::getDelFlag, false)
                     .orderByDesc(TChargingOrderShareRecord::getId)
                     .last("limit 1"));
      }
      if (shareRecord != null) {
         result.setShareAmount(shareRecord.getShareAmount());
         result.setShareStatus(shareRecord.getOnlineShareStatus());