update 对接lianlian平台

This commit is contained in:
2024-04-18 14:15:44 +08:00
parent c76cbf3c07
commit 8f7b7d994e
14 changed files with 333 additions and 118 deletions

View File

@@ -148,7 +148,7 @@ public class LianLianServiceImpl implements LianLianService {
// 组装联联平台所需要的数据格式
StationInfo info = StationInfo.builder()
.stationID("LC" +dto.getStationId())
.stationID("LC" + dto.getStationId())
.operatorID(operatorId)
// .equipmentOwnerID(Constants.OPERATORID_LIANLIAN)
.stationName(pileStationInfo.getStationName())

View File

@@ -10,11 +10,11 @@ import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO;
import com.jsowell.pile.thirdparty.CommonParamsDTO;
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
import com.jsowell.thirdparty.lianlian.vo.LianLianResultVO;
import com.jsowell.thirdparty.platform.util.Cryptos;
import com.jsowell.thirdparty.platform.util.Encodes;
import com.jsowell.thirdparty.platform.util.GBSignUtils;
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
import com.jsowell.thirdparty.lianlian.vo.LianLianResultVO;
import java.nio.charset.StandardCharsets;
import java.util.Date;

View File

@@ -820,7 +820,7 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService {
.map(PileInfoVO::getSpeedType)
.collect(Collectors.toSet());
vo.setOperatorId(Constants.OPERATORID_LIANLIAN);
vo.setStationId(stationId);
vo.setStationId("LC" + stationId);
for (String equipmentType : equipmentTypeList) {
for (BillingPriceVO billingPriceVO : billingPriceVOList) {

View File

@@ -14,7 +14,6 @@ import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
import com.jsowell.common.enums.ykc.BillingTimeTypeEnum;
import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.JWTUtils;
import com.jsowell.common.util.PageUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.OrderBasicInfo;
@@ -25,7 +24,6 @@ import com.jsowell.pile.dto.QueryEquipChargeStatusDTO;
import com.jsowell.pile.dto.QueryOperatorInfoDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.thirdparty.CommonParamsDTO;
import com.jsowell.pile.thirdparty.EquipmentInfo;
import com.jsowell.pile.util.MerchantUtils;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
@@ -37,7 +35,6 @@ import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.thirdparty.lianlian.domain.ConnectorChargeStatusInfo;
import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo;
import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo;
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
import com.jsowell.thirdparty.lianlian.vo.QueryChargingStatusVO;
import com.jsowell.thirdparty.platform.ThirdPartyPlatformService;
import com.jsowell.thirdparty.platform.neimenggu.domain.ChargeOrderInfo;
@@ -98,49 +95,49 @@ public class NeiMengGuPlatformServiceImpl implements ThirdPartyPlatformService {
* @param dto
* @return
*/
@Override
public Map<String, String> queryToken(CommonParamsDTO dto) {
AccessTokenVO vo = new AccessTokenVO();
// 0:成功1:失败
int succStat = 0;
// 0:无1:无此对接平台2:密钥错误; 399:自定义
int failReason = 0;
String operatorId = dto.getPlatformID();
// 通过operatorId 查出 operatorSecret
ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(operatorId);
if (platformConfig == null) {
failReason = 1;
succStat = 1;
} else {
String operatorSecret = platformConfig.getOperatorSecret();
String dataSecret = platformConfig.getDataSecret();
String dataSecretIv = platformConfig.getDataSecretIv();
// 解密data 获取参数中的OperatorSecret
String decrypt = Cryptos.decrypt(dto.getData(), dataSecret, dataSecretIv);
String inputOperatorSecret = null;
if (StringUtils.isNotBlank(decrypt)) {
inputOperatorSecret = JSON.parseObject(decrypt).getString("PlatformSecret");
}
// 对比密钥
if (!StringUtils.equals(operatorSecret, inputOperatorSecret)) {
failReason = 1;
succStat = 1;
} else {
// 生成token
String token = JWTUtils.createToken(operatorId, operatorSecret, JWTUtils.ttlMillis);
vo.setAccessToken(token);
vo.setTokenAvailableTime((int) (JWTUtils.ttlMillis / 1000));
}
}
// 组装返回参数
vo.setPlatformId(operatorId);
vo.setFailReason(failReason);
vo.setSuccStat(succStat);
Map<String, String> resultMap = ThirdPartyPlatformUtils.generateResultMap(vo, platformConfig);
return resultMap;
}
// @Override
// public Map<String, String> queryToken(CommonParamsDTO dto) {
// AccessTokenVO vo = new AccessTokenVO();
// // 0:成功1:失败
// int succStat = 0;
// // 0:无1:无此对接平台2:密钥错误; 399:自定义
// int failReason = 0;
//
// String operatorId = dto.getPlatformID();
// // 通过operatorId 查出 operatorSecret
// ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(operatorId);
// if (platformConfig == null) {
// failReason = 1;
// succStat = 1;
// } else {
// String operatorSecret = platformConfig.getOperatorSecret();
// String dataSecret = platformConfig.getDataSecret();
// String dataSecretIv = platformConfig.getDataSecretIv();
// // 解密data 获取参数中的OperatorSecret
// String decrypt = Cryptos.decrypt(dto.getData(), dataSecret, dataSecretIv);
// String inputOperatorSecret = null;
// if (StringUtils.isNotBlank(decrypt)) {
// inputOperatorSecret = JSON.parseObject(decrypt).getString("PlatformSecret");
// }
// // 对比密钥
// if (!StringUtils.equals(operatorSecret, inputOperatorSecret)) {
// failReason = 1;
// succStat = 1;
// } else {
// // 生成token
// String token = JWTUtils.createToken(operatorId, operatorSecret, JWTUtils.ttlMillis);
// vo.setAccessToken(token);
// vo.setTokenAvailableTime((int) (JWTUtils.ttlMillis / 1000));
// }
// }
// // 组装返回参数
// vo.setPlatformId(operatorId);
// vo.setFailReason(failReason);
// vo.setSuccStat(succStat);
//
// Map<String, String> resultMap = ThirdPartyPlatformUtils.generateResultMap(vo, platformConfig);
// return resultMap;
// }
/**
* 查询运营商信息 query_operator_info

View File

@@ -3,11 +3,13 @@ package com.jsowell.thirdparty.platform.util;
import com.alibaba.fastjson2.JSON;
import com.google.common.collect.Maps;
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Component
public class ThirdPartyPlatformUtils {
/**

View File

@@ -0,0 +1,73 @@
package com.jsowell.thirdparty.platform.zhongdianlian.service;
import com.alibaba.fastjson2.JSON;
import com.jsowell.common.util.JWTUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
import com.jsowell.pile.service.ThirdPartyPlatformConfigService;
import com.jsowell.pile.thirdparty.CommonParamsDTO;
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
import com.jsowell.thirdparty.platform.ThirdPartyPlatformService;
import com.jsowell.thirdparty.platform.util.Cryptos;
import com.jsowell.thirdparty.platform.util.ThirdPartyPlatformUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class ZhongDianLianPlatformServiceImpl implements ThirdPartyPlatformService {
@Autowired
private ThirdPartyPlatformConfigService thirdPartyPlatformConfigService;
/**
* query_token 获取token提供给第三方平台使用
*
* @param dto
* @return
*/
@Override
public Map<String, String> queryToken(CommonParamsDTO dto) {
AccessTokenVO vo = new AccessTokenVO();
// 0:成功1:失败
int succStat = 0;
// 0:无1:无此对接平台2:密钥错误; 399:自定义
int failReason = 0;
String operatorId = StringUtils.isNotBlank(dto.getOperatorID()) ? dto.getOperatorID() : dto.getPlatformID();
// 通过operatorId 查出 operatorSecret
ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(operatorId);
if (platformConfig == null) {
failReason = 1;
succStat = 1;
} else {
String operatorSecret = platformConfig.getOperatorSecret();
String dataSecret = platformConfig.getDataSecret();
String dataSecretIv = platformConfig.getDataSecretIv();
// 解密data 获取参数中的OperatorSecret
String decrypt = Cryptos.decrypt(dto.getData(), dataSecret, dataSecretIv);
String inputOperatorSecret = null;
if (StringUtils.isNotBlank(decrypt)) {
inputOperatorSecret = JSON.parseObject(decrypt).getString("PlatformSecret");
}
// 对比密钥
if (!StringUtils.equals(operatorSecret, inputOperatorSecret)) {
failReason = 1;
succStat = 1;
} else {
// 生成token
String token = JWTUtils.createToken(operatorId, operatorSecret, JWTUtils.ttlMillis);
vo.setAccessToken(token);
vo.setTokenAvailableTime((int) (JWTUtils.ttlMillis / 1000));
}
}
// 组装返回参数
vo.setPlatformId(operatorId);
vo.setFailReason(failReason);
vo.setSuccStat(succStat);
Map<String, String> resultMap = ThirdPartyPlatformUtils.generateResultMap(vo, platformConfig);
return resultMap;
}
}