package com.jsowell.api.thirdparty; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.enums.thirdparty.ThirdPartyReturnCodeEnum; import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.response.RestApiResponse; import com.jsowell.common.util.JWTUtils; import com.jsowell.pile.domain.ThirdPartyPlatformConfig; import com.jsowell.pile.dto.PushRealTimeInfoDTO; import com.jsowell.pile.dto.QueryStartChargeDTO; import com.jsowell.pile.dto.QueryStationInfoDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO; import com.jsowell.pile.service.ThirdPartyPlatformConfigService; import com.jsowell.pile.thirdparty.CommonParamsDTO; import com.jsowell.thirdparty.lianlian.common.CommonResult; import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService; import com.jsowell.thirdparty.platform.util.Cryptos; import com.jsowell.thirdparty.platform.util.Encodes; 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.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; /** * 青海平台Controller * * @author Lemon * @Date 2024/4/18 13:46:26 */ @Anonymous @RestController @RequestMapping("/qinghai/evcs") public class QingHaiController extends ThirdPartyBaseController { private final String platformName = "青海省平台"; private final String platformType = ThirdPlatformTypeEnum.QING_HAI_PLATFORM.getTypeCode(); @Autowired @Qualifier("qingHaiPlatformServiceImpl") private ThirdPartyPlatformService platformLogic; /** * 获取token接口 * http://localhost:8080/qinghai/evcs/v1/query_token */ @PostMapping("/v1/query_token") public CommonResult queryToken(@RequestBody CommonParamsDTO dto) { try { Map map = platformLogic.queryToken(dto); logger.info("{}-请求令牌, params:{}, result:{}", platformName, JSON.toJSONString(dto), JSON.toJSONString(map)); return CommonResult.success(Integer.parseInt(map.get("Ret")), map.get("Msg"), map.get("Data"), map.get("Sig")); } catch (Exception e) { logger.error("{}-获取token接口, 异常, params:{}", platformName, JSON.toJSONString(dto), e); return CommonResult.failed("获取token发生异常"); } } /** * 查询充电站信息 * @param dto */ @RequestMapping("/v1/query_stations_info") public CommonResult query_stations_info(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 queryStationInfoDTO = parseParamsDTO(dto, QueryStationInfoDTO.class); // 执行逻辑 Map map = platformLogic.queryStationsInfo(queryStationInfoDTO); return CommonResult.success(Integer.parseInt(map.get("Ret")), map.get("Msg"), map.get("Data"), map.get("Sig")); } catch (Exception e) { logger.info("{}-查询充电站信息 error:", platformName, e); } return CommonResult.failed("查询充电站信息发生异常"); } /** * 查询业务策略信息 * @param dto */ @RequestMapping("/v1/query_equip_business_policy") public CommonResult query_equip_business_policy(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); } // 解析入参 QueryStartChargeDTO queryStartChargeDTO = parseParamsDTO(dto, QueryStartChargeDTO.class); // 执行逻辑 Map map = platformLogic.queryEquipBusinessPolicy(queryStartChargeDTO); return CommonResult.success(Integer.parseInt(map.get("Ret")), map.get("Msg"), map.get("Data"), map.get("Sig")); } catch (Exception e) { logger.info("{}-查询业务策略信息 error:", platformName, e); } return CommonResult.failed("查询业务策略信息发生异常"); } /** * 推送站点功率 * @param stationIds * @return */ // @PostMapping("/pushStationPower") // public RestApiResponse pushStationPower(@RequestBody List stationIds) { // RestApiResponse response = null; // try { // String result = qingHaiPlatformServiceImpl.notificationPowerInfo(stationIds); // response = new RestApiResponse<>(result); // }catch (Exception e) { // logger.error("青海平台推送站点功率 error", e); // } // logger.info("青海平台推送站点功率 result:{}", response); // return response; // } /** * 推送设备状态变化 * @param dto * @return */ // @PostMapping("/pushRealTimeInfo") // public RestApiResponse pushStationPower(@RequestBody PushRealTimeInfoDTO dto) { // RestApiResponse response = null; // try { // String result = qingHaiPlatformServiceImpl.notificationStationStatus(dto); // response = new RestApiResponse<>(result); // }catch (Exception e) { // logger.error("青海平台推送设备状态变化 error", e); // } // logger.info("青海平台推送设备状态变化 result:{}", response); // return response; // } /** * 推送充电状态 * @param orderCode * @return */ // @GetMapping("/notificationEquipChargeStatus/{orderCode}") // public RestApiResponse notificationEquipChargeStatus(@PathVariable("orderCode") String orderCode) { // RestApiResponse response = null; // try { // String result = qingHaiPlatformServiceImpl.notificationEquipChargeStatus(orderCode); // response = new RestApiResponse<>(result); // }catch (Exception e) { // logger.error("青海平台推送充电状态 error", e); // } // logger.info("青海平台推送充电状态 result:{}", response); // return response; // } /** * 推送订单 * @param orderCode * @return */ // @GetMapping("/pushOrderInfo/{orderCode}") // public RestApiResponse pushOrderInfo(@PathVariable("orderCode") String orderCode) { // RestApiResponse response = null; // try { // String result = qingHaiPlatformServiceImpl.notificationChargeOrderInfo(orderCode); // response = new RestApiResponse<>(result); // }catch (Exception e) { // logger.error("青海平台推送订单信息 error", e); // } // logger.info("青海平台推送订单信息 result:{}", response); // return response; // } }