Files
jsowell-charger-web/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/NingXiaController.java
2024-05-30 14:17:09 +08:00

218 lines
8.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.jsowell.api.thirdparty;
import com.alibaba.fastjson2.JSON;
import com.jsowell.common.annotation.Anonymous;
import com.jsowell.common.enums.thirdparty.ThirdPartyReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.response.RestApiResponse;
import com.jsowell.pile.dto.PushRealTimeInfoDTO;
import com.jsowell.pile.dto.QueryOperatorInfoDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.thirdparty.CommonParamsDTO;
import com.jsowell.thirdparty.lianlian.common.CommonResult;
import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* 宁夏平台Controller
*/
@Anonymous
@RestController
@RequestMapping("/ningxia")
public class NingXiaController extends ThirdPartyBaseController {
private final String platformName = "宁夏平台";
@Autowired
@Qualifier("ninaXiaPlatformServiceImpl")
private ThirdPartyPlatformService platformLogic;
/**
* 获取token接口
* http://localhost:8080/evcs/v1/query_token
*/
@PostMapping("/v1/query_token")
public CommonResult<?> queryToken(@RequestBody CommonParamsDTO dto) {
logger.info("{}-请求令牌 params:{}", platformName, JSON.toJSONString(dto));
try {
Map<String, String> map = platformLogic.queryToken(dto);
logger.info("{}-请求令牌 result:{}", platformName, JSON.toJSONString(map));
return CommonResult.success(0, "请求令牌成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.error("{}- 请求令牌接口 异常", platformName, e);
return CommonResult.failed("获取token发生异常");
}
}
/**
* 查询运营商信息
* 接口名称supervise_query_operator_info
* 使用方法:由数据提供方实现此接口,数据需求方调用
* 接口频率:每天一次或多次
* 超时时间120秒
*/
@PostMapping("/v1/supervise_query_operator_info")
public CommonResult<?> queryOperatorInfo(HttpServletRequest request, @RequestBody CommonParamsDTO dto) {
logger.info("{}-查询运营商信息 params:{}", platformName, JSON.toJSONString(dto));
try {
// 校验令牌
boolean verifyToken = verifyToken(request.getHeader("Authorization"));
if (!verifyToken) {
// 校验失败
return CommonResult.failed(ThirdPartyReturnCodeEnum.TOKEN_ERROR);
}
// 校验签名
if (!verifySignature(dto)) {
// 签名错误
return CommonResult.failed(ThirdPartyReturnCodeEnum.SIGN_ERROR);
}
// 解析入参
QueryOperatorInfoDTO paramDTO = parseParamsDTO(dto, QueryOperatorInfoDTO.class);
// 执行逻辑
Map<String, String> map = platformLogic.queryOperatorInfo(paramDTO);
logger.info("{}-查询运营商信息 result:{}", platformName, JSON.toJSONString(map));
return CommonResult.success(0, "操作成功!", map.get("Data"), map.get("Sig"));
} catch (BusinessException e) {
return CommonResult.failed(Integer.parseInt(e.getCode()), e.getMessage());
} catch (Exception e) {
logger.error("{}-查询运营商信息 异常", platformName, e);
return CommonResult.failed("查询运营商信息发生异常");
}
}
/**
* 查询充换电站信息
* 接口名称: supervise_query_stations_info
* 使用方法:由数据提供方实现此接口,数据需求方调用
* 接口频率:每天一次或多次
* 超时时间120秒
*/
@PostMapping("/v1/supervise_query_stations_info")
public CommonResult<?> queryStationsInfo(HttpServletRequest request, @RequestBody CommonParamsDTO dto) {
logger.info("{}-查询运营商信息 params:{}", platformName, JSON.toJSONString(dto));
try {
// 校验令牌
boolean verifyToken = verifyToken(request.getHeader("Authorization"));
if (!verifyToken) {
// 校验失败
return CommonResult.failed(ThirdPartyReturnCodeEnum.TOKEN_ERROR);
}
// 校验签名
if (!verifySignature(dto)) {
// 签名错误
return CommonResult.failed(ThirdPartyReturnCodeEnum.SIGN_ERROR);
}
QueryStationInfoDTO paramDTO = parseParamsDTO(dto, QueryStationInfoDTO.class);
Map<String, String> map = platformLogic.queryStationsInfo(paramDTO);
logger.info("{}-查询运营商信息 result:{}", platformName, JSON.toJSONString(map));
return CommonResult.success(0, "请求令牌成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.error("{}-查询运营商信息 异常", platformName, e);
return CommonResult.failed("查询运营商信息发生异常");
}
}
/**
* 查询充换电站状态信息
* supervise_query_station_status
*/
@PostMapping("/v1/supervise_query_station_status")
public CommonResult<?> queryStationStatus(HttpServletRequest request, @RequestBody CommonParamsDTO dto) {
logger.info("{}-查询充换电站状态信息 params:{}", platformName, JSON.toJSONString(dto));
try {
// 校验令牌
if (!verifyToken(request.getHeader("Authorization"))) {
// 校验失败
return CommonResult.failed(ThirdPartyReturnCodeEnum.TOKEN_ERROR);
}
// 校验签名
if (!verifySignature(dto)) {
// 签名错误
return CommonResult.failed(ThirdPartyReturnCodeEnum.SIGN_ERROR);
}
// 解析入参
QueryStationInfoDTO paramDTO = parseParamsDTO(dto, QueryStationInfoDTO.class);
// 执行逻辑
Map<String, String> map = platformLogic.queryStationStatus(paramDTO);
logger.info("{}-查询充换电站状态信息 result:{}", platformName, JSON.toJSONString(map));
return CommonResult.success(0, "查询充换电站状态信息成功!", map.get("Data"), map.get("Sig"));
} catch (Exception e) {
logger.error("{}-查询充换电站状态信息异常", platformName, e);
return CommonResult.failed("查询充换电站状态信息发生异常");
}
}
/**
* 推送充电设备接口状态信息
* @param dto
* @return
*/
@PostMapping("/v1/supervise_notification_station_status")
public RestApiResponse<?> superviseNotificationStationStatus(@RequestBody PushRealTimeInfoDTO dto) {
RestApiResponse<?> response = null;
String result = null;
try {
result = platformLogic.notificationStationStatus(dto);
response = new RestApiResponse<>(result);
} catch (Exception e) {
logger.error("宁夏平台推送充电设备接口状态信息 error", e);
return new RestApiResponse<>(e);
}
logger.info("宁夏平台推送充电设备接口状态信息 result:{}", result);
return response;
}
/**
* 推送充电状态信息
* @param dto
* @return
*/
@GetMapping("/v1/supervise_notification_equip_charge_status/{orderCode}")
public RestApiResponse<?> superviseNotificationEquipChargeStatus(@PathVariable("orderCode") String orderCode) {
RestApiResponse<?> response = null;
String result = null;
try {
result = platformLogic.notificationEquipChargeStatus(orderCode);
response = new RestApiResponse<>(result);
} catch (Exception e) {
logger.error("宁夏平台推送充电状态信息 error", e);
return new RestApiResponse<>(e);
}
logger.info("宁夏平台推送充电状态信息 result:{}", result);
return response;
}
/**
* 推送充电站历史充电订单信息
* @param orderCode
* @return
*/
@GetMapping("/v1/supervise_notification_charge_order_info_history/{orderCode}")
public RestApiResponse<?> notificationChargeOrderInfoHistory(@PathVariable("orderCode") String orderCode) {
RestApiResponse<?> response = null;
String result = null;
try {
result = platformLogic.notificationChargeOrderInfoHistory(orderCode);
response = new RestApiResponse<>(result);
} catch (Exception e) {
logger.error("宁夏平台推送充电站历史充电订单信息 error", e);
return new RestApiResponse<>(e);
}
logger.info("宁夏平台推送充电站历史充电订单信息 result:{}", result);
return response;
}
}