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.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.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; 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 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 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 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 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("查询充换电站状态信息发生异常"); } } }