Pu Zhibing
2025-02-06 708c121dafd545fd4f7caded0c7e29506be378c1
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -3,7 +3,6 @@
import com.alibaba.fastjson.JSON;
import com.ruoyi.chargingPile.api.feignClient.*;
import com.ruoyi.chargingPile.api.model.*;
import com.ruoyi.chargingPile.api.vo.GetParkingRecord;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.utils.StringUtils;
@@ -21,11 +20,16 @@
import com.ruoyi.other.api.domain.Operator;
import com.ruoyi.other.api.feignClient.OperatorClient;
import com.ruoyi.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
@@ -41,6 +45,7 @@
 * @author zhibing.pu
 * @Date 2025/1/21 17:52
 */
@Slf4j
@RestController
@RequestMapping("/evcs/v1.0")
public class TCECController {
@@ -101,7 +106,10 @@
      baseResult.setTimeStamp(mapKey);
      baseResult.setSeq(String.format("%04d", integer));
      //清空小于当前时间的map中的无效数据
      for (Long k : map.keySet()) {
      Set<Long> set = map.keySet();
      Iterator<Long> iterator = set.iterator();
      while (iterator.hasNext()){
         Long k = iterator.next();
         if(k <= (mapKey - 10)){
            map.remove(k);
         }
@@ -136,6 +144,7 @@
      }
      
      Operator operator = r.getData();
      baseResult.setOperator(operator);
      baseRequest.setOperator(operator);
      //校验签名
      String sign = TCECUtil.buildSign(baseRequest);
@@ -144,7 +153,6 @@
         baseResult.setMsg("签名校验失败");
         return baseResult;
      }
      baseResult.setOperator(operator);
      return baseResult;
   }
   
@@ -161,7 +169,7 @@
      BaseResult baseResult = requestCheck(false, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      QueryTokenResult queryTokenResult = new QueryTokenResult();
@@ -171,9 +179,9 @@
         queryTokenResult.setFailReason(1);
         //参数加密
         String jsonString = JSON.toJSONString(queryTokenResult);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      
@@ -185,9 +193,9 @@
         queryTokenResult.setFailReason(2);
         //参数加密
         String jsonString = JSON.toJSONString(queryTokenResult);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      
@@ -202,9 +210,9 @@
      queryTokenResult.setTokenAvailableTime(expires_in * 60);
      //参数加密
      String jsonString = JSON.toJSONString(queryTokenResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -222,7 +230,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -246,9 +254,9 @@
      queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
      //参数加密
      String jsonString = JSON.toJSONString(queryStationsInfoResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -493,7 +501,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -550,9 +558,9 @@
      result.setStationStatusInfos(StationStatusInfos);
      //参数加密
      String jsonString = JSON.toJSONString(result);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -570,7 +578,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -620,9 +628,9 @@
      result.setStationStats(stationStats);
      //参数加密
      String jsonString = JSON.toJSONString(result);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -637,7 +645,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -687,9 +695,9 @@
      }
      //参数加密
      String jsonString = JSON.toJSONString(queryEquipAuthResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -705,7 +713,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -726,9 +734,9 @@
         baseResult.setMsg("connectorID 参数无效");
         //参数加密
         String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
@@ -743,9 +751,9 @@
         queryEquipBusinessPolicyResult.setSumPeriod(0);
         //参数加密
         String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      List<PolicyInfo> PolicyInfos = new ArrayList<>();
@@ -760,9 +768,9 @@
      queryEquipBusinessPolicyResult.setPolicyInfos(PolicyInfos);
      //参数加密
      String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -820,7 +828,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -843,9 +851,9 @@
         result.setStartChargeSeqStat(5);
         //参数加密
         String jsonString = JSON.toJSONString(result);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      //设备离线
@@ -855,9 +863,9 @@
         result.setStartChargeSeqStat(5);
         //参数加密
         String jsonString = JSON.toJSONString(result);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      //调用充电接口
@@ -876,9 +884,9 @@
         result.setStartChargeSeqStat(2);
         //参数加密
         String jsonString = JSON.toJSONString(result);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      result.setStartChargeSeqStat(1);
@@ -886,9 +894,9 @@
      result.setFailReason(0);
      //参数加密
      String jsonString = JSON.toJSONString(result);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -948,7 +956,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -959,9 +967,9 @@
      QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(queryEquipChargeStatus.getStartChargeSeq());
      //参数加密
      String jsonString = JSON.toJSONString(queryEquipChargeStatusResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -1123,7 +1131,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -1143,16 +1151,16 @@
         queryStopChargeResult.setFailReason(3);
         //参数加密
         String jsonString = JSON.toJSONString(queryStopChargeResult);
         String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
         String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
         baseResult.setData(encrypt);
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      //参数加密
      String jsonString = JSON.toJSONString(queryStopChargeResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -1338,7 +1346,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -1352,9 +1360,9 @@
      
      //参数加密
      String jsonString = JSON.toJSONString(queryTerminalCodeResult);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }
   
@@ -1412,7 +1420,7 @@
      BaseResult baseResult = requestCheck(true, baseRequest, request);
      if(0 != baseResult.getRet()){
         baseResult.setData("");
         baseResult.setSig(TCECUtil.buildSign(baseResult));
         baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
         return baseResult;
      }
      Operator operator = baseResult.getOperator();
@@ -1423,9 +1431,9 @@
      QueryChargeOrderInfoResult result = buildQueryChargeOrderInfoResult(queryChargeOrderInfo);
      //参数加密
      String jsonString = JSON.toJSONString(result);
      String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
      String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
      baseResult.setData(encrypt);
      baseResult.setSig(TCECUtil.buildSign(baseResult));
      baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
      return baseResult;
   }