新增 中电联推送站点信息数据接口

This commit is contained in:
Lemon
2023-09-14 10:13:50 +08:00
parent 11246b0496
commit 9dd3835ad5
10 changed files with 125 additions and 21 deletions

View File

@@ -1,12 +1,9 @@
package com.jsowell.thirdparty.lianlian.service;
import com.jsowell.pile.dto.*;
import com.jsowell.thirdparty.lianlian.domain.StationStatsInfo;
import com.jsowell.thirdparty.lianlian.dto.CommonParamsDTO;
import com.jsowell.thirdparty.lianlian.vo.*;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
public interface LianLianService {
@@ -21,7 +18,7 @@ public interface LianLianService {
* 根据充电站id推送充电站信息
* @param dto
*/
String pushStationInfo(LianLianPushStationInfoDTO dto);
String pushStationInfo(PushStationInfoDTO dto);
/**
* 联联平台获取充电站信息

View File

@@ -116,7 +116,7 @@ public class LianLianServiceImpl implements LianLianService {
* @param dto
*/
@Override
public String pushStationInfo(LianLianPushStationInfoDTO dto) {
public String pushStationInfo(PushStationInfoDTO dto) {
// String OperatorID = "987654321";
// String SigSecret = "1234567890abcdef"; // 签名秘钥
// String DataSecret = "1234567890abcdef"; // 消息密钥

View File

@@ -1,7 +1,10 @@
package com.jsowell.thirdparty.zhongdianlian.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
@@ -13,6 +16,9 @@ import java.util.List;
* @Date 2023/9/5 14:10
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ZDLStationInfo {
@JSONField(name = "StationID")
private String stationId;

View File

@@ -1,6 +1,9 @@
package com.jsowell.thirdparty.zhongdianlian.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 中电联获取token DTO
@@ -9,6 +12,9 @@ import lombok.Data;
* @Date 2023/9/5 8:42
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ZDLGetTokenDTO {
/**
* 对接平台url地址 不加api名称

View File

@@ -1,5 +1,6 @@
package com.jsowell.thirdparty.zhongdianlian.service;
import com.jsowell.pile.dto.PushStationInfoDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.thirdparty.zhongdianlian.dto.ZDLGetTokenDTO;
@@ -20,6 +21,12 @@ public interface ZDLService {
*/
public String ZDLGetToken(ZDLGetTokenDTO dto);
/**
* 根据充电站id推送充电站信息
* @param dto
*/
String pushStationInfo(PushStationInfoDTO dto);
/**
* 查询站点信息
* @param dto

View File

@@ -6,16 +6,16 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.enums.lianlian.LianLianPileStatusEnum;
import com.jsowell.common.enums.lianlian.StationPaymentEnum;
import com.jsowell.common.enums.ykc.PileStatusEnum;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.PageUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.PileConnectorInfo;
import com.jsowell.pile.domain.PileStationInfo;
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.dto.PushStationInfoDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
import com.jsowell.pile.vo.web.PileModelInfoVO;
import com.jsowell.thirdparty.lianlian.domain.ConnectorInfo;
import com.jsowell.thirdparty.lianlian.domain.EquipmentInfo;
@@ -24,6 +24,7 @@ import com.jsowell.thirdparty.lianlian.service.LianLianService;
import com.jsowell.thirdparty.lianlian.util.Cryptos;
import com.jsowell.thirdparty.lianlian.util.Encodes;
import com.jsowell.thirdparty.lianlian.util.GBSignUtils;
import com.jsowell.thirdparty.lianlian.util.HttpRequestUtil;
import com.jsowell.thirdparty.zhongdianlian.domain.ZDLConnectorInfo;
import com.jsowell.thirdparty.zhongdianlian.domain.ZDLEquipmentInfo;
import com.jsowell.thirdparty.zhongdianlian.domain.ZDLStationInfo;
@@ -66,6 +67,9 @@ public class ZDLServiceImpl implements ZDLService {
@Autowired
private IPileConnectorInfoService pileConnectorInfoService;
@Autowired
private IThirdPartyStationRelationService thirdPartyStationRelationService;
/**
* 获取令牌
* @param dto
@@ -80,6 +84,83 @@ public class ZDLServiceImpl implements ZDLService {
dto.getOperatorSecret(), dto.getDataSecretIv(), dto.getSignSecret(), dto.getDataSecret());
}
/**
* 根据充电站id推送充电站信息
* @param dto
*/
@Override
public String pushStationInfo(PushStationInfoDTO dto) {
// 通过id查询站点相关信息
PileStationInfo pileStationInfo = pileStationInfoService.selectPileStationInfoById(dto.getStationId());
// 通过站点id查询相关配置信息
ThirdPartyStationRelation relation = new ThirdPartyStationRelation();
relation.setStationId(dto.getStationId());
ThirdPartyStationRelationVO relationInfo = thirdPartyStationRelationService.selectRelationInfo(relation);
// ThirdPartySettingInfo settingInfo = thirdPartySettingInfoService.getInfoByStationId(dto.getStationId());
if (relationInfo == null) {
// 新增
relation.setThirdPartyType(dto.getThirdPartyType());
thirdPartyStationRelationService.insertThirdPartyStationRelation(relation);
relationInfo = thirdPartyStationRelationService.selectRelationInfo(relation);
}
String operatorId = relationInfo.getOperatorId();
String operatorSecret = relationInfo.getOperatorSecret();
String signSecret = relationInfo.getSignSecret();
String dataSecret = relationInfo.getDataSecret();
String dataSecretIv = relationInfo.getDataSecretIv();
String urlAddress = relationInfo.getUrlAddress();
// 组装联联平台所需要的数据格式
ZDLStationInfo info = ZDLStationInfo.builder()
.stationId("ZDL" +dto.getStationId())
.operatorId(operatorId)
.equipmentOwnerId(Constants.OPERATORID_LIANLIAN)
.stationName(pileStationInfo.getStationName())
.countryCode(pileStationInfo.getCountryCode())
.areaCode(pileStationInfo.getAreaCode())
.address(pileStationInfo.getAddress())
.serviceTel(pileStationInfo.getStationTel())
.stationType(Integer.valueOf(pileStationInfo.getStationType()))
.stationStatus(Integer.valueOf(pileStationInfo.getStationStatus()))
.parkNums(Integer.valueOf(pileStationInfo.getParkNums()))
.stationLng(new BigDecimal(pileStationInfo.getStationLng()))
.stationLat(new BigDecimal(pileStationInfo.getStationLat()))
.construction(Integer.valueOf(pileStationInfo.getConstruction()))
.build();
List<ZDLEquipmentInfo> pileList = getPileList(pileStationInfo);
if (CollectionUtils.isNotEmpty(pileList)) {
info.setEquipmentInfos(pileList); // 充电设备信息列表
}
// 调用中电联平台接口
String url = urlAddress + "notification_stationInfo";
String jsonStr = JSONObject.toJSONString(info);
JSONObject data = new JSONObject();
data.put("StationInfo", jsonStr);
String jsonString = JSONObject.toJSONString(data);
System.out.println("jsonString : " + jsonString);
// 获取令牌
ZDLGetTokenDTO tokenDTO = ZDLGetTokenDTO.builder()
.urlAddress(urlAddress)
.operatorId(operatorId)
.operatorSecret(operatorSecret)
.dataSecret(dataSecret)
.dataSecretIv(dataSecretIv)
.signSecret(signSecret)
.build();
String token = ZDLGetToken(tokenDTO);
String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret
, dataSecretIv, operatorId, signSecret);
// System.out.println(result);
return result;
}
/**
* 查询站点信息
* @return