无关风月
2025-04-16 580568e9fc54fab8459023c4647d509d7fff3fec
ruoyi-service/ruoyi-integration/src/test/java/com/ruoyi/integration/RuoYiIntegrationApplicationTests.java
@@ -1,6 +1,11 @@
package com.ruoyi.integration;
import com.alibaba.fastjson2.JSON;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
@@ -12,14 +17,19 @@
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.barrierGate.model.CloudParkingOrder;
import com.ruoyi.integration.barrierGate.server.ParkingOrderService;
import com.ruoyi.integration.drainage.AESUtil;
import com.ruoyi.integration.drainage.TCECSuperviseUtil;
import com.ruoyi.integration.drainage.model.*;
import com.ruoyi.integration.drainage.util.AesEncryption;
import com.ruoyi.integration.drainage.util.HMacMD5Util;
import com.ruoyi.integration.drainage.util.SequenceGenerator;
import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.order.api.dto.ChargingStatisticeDTO;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.other.api.domain.Operator;
import com.ruoyi.other.api.feignClient.OperatorClient;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -37,7 +47,7 @@
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiIntegrationApplication.class)
public class RuoYiIntegrationApplicationTests {
   @Resource
@@ -382,4 +392,53 @@
      return connectorInfos;
   }
   private final static String query_token = "/query_token";
   private static final String OperatorID = "MA01H3BQ2";
   private static final String OperatorSecret = "f1331ef0b37c2d1b";
   private static final String SigSecret = "a6fedf0e1b27d6f7";
   private static final String DataSecret = "50a61b93919c9604";
   private static final String DataSecretIV = "7c8ac6861661d584";
   private final static String url = "https://dev-gov-hlht-sc.unievbj.com/evcs/v1.0.0";
   @Test
   public void test5(){
      HttpRequest post = HttpUtil.createPost(url + query_token);
      JSONObject info = new JSONObject();
      info.put("OperatorID", "906171535");
      info.put("OperatorSecret", OperatorSecret);
      Long timeStamp = Long.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
      post.contentType("application/json;charset=utf-8");
      BaseRequestJianGuan baseRequest = new BaseRequestJianGuan();
      baseRequest.setOperatorID("906171535");
      baseRequest.setTimeStamp(timeStamp+"");
      baseRequest.setSeq("0001");
      String jsonString = JacksonUtils.toJson(info);
      SequenceGenerator generator = new SequenceGenerator();
      String nextSequence = generator.getNextSequence();
      String data = AesEncryption.encrypt(DataSecret, DataSecretIV,jsonString);
      String hmacMD5 = HMacMD5Util.getHMacMD5("906171535",timeStamp+"", data,nextSequence,SigSecret);
      baseRequest.setData(data);
      baseRequest.setSig(hmacMD5);
      String request_json = JacksonUtils.toJson(baseRequest);
      log.info("获取三方平台授权token请求地址:" + post.getUrl());
      log.info("获取三方平台授权token请求参数:" + request_json);
      log.info("获取三方平台授权token请求Data:" + jsonString);
      post.body(request_json);
      HttpResponse execute = post.execute();
      if(200 != execute.getStatus()){
         log.error("获取三方平台授权token失败:" + execute.body());
      }
      log.info("获取三方平台授权token响应参数:" + execute.body());
      BaseResult baseResult = com.alibaba.fastjson.JSON.parseObject(execute.body(), BaseResult.class);
      Integer Ret = baseResult.getRet();
      if(0 != Ret){
         log.error("获取三方平台授权token失败:" + baseResult.getMsg());
      }
      //解密参数
      String decrypt = AESUtil.decrypt(baseResult.getData(), DataSecret, DataSecretIV);
      log.info("获取三方平台授权token响应Data:" + decrypt);
      QueryTokenResult queryTokenResult = JSON.parseObject(decrypt, QueryTokenResult.class);
      String token = queryTokenResult.getAccessToken();
//      Long tokenAvailableTime = LocalDateTime.now().toEpochSecond(ZoneOffset.UTC) + queryTokenResult.getTokenAvailab
      System.err.println(token);
   }
}