新增 华为ControllerV2

This commit is contained in:
Lemon
2024-02-19 14:44:45 +08:00
parent 39a224adf8
commit ee3fd24391
4 changed files with 368 additions and 39 deletions

View File

@@ -158,7 +158,7 @@ public class CommonService {
// result = huaWeiService.notificationOperationSystemInfo(dto);
// }
if(StringUtils.equals(ThirdPlatformTypeEnum.HAI_NAN.getCode(), dto.getThirdPartyType())) {
// 华为
// 海南
result = haiNanChargeService.pushStationInfoV2(dto);
}
finalResult.append(result).append("\n");

View File

@@ -56,6 +56,7 @@ import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* 华为Service
@@ -187,26 +188,14 @@ public class HuaweiServiceV2 {
* @param dto
* @return
*/
public String notificationOperationSystemInfo(PushStationInfoDTO dto) {
Long stationId = dto.getStationId();
String type = dto.getThirdPartyType();
// 通过第三方配置类型查询相关配置信息
ThirdPartySettingInfo settingInfo = new ThirdPartySettingInfo();
settingInfo.setType(type);
ThirdPartySettingInfo thirdPartySettingInfo = thirdPartySettingInfoService.selectSettingInfo(settingInfo);
String operatorId = thirdPartySettingInfo.getOperatorId();
String operatorSecret = thirdPartySettingInfo.getOperatorSecret();
String signSecret = thirdPartySettingInfo.getSignSecret();
String dataSecret = thirdPartySettingInfo.getDataSecret();
String dataSecretIv = thirdPartySettingInfo.getDataSecretIv();
String urlAddress = thirdPartySettingInfo.getUrlAddress();
public String notificationOperationSystemInfo(String stationId) {
String requestName = "notification_operation_system_info";
List<HWStationInfo
.EquipmentLogicInfo> equipmentLogicInfos = new ArrayList<>();
// 通过站点id查询站点信息
PileStationVO stationInfo = pileStationInfoService.getStationInfo(String.valueOf(stationId));
PileStationVO stationInfo = pileStationInfoService.getStationInfo(stationId);
if (stationInfo == null) {
return null;
}
@@ -216,18 +205,18 @@ public class HuaweiServiceV2 {
.build();
// 查询桩列表
equipmentLogicInfos = getPileList(String.valueOf(stationId));
equipmentLogicInfos = getPileList(stationId);
hwStationInfo.setEquipmentInfoNum(equipmentLogicInfos.size());
hwStationInfo.setEquipmentLogicInfos(equipmentLogicInfos);
String jsonString = JSONObject.toJSONString(hwStationInfo);
String url = urlAddress + "notification_operation_system_info";
// 获取令牌
String token = getHuaWeiToken();
// 发送请求
String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret);
// String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret);
String result = sendMsg2HuaWei(jsonString, token, requestName);
return result;
}
@@ -498,10 +487,10 @@ public class HuaweiServiceV2 {
String orderCode = IdUtils.getOrderCode();
String startChargeSeq = Constants.OPERATORID_JIANG_SU + "_C" + orderCode;
QueryStartChargeDTO startChargeDTO = new QueryStartChargeDTO();
startChargeDTO.setOperatorId(dto.getOperatorId());
startChargeDTO.setOperatorId(ThirdPartyOperatorIdEnum.HUA_WEI.getOperatorId());
startChargeDTO.setStartChargeSeq(startChargeSeq);
startChargeDTO.setConnectorID(dto.getConnectorID());
startChargeDTO.setAccountBalance(dto.getMoneyLimit());
startChargeDTO.setConnectorID(pileConnectorCode);
startChargeDTO.setAccountBalance(chargeAmount);
Map<String, Object> map = orderBasicInfoService.generateOrderForThirdParty(startChargeDTO);
if (map == null) {
@@ -570,7 +559,7 @@ public class HuaweiServiceV2 {
* @param startChargeSeq 订单号
*/
public QueryChargeStatusVO queryChargeStatus(String startChargeSeq) {
String requestName = "query_equip_auth";
String requestName = "query_equip_charge_status";
// 拼装参数
JSONObject jsonObject = new JSONObject();
@@ -821,6 +810,31 @@ public class HuaweiServiceV2 {
}
/**
* 下发计费策略响应
* @param dto
* @return
*/
public Map<String, String> receiveDeliverEquipBusinessPolicyResult(DeliverBusinessPolicyResponseDTO dto) {
List<DeliverBusinessPolicyResponseDTO.ChargePolicyInfoRet> chargePolicyInfoRets = dto.getChargePolicyInfoRets();
// 将下发失败的进行筛选、收集
List<DeliverBusinessPolicyResponseDTO.ChargePolicyInfoRet> failedList = chargePolicyInfoRets.stream()
.filter(x -> x.getSuccStat() == Constants.one) // 1-失败
.collect(Collectors.toList());
for (DeliverBusinessPolicyResponseDTO.ChargePolicyInfoRet chargePolicyInfoRet : failedList) {
log.error("华为下发计费策略响应, 枪口:{} 下发计费策略失败, 失败原因:{}", chargePolicyInfoRet.getConnectorID(), chargePolicyInfoRet.getFailReason());
// TODO 重新下发
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("SuccStat", 0);
jsonObject.put("FailReason", 0);
Map<String, String> resultMap = getResultMap(jsonObject);
return resultMap;
}
/**
* 获取华为配置信息
* @return