Pu Zhibing
3 天以前 a878aac2cc6d82a870056d8fd2bf7584fa4659ca
添加定时退款功能
10个文件已修改
391 ■■■■ 已修改文件
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/RuoYiOrderApplicationTests.java 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -1250,9 +1250,10 @@
        if(data.size() > 0){
            BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
            queryEquipChargeStatusResult.setElecMoney(totalElectricity);
            queryEquipChargeStatusResult.setSeviceMoney(serviceCharge);
            queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount());
            queryEquipChargeStatusResult.setTotalMoney(totalMoney);
        }else if(null != chargingOrder.getRechargeAmount() && null != chargingOrder.getResidualAmount()){
            queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
            queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO);
@@ -1505,11 +1506,12 @@
        
        List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
        if(data.size() > 0){
            BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN));
            notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN));
            notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount());
            BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
            BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
            BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
            notificationChargeOrderInfo.setTotalElecMoney(totalElectricity);
            notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge);
            notificationChargeOrderInfo.setTotalMoney(totalMoney);
        }else{
            notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
            notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO);
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
@@ -227,6 +227,7 @@
     * @return
     */
    public static NotificationChargeOrderInfoResult notificationChargeOrderInfo(Operator operator, NotificationChargeOrderInfo info){
        System.out.println("推送充电订单信息:--->" + JSON.toJSONString(info));
        HttpRequest post = HttpUtil.createPost(operator.getUrl() + InterfaceUrlEnum.NOTIFICATION_CHARGE_ORDER_INFO.getUrl());
        buildBody(post, info, operator);
        HttpResponse execute = post.execute();
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java
@@ -1193,9 +1193,10 @@
        if(data.size() > 0){
            BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
            queryEquipChargeStatusResult.setElecMoney(totalElectricity);
            queryEquipChargeStatusResult.setSeviceMoney(serviceCharge);
            queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount());
            queryEquipChargeStatusResult.setTotalMoney(totalMoney);
        }else{
            queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
            queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO);
@@ -1443,11 +1444,12 @@
        
        List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
        if(data.size() > 0){
            BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN));
            notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN));
            notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount());
            BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
            BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
            BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
            notificationChargeOrderInfo.setTotalElecMoney(totalElectricity);
            notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge);
            notificationChargeOrderInfo.setTotalMoney(totalMoney);
        }else{
            notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
            notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO);
ruoyi-service/ruoyi-order/pom.xml
@@ -166,6 +166,15 @@
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson-spring-boot-starter</artifactId>
            <version>3.16.8</version>
        </dependency>
    </dependencies>
    <build>
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -10,6 +10,7 @@
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.order.api.vo.ChargingOrderListVO;
import com.ruoyi.order.api.vo.ChargingOrderVO;
import com.ruoyi.order.api.vo.TChargingOrderVo;
import com.ruoyi.order.dto.*;
import com.ruoyi.order.vo.OrderCountByDate;
import org.apache.ibatis.annotations.Mapper;
@@ -147,4 +148,25 @@
    List<OrderCountByDate> countOrdersByDate(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime,@Param("gunIds")List<Integer> gunIds);
    BigDecimal getSumDegreeBySiteIds(@Param("siteIds") List<Integer> siteIds);
    /**
     * 获取启动失败且时间超过1小时的订单
     * @return
     */
    List<TChargingOrder> findFailedStartupOrder();
    /**
     * 获取停止中的数据
     * @return
     */
    List<TChargingOrder> findStoppedOrder();
    /**
     * 获取充电中的订单
     * @return
     */
    List<TChargingOrder> findChargingOrder();
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -330,4 +330,23 @@
    R<StatisticsOfBatteryVO> getStatisticsOfBattery();
    BigDecimal getSumDegreeBySiteIds(List<Integer> siteIds);
    /**
     * 获取启动失败且时间超过1小时的订单
     * @return
     */
    List<TChargingOrder> findFailedStartupOrder();
    /**
     * 获取停止中的数据
     * @return
     */
    List<TChargingOrder> findStoppedOrder();
    /**
     * 获取充电中的数据
     * @return
     */
    List<TChargingOrder> findChargingOrder();
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -51,6 +51,7 @@
import com.ruoyi.order.service.TChargingOrderService;
import com.ruoyi.order.service.TOrderEvaluateService;
import com.ruoyi.order.service.*;
import com.ruoyi.order.util.RedisLock;
import com.ruoyi.order.util.mongodb.service.PlatformStartChargingReplyService;
import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
@@ -71,10 +72,14 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import io.seata.spring.annotation.GlobalTransactional;
import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -221,6 +226,9 @@
    private ITChargingOrderSummaryDataService chargingOrderSummaryDataService;
    @Resource
    private TOrderAppealService orderAppealService;
    @Autowired
    private RedissonClient redissonClient;
@@ -2278,12 +2286,18 @@
     */
    @Override
    public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
        Boolean hasKey = redisService.hasKey("endOrder:" + vo.getTransaction_serial_number());
        if(hasKey){
        RLock lock = redissonClient.getLock("endOrder:" + vo.getTransaction_serial_number());
        boolean tryLock = false;
        try {
            tryLock = lock.tryLock(100, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
            lock.unlock();
            return R.ok();
        }
        //添加1分钟的缓存
        redisService.setCacheObject("endOrder:" + vo.getTransaction_serial_number(), vo.getTransaction_serial_number(), 1L, TimeUnit.MINUTES);
        if(!tryLock){
            return R.ok();
        }
        try {
            TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
            if(null == chargingOrder){
@@ -2763,7 +2777,7 @@
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            redisService.deleteObject("endOrder:" + vo.getTransaction_serial_number());
            lock.unlock();
        }
        return R.ok();
    }
@@ -4279,4 +4293,34 @@
        return this.baseMapper.getSumDegreeBySiteIds(siteIds);
    }
    /**
     * 获取启动失败且时间超过1小时的订单
     * @return
     */
    @Override
    public List<TChargingOrder> findFailedStartupOrder() {
        return this.baseMapper.findFailedStartupOrder();
    }
    /**
     * 获取停止中的数据
     * @return
     */
    @Override
    public List<TChargingOrder> findStoppedOrder() {
        return this.baseMapper.findStoppedOrder();
    }
    /**
     * 获取充电中的数据
     * @return
     */
    @Override
    public List<TChargingOrder> findChargingOrder() {
        return this.baseMapper.findChargingOrder();
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -1,15 +1,29 @@
package com.ruoyi.order.util.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson2.util.UUIDUtils;
import com.alibaba.nacos.common.utils.UuidUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.TransactionRecord;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.TChargingBill;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TChargingOrderRefund;
import com.ruoyi.order.api.vo.TransactionRecordMessageVO;
import com.ruoyi.order.service.TChargingBillService;
import com.ruoyi.order.service.TChargingOrderRefundService;
import com.ruoyi.order.service.TChargingOrderService;
import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.core.util.UuidUtil;
import org.apache.poi.util.StringUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.context.ApplicationListener;
@@ -31,6 +45,7 @@
 * @author zhibing.pu
 * @date 2023/7/11 8:39
 */
@Slf4j
@Component
public class TaskUtil implements ApplicationListener<WebServerInitializedEvent> {
@@ -41,9 +56,81 @@
    @Resource
    private TChargingOrderService chargingOrderService;
    
    @Resource
    private TChargingOrderRefundService chargingOrderRefundService;
    @Resource
    private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
    @Resource
    private TransactionRecordService transactionRecordService;
    private Integer port = null;
    //十分钟循环执行的定时任务
    @Scheduled(fixedRate = 1000 * 60 * 10)
    public void taskTenMinutes() {
        if(null != port && port == 5400){
            List<TChargingOrder> failedStartupOrder = chargingOrderService.findFailedStartupOrder();
            log.info("定时任务执行,查询到启动失败的订单数量:{}", failedStartupOrder.size());
            for (TChargingOrder order : failedStartupOrder) {
                //查询是否有充电信息
                List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode());
                log.info("充电实时数据:{}", JSON.toJSONString(dataByOrderCode));
                //没有充电数据,则执行退款
                if(null == dataByOrderCode || dataByOrderCode.isEmpty()){
                    log.info("定时任务执行,查询到启动失败的订单,执行退款:{}", order.getCode());
                    chargingOrderService.refund(order.getCode());
                    int num = 0;
                    while (true){
                        TChargingOrderRefund one = chargingOrderRefundService.getOne(new LambdaQueryWrapper<TChargingOrderRefund>().eq(TChargingOrderRefund::getChargingOrderId, order.getId()));
                        if(null != one && 2 == one.getRefundStatus()){
                            order.setStatus(-1);
                            chargingOrderService.updateById(order);
                            break;
                        }
                        try {
                            Thread.sleep(5000);
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                        num++;
                        if(num > 10){
                            break;
                        }
                    }
                }
            }
            //处理退款中的数据
            List<TChargingOrder> stoppedOrder = chargingOrderService.findStoppedOrder();
            log.info("定时任务执行,查询到停止中的订单数量:{}", stoppedOrder.size());
            for (TChargingOrder order : stoppedOrder) {
                TransactionRecord one = transactionRecordService.findOne(order.getCode());
                if(null != one){
                    log.info("定时任务执行,查询到停止中的订单账单数据:{}", JSON.toJSONString(one));
                    TransactionRecordMessageVO vo = new TransactionRecordMessageVO();
                    BeanUtils.copyProperties(one, vo);
                    R r = chargingOrderService.endChargeBillingCharge(vo);
                    log.info("定时任务执行,停止中的订单处理结果:{}", JSON.toJSONString(r));
                }
            }
            //处理状态为充电中,但硬件已完成的订单
            List<TChargingOrder> chargingOrder = chargingOrderService.findChargingOrder();
            log.info("定时任务执行,查询到充电中的订单数量:{}", chargingOrder.size());
            for (TChargingOrder order : chargingOrder) {
                TransactionRecord one = transactionRecordService.findOne(order.getCode());
                if(null != one && StringUtils.isNotEmpty(one.getResult())){
                    log.info("定时任务执行,查询到充电中的订单账单数据:{}", JSON.toJSONString(one));
                    TransactionRecordMessageVO vo = new TransactionRecordMessageVO();
                    BeanUtils.copyProperties(one, vo);
                    R r = chargingOrderService.endChargeBillingCharge(vo);
                    log.info("定时任务执行,充电中的订单处理结果:{}", JSON.toJSONString(r));
                }
            }
        }
    }
    @Scheduled(cron = "0 0 0 2 * ?")
    public void taskMonth() {
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -1774,4 +1774,56 @@
        </foreach>
    </select>
    <select id="findFailedStartupOrder" resultType="com.ruoyi.order.api.model.TChargingOrder">
        SELECT
            *
        FROM
            t_charging_order
        WHERE
            `status` = 2
          AND recharge_payment_status = 2
          AND recharge_serial_number IS NOT NULL
          AND NOW() >= ADDDATE( pay_time, INTERVAL 60 MINUTE )
          AND del_flag = 0
          AND order_source = 1
          AND id NOT IN (
            SELECT
                charging_order_id
            FROM
                t_charging_order_refund)
    </select>
    <select id="findStoppedOrder" resultType="com.ruoyi.order.api.model.TChargingOrder">
        SELECT
            *
        FROM
            t_charging_order
        WHERE
            `status` = 4
          AND NOW() >= ADDDATE(end_time, INTERVAL 10 MINUTE )
          AND del_flag = 0
          AND id NOT IN (
            SELECT
                charging_order_id
            FROM
                t_charging_order_refund)
    </select>
    <select id="findChargingOrder" resultType="com.ruoyi.order.api.model.TChargingOrder">
        SELECT
            *
        FROM
            t_charging_order
        WHERE
            `status` = 3
          AND del_flag = 0
          AND id NOT IN (
            SELECT
                charging_order_id
            FROM
                t_charging_order_refund)
    </select>
</mapper>
ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/RuoYiOrderApplicationTests.java
@@ -8,6 +8,7 @@
//import com.ruoyi.chargingPile.api.model.Site;
//import com.ruoyi.chargingPile.api.model.TChargingGun;
//import com.ruoyi.chargingPile.api.model.TChargingPile;
//import com.ruoyi.common.core.domain.R;
//import com.ruoyi.common.core.web.domain.AjaxResult;
//import com.ruoyi.common.core.web.page.PageInfo;
//import com.ruoyi.common.redis.service.RedisService;
@@ -34,119 +35,37 @@
//import com.ruoyi.payment.api.feignClient.AliPaymentClient;
//import com.ruoyi.payment.api.feignClient.WxPaymentClient;
//import org.junit.jupiter.api.Test;
//import org.redisson.api.RLock;
//import org.redisson.api.RedissonClient;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//
//import javax.annotation.Resource;
//import java.io.PrintWriter;
//import java.math.BigDecimal;
//import java.util.*;
//import java.util.concurrent.TimeUnit;
//
//@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiOrderApplication.class)
//public class RuoYiOrderApplicationTests {
//
//    @Resource
//    private TChargingOrderService chargingOrderService;
//
//    @Resource
//    private ChargingGunClient chargingGunClient;
//    @Resource
//    private TSettlementConfirmMapper tSettlementConfirmMapper;
//
//    @Resource
//    private SiteClient siteClient;
//
//    @Resource
//    private AppUserCarClient appUserCarClient;
//    @Resource
//    private AppUserClient appUserClient;
//
//    @Resource
//    private ChargingPileClient chargingPileClient;
//
//    @Resource
//    private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
//
//    @Resource
//    private TokenService tokenService;
//
//    @Resource
//    private WxPaymentClient wxPaymentClient;
//
//    @Resource
//    private AliPaymentClient aliPaymentClient;
//
//    @Resource
//    private AppCouponClient appCouponClient;
//
//    @Resource
//    private AppUserVipDetailClient appUserVipDetailClient;
//
//    @Resource
//    private RedisService redisService;
//
//    @Resource
//    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
//
//    @Resource
//    private ChargingHandshakeClient chargingHandshakeClient;
//
//    @Resource
//    private SendMessageClient sendMessageClient;
//
//    @Resource
//    private TOrderEvaluateService orderEvaluateService;
//
//    @Resource
//    private AccountingStrategyDetailClient accountingStrategyDetailClient;
//
//    @Resource
//    private AccountingStrategyDetailOrderClient accountingStrategyDetailOrderClient;
//
//    @Resource
//    private AccountingStrategyClient accountingStrategyClient;
//
//    @Resource
//    private PlatformStartChargingReplyClient platformStartChargingReplyClient;
//
//    @Resource
//    private TChargingOrderRefundService chargingOrderRefundService;
//
//    @Resource
//    private PlatformStopChargingReplyClient platformStopChargingReplyClient;
//
//    @Resource
//    private AccountingStrategyOrderService accountingStrategyOrderService;
//
//    @Resource
//    private AccountingStrategyDetailOrderService accountingStrategyDetailOrderService;
//
//    @Resource
//    private InviteUserClient inviteUserClient;
//
//    @Resource
//    private AppUserIntegralChangeClient appUserIntegralChangeClient;
//
//    @Resource
//    private IntegralRuleClient integralRuleClient;
//
//    @Resource
//    private VipClient vipClient;
//
//    @Resource
//    private UserTagClient userTagClient;
//
//    @Resource
//    private AppUserTagClient appUserTagClient;
//
//    @Resource
//    private SecurityDetectionClient securityDetectionClient;
//    @Autowired
//    private RedissonClient redissonClient;
//
//
//    @Test
//    public void test(){
//        PayOrderQueryDto payOrderQueryDto = new PayOrderQueryDto();
//        payOrderQueryDto.setPageCurr(1);
//        payOrderQueryDto.setPageSize(10000999);
//        PageInfo<PayOrderDto> data = chargingOrderService.payOrderQuery(payOrderQueryDto).getData();
//        RLock lock = redissonClient.getLock("endOrder:1234565");
//        boolean tryLock = false;
//        try {
//            tryLock = lock.tryLock(100, TimeUnit.SECONDS);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//            lock.unlock();
//        }
//        if(!tryLock){
//            System.out.println("获取锁失败");
//        }
//        System.out.println("获取锁成功");
//    }
//}