diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/lianlian/LianLianController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/lianlian/LianLianController.java index 9e99a21fb..04084951c 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/lianlian/LianLianController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/lianlian/LianLianController.java @@ -4,22 +4,23 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; -import com.jsowell.common.enums.ykc.ReturnCodeEnum; -import com.jsowell.common.exception.BusinessException; -import com.jsowell.common.response.RestApiResponse; import com.jsowell.common.util.JWTUtils; -import com.jsowell.common.util.StringUtils; -import com.jsowell.pile.dto.*; -import com.jsowell.thirdparty.lianlian.common.CommonResult; +import com.jsowell.pile.domain.ThirdPartyPlatformConfig; +import com.jsowell.pile.dto.QueryStationInfoDTO; +import com.jsowell.pile.service.ThirdPartyPlatformConfigService; import com.jsowell.pile.thirdparty.CommonParamsDTO; -import com.jsowell.thirdparty.lianlian.service.LianLianService; +import com.jsowell.thirdparty.lianlian.common.CommonResult; import com.jsowell.thirdparty.lianlian.util.Cryptos; import com.jsowell.thirdparty.lianlian.util.Encodes; +import com.jsowell.thirdparty.platform.ThirdPartyPlatformService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +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.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.util.Map; @@ -34,454 +35,15 @@ import java.util.Map; @RequestMapping("/LianLian") public class LianLianController extends BaseController { + // @Autowired + // private LianLianService lianLianService; + @Autowired - private LianLianService lianLianService; + @Qualifier("lianLianPlatformServiceImpl") + private ThirdPartyPlatformService lianLianService; - /** - * 推送充电站信息 notification_stationInfo - * http://localhost:8080/LianLian/pushStationInfo - * @param dto - * @return - */ - // @PostMapping("/pushStationInfo") - // public RestApiResponse pushStationInfo(@RequestBody PushStationInfoDTO dto) { - // logger.info("推送联联平台充电站信息 params:{}", JSON.toJSONString(dto)); - // RestApiResponse response = null; - // try { - // if (StringUtils.isBlank(String.valueOf(dto.getStationId()))) { - // throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); - // } - // lianLianService.pushStationInfo(dto); - // response = new RestApiResponse<>(); - // }catch (BusinessException e) { - // logger.error("推送联联平台充电站信息 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // }catch (Exception e) { - // logger.error("推送联联平台充电站信息 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("推送联联平台充电站信息 result:{}", response); - // return response; - // } - - - /** - * 联联平台设备状态变化推送 - * http://localhost:8080/LianLian/pushStationStatus - * @param dto - * @return - */ - @PostMapping("/pushStationStatus") - public RestApiResponse pushStationStatus(@RequestBody PushInfoParamDTO dto) { - logger.info("联联平台设备状态变化推送 params:{}", JSON.toJSONString(dto)); - RestApiResponse response = null; - try { - if (StringUtils.isBlank(String.valueOf(dto.getPileConnectorCode())) || - StringUtils.isBlank(String.valueOf(dto.getStatus()))) { - throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); - } - String result = lianLianService.pushConnectorStatus(dto.getPileConnectorCode(), dto.getStatus()); - response = new RestApiResponse<>(result); - }catch (BusinessException e) { - logger.error("联联平台设备状态变化推送 error",e); - response = new RestApiResponse<>(e.getCode(), e.getMessage()); - }catch (Exception e) { - logger.error("联联平台设备状态变化推送 error", e); - response = new RestApiResponse<>(e); - } - logger.info("联联平台设备状态变化推送 result:{}", response); - return response; - } - - /** - * 推送订单信息 - * @param orderCode - * @return - */ - @GetMapping("/pushOrderInfo/{orderCode}") - public RestApiResponse pushOrderInfo(@PathVariable("orderCode")String orderCode) { - logger.info("联联平台推送订单信息 params:{}", orderCode); - RestApiResponse response = null; - try { - if (StringUtils.isBlank(orderCode)) { - throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); - } - String result = lianLianService.pushOrderInfo(orderCode); - response = new RestApiResponse<>(result); - }catch (BusinessException e) { - logger.error("联联平台推送订单信息 error",e); - response = new RestApiResponse<>(e.getCode(), e.getMessage()); - }catch (Exception e) { - logger.error("联联平台推送订单信息 error", e); - response = new RestApiResponse<>(e); - } - logger.info("联联平台推送订单信息 result:{}", response); - return response; - } - - /** - * 设备充电中状态变化推送 - * @return - */ - @GetMapping("/pushPileChargeStatusChange/{orderCode}") - public RestApiResponse pushPileChargeStatusChange(@PathVariable("orderCode")String orderCode) { - logger.info("联联平台设备充电中状态变化推送 params:{}", orderCode); - RestApiResponse response = null; - try { - if (StringUtils.isBlank(orderCode)) { - throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); - } - String result = lianLianService.pushPileChargeStatusChange(orderCode); - response = new RestApiResponse<>(result); - }catch (BusinessException e) { - logger.error("联联平台设备充电中状态变化推送 error",e); - response = new RestApiResponse<>(e.getCode(), e.getMessage()); - }catch (Exception e) { - logger.error("联联平台设备充电中状态变化推送 error", e); - response = new RestApiResponse<>(e); - } - logger.info("联联平台设备充电中状态变化推送 result:{}", response); - return response; - } - - /** - * 联联平台查询充电站信息 - * http://localhost:8080/LianLian/query_stations_info - * @param dto - * @return - */ - // @PostMapping("/query_stations_info") - // public RestApiResponse query_stations_info(@RequestBody QueryStationInfoDTO dto) { - // logger.info("联联平台查询充电站信息 params:{}", JSON.toJSONString(dto)); - // RestApiResponse response = null; - // try { - // // 校验签名 - // // lianLianService.checkoutSign(); - // LianLianPageResponse pageResponse = lianLianService.query_stations_info(dto); - // response = new RestApiResponse<>(pageResponse); - // }catch (BusinessException e) { - // logger.error("联联平台查询充电站信息 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // }catch (Exception e) { - // logger.error("联联平台查询充电站信息 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台查询充电站信息 result:{}", response); - // return response; - // } - - /** - * 联联平台查询充电站状态信息 - * http://localhost:8080/LianLian/query_station_status - * @param StationIDs - * @return - */ - // @PostMapping("/query_station_status") - // public RestApiResponse query_station_status(@RequestBody ArrayList StationIDs) { - // logger.info("联联平台查询充电站状态信息 params:{}", StationIDs); - // RestApiResponse response; - // try { - // if (CollectionUtils.isEmpty(StationIDs)) { - // return null; - // } - // LianLianPageResponse pageResponse = lianLianService.query_station_status(StationIDs); - // response = new RestApiResponse<>(pageResponse); - // }catch (BusinessException e) { - // logger.error("联联平台查询充电站状态信息 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // }catch (Exception e) { - // logger.error("联联平台查询充电站状态信息 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台查询充电站状态信息 result:{}", response); - // return response; - // } - - /** - * 查询统计信息 - * http://localhost:8080/LianLian/query_station_stats - * - * @param dto - * @return - */ - // @PostMapping("/query_station_stats") - // public RestApiResponse query_station_stats(@RequestBody QueryStationInfoDTO dto) { - // logger.info("联联平台查询统计信息 params :{}", JSON.toJSONString(dto)); - // RestApiResponse response; - // try { - // StationStatsInfo stationStatsInfo = lianLianService.query_station_stats(dto); - // response = new RestApiResponse<>(stationStatsInfo); - // }catch (BusinessException e) { - // logger.error("联联平台查询统计信息 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // } catch (Exception e) { - // logger.error("联联平台查询统计信息 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台查询统计信息 result :{}", response); - // return response; - // } - - /** - * 请求设备认证 - * http://localhost:8080/LianLian/query_equip_auth - * @param dto - * @return - */ - // @PostMapping("/query_equip_auth") - // public RestApiResponse query_equip_auth(@RequestBody QueryEquipmentDTO dto) { - // logger.info("联联平台请求设备认证 params :{}", JSON.toJSONString(dto)); - // RestApiResponse response; - // try { - // EquipmentAuthVO equipmentAuthVO = lianLianService.query_equip_auth(dto); - // response = new RestApiResponse<>(equipmentAuthVO); - // }catch (BusinessException e) { - // logger.error("联联平台请求设备认证 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // } catch (Exception e) { - // logger.error("联联平台请求设备认证 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台请求设备认证 result :{}", response); - // return response; - // } - - /** - * 请求设备认证 - * @param request - * @param dto - * @return - */ - @PostMapping("/v1/query_equip_auth") - public CommonResult query_equip_auth(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { - logger.info("联联平台请求设备认证 param:{}", JSON.toJSONString(dto)); - try { - // 校验令牌 - String token = request.getHeader("Authorization"); - if (!JWTUtils.checkThirdPartyToken(token)) { - // 校验失败 - return CommonResult.failed("令牌校验错误"); - } - // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); - // 解密data - byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); - String dataStr = new String(plainText, StandardCharsets.UTF_8); - // 转换成相应对象 - QueryEquipmentDTO queryEquipmentDTO = JSONObject.parseObject(dataStr, QueryEquipmentDTO.class); - queryEquipmentDTO.setOperatorID(dto.getOperatorID()); - Map map = lianLianService.query_equip_auth(queryEquipmentDTO); - - return CommonResult.success(0, "请求设备认证成功!", map.get("Data"), map.get("Sig")); - } catch (Exception e) { - logger.info("联联平台请求设备认证 error:", e); - e.printStackTrace(); - } - return CommonResult.failed("请求设备认证发生异常"); - } - - /** - * 请求启动充电 - * http://localhost:8080/LianLian/query_start_charge - * @param dto - * @return - */ - // @PostMapping("/query_start_charge") - // public RestApiResponse query_start_charge(@RequestBody QueryStartChargeDTO dto) { - // logger.info("联联平台请求启动充电 params :{}", JSON.toJSONString(dto)); - // RestApiResponse response; - // try { - // QueryStartChargeVO queryStartChargeVO = lianLianService.query_start_charge(dto); - // response = new RestApiResponse<>(queryStartChargeVO); - // }catch (BusinessException e) { - // logger.error("联联平台请求启动充电 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // } catch (Exception e) { - // logger.error("联联平台请求启动充电 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台请求启动充电 result :{}", response); - // return response; - // } - - /** - * 请求启动充电 - * @param request - * @param dto - * @return - */ - @PostMapping("/v1/query_start_charge") - public CommonResult query_start_charge(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { - logger.info("联联平台请求启动充电 params :{}", JSON.toJSONString(dto)); - try { - // 校验令牌 - String token = request.getHeader("Authorization"); - if (!JWTUtils.checkThirdPartyToken(token)) { - // 校验失败 - return CommonResult.failed("令牌校验错误"); - } - // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); - // 解密data - byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); - String dataStr = new String(plainText, StandardCharsets.UTF_8); - // 转换成相应对象 - QueryStartChargeDTO queryStartChargeDTO = JSONObject.parseObject(dataStr, QueryStartChargeDTO.class); - queryStartChargeDTO.setOperatorId(dto.getOperatorID()); - Map map = lianLianService.query_start_charge(queryStartChargeDTO); - - return CommonResult.success(0, "请求启动充电成功!", map.get("Data"), map.get("Sig")); - } catch (Exception e) { - logger.error("联联平台请求启动充电 error", e); - } - return CommonResult.failed("请求启动充电发生异常"); - } - - /** - * 查询充电状态 - * http://localhost:8080/LianLian/query_equip_charge_status/{startChargeSeq} - * @param startChargeSeq - * @return - */ - // @GetMapping("/query_equip_charge_status/{startChargeSeq}") - // public RestApiResponse query_equip_charge_status(@PathVariable("startChargeSeq") String startChargeSeq) { - // logger.info("联联平台查询充电状态 params :{}", startChargeSeq); - // RestApiResponse response; - // try { - // QueryChargingStatusVO vo = lianLianService.query_equip_charge_status(startChargeSeq); - // response = new RestApiResponse<>(vo); - // }catch (BusinessException e) { - // logger.error("联联平台查询充电状态 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // } catch (Exception e) { - // logger.error("联联平台查询充电状态 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台查询充电状态 result :{}", response); - // return response; - // } - - /** - * 查询充电状态 - * http://localhost:8080/LianLian/query_equip_charge_status/{startChargeSeq} - * @param dto - * @return - */ - @PostMapping("/v1/query_equip_charge_status") - public CommonResult query_equip_charge_status(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { - logger.info("联联平台查询充电状态 params :{}", JSON.toJSONString(dto)); - try { - // 校验令牌 - String token = request.getHeader("Authorization"); - if (!JWTUtils.checkThirdPartyToken(token)) { - // 校验失败 - return CommonResult.failed("令牌校验错误"); - } - // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); - // 解密data - byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); - String dataStr = new String(plainText, StandardCharsets.UTF_8); - // 转换成相应对象 - QueryEquipChargeStatusDTO queryEquipChargeStatusDTO = JSONObject.parseObject(dataStr, QueryEquipChargeStatusDTO.class); - queryEquipChargeStatusDTO.setOperatorID(dto.getOperatorID()); - Map map = lianLianService.query_equip_charge_status(queryEquipChargeStatusDTO); - - return CommonResult.success(0, "查询充电状态成功!", map.get("Data"), map.get("Sig")); - } catch (Exception e) { - logger.error("联联平台查询充电状态 error", e); - } - return CommonResult.failed("联联平台查询充电状态发生异常"); - } - - /** - * 请求停止充电 - * http://localhost:8080/LianLian/query_stop_charge - * @param dto - * @return - */ - // @PostMapping("/query_stop_charge") - // public RestApiResponse query_stop_charge(@RequestBody QueryStartChargeDTO dto) { - // logger.info("联联平台请求停止充电 params :{}", JSON.toJSONString(dto)); - // RestApiResponse response; - // try { - // QueryStopChargeVO queryStopChargeVO = lianLianService.query_stop_charge(dto); - // response = new RestApiResponse<>(queryStopChargeVO); - // }catch (BusinessException e) { - // logger.error("联联平台请求停止充电 error",e); - // response = new RestApiResponse<>(e.getCode(), e.getMessage()); - // } catch (Exception e) { - // logger.error("联联平台请求停止充电 error", e); - // response = new RestApiResponse<>(e); - // } - // logger.info("联联平台请求停止充电 result :{}", response); - // return response; - // } - - /** - * 请求停止充电 - * @param request - * @param dto - * @return - */ - @PostMapping("/v1/query_stop_charge") - public CommonResult query_stop_charge(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { - logger.info("联联平台请求停止充电 params :{}", JSON.toJSONString(dto)); - try { - // 校验令牌 - String token = request.getHeader("Authorization"); - if (!JWTUtils.checkThirdPartyToken(token)) { - // 校验失败 - return CommonResult.failed("令牌校验错误"); - } - // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); - // 解密data - byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); - String dataStr = new String(plainText, StandardCharsets.UTF_8); - // 转换成相应对象 - QueryStartChargeDTO queryStartChargeDTO = JSONObject.parseObject(dataStr, QueryStartChargeDTO.class); - queryStartChargeDTO.setOperatorId(dto.getOperatorID()); - Map map = lianLianService.query_stop_charge(queryStartChargeDTO); - - return CommonResult.success(0, "请求停止充电成功!", map.get("Data"), map.get("Sig")); - } catch (Exception e) { - logger.error("联联平台请求停止充电 error", e); - } - return CommonResult.failed("联联平台请求停止充电发生异常"); - } + @Autowired + private ThirdPartyPlatformConfigService thirdPartyPlatformConfigService; /** * 获取token接口 @@ -491,57 +53,16 @@ public class LianLianController extends BaseController { public CommonResult queryToken(@RequestBody CommonParamsDTO dto) { logger.info("联联平台请求令牌 params:{}", JSON.toJSONString(dto)); try { - Map map = lianLianService.generateToken(dto); + // Map map = lianLianService.generateToken(dto); + Map map = lianLianService.queryToken(dto); logger.info("联联平台请求令牌 result:{}", JSON.toJSONString(map)); return CommonResult.success(0, "请求令牌成功!", map.get("Data"), map.get("Sig")); - } catch (UnsupportedEncodingException e) { + } catch (Exception e) { logger.error("获取token接口 异常"); return CommonResult.failed("获取token发生异常"); } } - /** - * 推送订单结算信息 (联联推给我们) - * @param request - * @param dto - * @return - */ - @PostMapping("/v1/notification_order_settlement_info") - public CommonResult notification_order_settlement_info(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { - logger.info("联联平台推送订单结算信息 params:{}", JSON.toJSONString(dto)); - try { - // 校验令牌 - String token = request.getHeader("Authorization"); - if (!JWTUtils.checkThirdPartyToken(token)) { - // 校验失败 - return CommonResult.failed("令牌校验错误"); - } - // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); - // 解密data - byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); - String dataStr = new String(plainText, StandardCharsets.UTF_8); - // 转换成相应对象 - PushOrderSettlementDTO pushOrderSettlementDTO = JSONObject.parseObject(dataStr, PushOrderSettlementDTO.class); - pushOrderSettlementDTO.setOperatorId(dto.getOperatorID()); - Map map = lianLianService.pushOrderSettlementInfo(pushOrderSettlementDTO); - - return CommonResult.success(0, "推送订单结算信息成功!", map.get("Data"), map.get("Sig")); - } catch (Exception e) { - logger.info("联联平台推送订单结算信息 error:", e); - e.printStackTrace(); - } - return CommonResult.failed("推送订单结算信息发生异常"); - } - /** * 联联平台查询充电站信息 * http://localhost:8080/LianLian/query_stations_info @@ -559,22 +80,31 @@ public class LianLianController extends BaseController { return CommonResult.failed("令牌校验错误"); } // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); + // Map resultMap = lianLianService.checkoutSign(dto); + // if (resultMap == null) { + // // 签名错误 + // return CommonResult.failed("签名校验错误"); + // } + // String operatorSecret = resultMap.get("OperatorSecret"); + // String dataString = resultMap.get("Data"); + // String dataSecret = resultMap.get("DataSecret"); + // String dataSecretIV = resultMap.get("DataSecretIV"); + + // 查询配置信息 + ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + String operatorSecret = platformConfig.getOperatorSecret(); + String dataString = dto.getData(); + String dataSecret = platformConfig.getDataSecret(); + String dataSecretIV = platformConfig.getDataSecretIv(); + // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); String dataStr = new String(plainText, StandardCharsets.UTF_8); // 转换成相应对象 QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class); queryStationInfoDTO.setOperatorId(dto.getOperatorID()); - Map map = lianLianService.query_stations_info(queryStationInfoDTO); + // Map map = lianLianService.query_stations_info(queryStationInfoDTO); + Map map = lianLianService.queryStationsInfo(queryStationInfoDTO); return CommonResult.success(0, "查询充电站信息成功!", map.get("Data"), map.get("Sig")); } catch (Exception e) { @@ -584,7 +114,6 @@ public class LianLianController extends BaseController { return CommonResult.failed("查询充电站信息发生异常"); } - /** * 联联平台查询充电站状态信息 * http://localhost:8080/LianLian/query_station_status @@ -602,22 +131,31 @@ public class LianLianController extends BaseController { return CommonResult.failed("令牌校验错误"); } // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); + // Map resultMap = lianLianService.checkoutSign(dto); + // if (resultMap == null) { + // // 签名错误 + // return CommonResult.failed("签名校验错误"); + // } + // String operatorSecret = resultMap.get("OperatorSecret"); + // String dataString = resultMap.get("Data"); + // String dataSecret = resultMap.get("DataSecret"); + // String dataSecretIV = resultMap.get("DataSecretIV"); + + // 查询配置信息 + ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + String operatorSecret = platformConfig.getOperatorSecret(); + String dataString = dto.getData(); + String dataSecret = platformConfig.getDataSecret(); + String dataSecretIV = platformConfig.getDataSecretIv(); + // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); String dataStr = new String(plainText, StandardCharsets.UTF_8); // 转换成相应对象 QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class); queryStationInfoDTO.setOperatorId(dto.getOperatorID()); - Map map = lianLianService.query_station_status(queryStationInfoDTO); + // Map map = lianLianService.query_station_status(queryStationInfoDTO); + Map map = lianLianService.queryStationStatus(queryStationInfoDTO); return CommonResult.success(0, "查询充电站状态信息成功!", map.get("Data"), map.get("Sig")); } catch (Exception e) { @@ -645,22 +183,31 @@ public class LianLianController extends BaseController { return CommonResult.failed("令牌校验错误"); } // 校验签名 - Map resultMap = lianLianService.checkoutSign(dto); - if (resultMap == null) { - // 签名错误 - return CommonResult.failed("签名校验错误"); - } - String operatorSecret = resultMap.get("OperatorSecret"); - String dataString = resultMap.get("Data"); - String dataSecret = resultMap.get("DataSecret"); - String dataSecretIV = resultMap.get("DataSecretIV"); + // Map resultMap = lianLianService.checkoutSign(dto); + // if (resultMap == null) { + // // 签名错误 + // return CommonResult.failed("签名校验错误"); + // } + // String operatorSecret = resultMap.get("OperatorSecret"); + // String dataString = resultMap.get("Data"); + // String dataSecret = resultMap.get("DataSecret"); + // String dataSecretIV = resultMap.get("DataSecretIV"); + + // 查询配置信息 + ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + String operatorSecret = platformConfig.getOperatorSecret(); + String dataString = dto.getData(); + String dataSecret = platformConfig.getDataSecret(); + String dataSecretIV = platformConfig.getDataSecretIv(); + // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); String dataStr = new String(plainText, "UTF-8"); // 转换成相应对象 QueryStationInfoDTO queryStationInfoDTO = JSONObject.parseObject(dataStr, QueryStationInfoDTO.class); queryStationInfoDTO.setOperatorId(dto.getOperatorID()); - Map map = lianLianService.query_station_stats(queryStationInfoDTO); + // Map map = lianLianService.query_station_stats(queryStationInfoDTO); + Map map = lianLianService.queryStationStats(queryStationInfoDTO); return CommonResult.success(0, "查询统计信息成功!", map.get("Data"), map.get("Sig")); } catch (Exception e) { logger.info("联联平台查询统计信息 error:", e); @@ -669,17 +216,351 @@ public class LianLianController extends BaseController { return CommonResult.failed("查询统计信息发生异常"); } + /** + * 联联平台设备状态变化推送 + * http://localhost:8080/LianLian/pushStationStatus + * @param dto + * @return + */ + // @PostMapping("/pushStationStatus") + // public RestApiResponse pushStationStatus(@RequestBody PushInfoParamDTO dto) { + // logger.info("联联平台设备状态变化推送 params:{}", JSON.toJSONString(dto)); + // RestApiResponse response = null; + // try { + // if (StringUtils.isBlank(String.valueOf(dto.getPileConnectorCode())) || + // StringUtils.isBlank(String.valueOf(dto.getStatus()))) { + // throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + // } + // String result = lianLianService.notificationStationStatus(dto.getPileConnectorCode(), dto.getStatus()); + // response = new RestApiResponse<>(result); + // }catch (BusinessException e) { + // logger.error("联联平台设备状态变化推送 error",e); + // response = new RestApiResponse<>(e.getCode(), e.getMessage()); + // }catch (Exception e) { + // logger.error("联联平台设备状态变化推送 error", e); + // response = new RestApiResponse<>(e); + // } + // logger.info("联联平台设备状态变化推送 result:{}", response); + // return response; + // } - @GetMapping("/pushStationFee/{stationId}") - public RestApiResponse pushStationFee(@PathVariable("stationId") String stationId) { - RestApiResponse response = null; - try { - String result = lianLianService.pushStationFee(stationId); - response = new RestApiResponse<>(result); - } catch (Exception e) { - e.printStackTrace(); - } - return response; - } + /** + * 推送订单信息 + * @param orderCode + * @return + */ + // @GetMapping("/pushOrderInfo/{orderCode}") + // public RestApiResponse pushOrderInfo(@PathVariable("orderCode")String orderCode) { + // logger.info("联联平台推送订单信息 params:{}", orderCode); + // RestApiResponse response = null; + // try { + // if (StringUtils.isBlank(orderCode)) { + // throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + // } + // String result = lianLianService.notificationOrderInfo(orderCode); + // response = new RestApiResponse<>(result); + // }catch (BusinessException e) { + // logger.error("联联平台推送订单信息 error",e); + // response = new RestApiResponse<>(e.getCode(), e.getMessage()); + // }catch (Exception e) { + // logger.error("联联平台推送订单信息 error", e); + // response = new RestApiResponse<>(e); + // } + // logger.info("联联平台推送订单信息 result:{}", response); + // return response; + // } + + /** + * 设备充电中状态变化推送 + * @return + */ + // @GetMapping("/pushPileChargeStatusChange/{orderCode}") + // public RestApiResponse pushPileChargeStatusChange(@PathVariable("orderCode")String orderCode) { + // logger.info("联联平台设备充电中状态变化推送 params:{}", orderCode); + // RestApiResponse response = null; + // try { + // if (StringUtils.isBlank(orderCode)) { + // throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + // } + // // String result = lianLianService.pushPileChargeStatusChange(orderCode); + // String result = lianLianService.notificationEquipChargeStatus(orderCode); + // response = new RestApiResponse<>(result); + // }catch (BusinessException e) { + // logger.error("联联平台设备充电中状态变化推送 error",e); + // response = new RestApiResponse<>(e.getCode(), e.getMessage()); + // }catch (Exception e) { + // logger.error("联联平台设备充电中状态变化推送 error", e); + // response = new RestApiResponse<>(e); + // } + // logger.info("联联平台设备充电中状态变化推送 result:{}", response); + // return response; + // } + + /** + * 请求设备认证 + * @param request + * @param dto + * @return + */ + // @PostMapping("/v1/query_equip_auth") + // public CommonResult query_equip_auth(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { + // logger.info("联联平台请求设备认证 param:{}", JSON.toJSONString(dto)); + // try { + // // 校验令牌 + // String token = request.getHeader("Authorization"); + // if (!JWTUtils.checkThirdPartyToken(token)) { + // // 校验失败 + // return CommonResult.failed("令牌校验错误"); + // } + // // 校验签名 + // // Map resultMap = lianLianService.checkoutSign(dto); + // // if (resultMap == null) { + // // // 签名错误 + // // return CommonResult.failed("签名校验错误"); + // // } + // // String operatorSecret = resultMap.get("OperatorSecret"); + // // String dataString = resultMap.get("Data"); + // // String dataSecret = resultMap.get("DataSecret"); + // // String dataSecretIV = resultMap.get("DataSecretIV"); + // + // // 查询配置信息 + // ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + // String operatorSecret = platformConfig.getOperatorSecret(); + // String dataString = dto.getData(); + // String dataSecret = platformConfig.getDataSecret(); + // String dataSecretIV = platformConfig.getDataSecretIv(); + // + // // 解密data + // byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); + // String dataStr = new String(plainText, StandardCharsets.UTF_8); + // // 转换成相应对象 + // QueryEquipmentDTO queryEquipmentDTO = JSONObject.parseObject(dataStr, QueryEquipmentDTO.class); + // queryEquipmentDTO.setOperatorID(dto.getOperatorID()); + // // Map map = lianLianService.query_equip_auth(queryEquipmentDTO); + // Map map = lianLianService.queryEquipAuth(queryEquipmentDTO); + // + // return CommonResult.success(0, "请求设备认证成功!", map.get("Data"), map.get("Sig")); + // } catch (Exception e) { + // logger.info("联联平台请求设备认证 error:", e); + // e.printStackTrace(); + // } + // return CommonResult.failed("请求设备认证发生异常"); + // } + + /** + * 请求启动充电 + * @param request + * @param dto + * @return + */ + // @PostMapping("/v1/query_start_charge") + // public CommonResult query_start_charge(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { + // logger.info("联联平台请求启动充电 params :{}", JSON.toJSONString(dto)); + // try { + // // 校验令牌 + // String token = request.getHeader("Authorization"); + // if (!JWTUtils.checkThirdPartyToken(token)) { + // // 校验失败 + // return CommonResult.failed("令牌校验错误"); + // } + // // 校验签名 + // // Map resultMap = lianLianService.checkoutSign(dto); + // // if (resultMap == null) { + // // // 签名错误 + // // return CommonResult.failed("签名校验错误"); + // // } + // // String operatorSecret = resultMap.get("OperatorSecret"); + // // String dataString = resultMap.get("Data"); + // // String dataSecret = resultMap.get("DataSecret"); + // // String dataSecretIV = resultMap.get("DataSecretIV"); + // + // // 查询配置信息 + // ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + // String operatorSecret = platformConfig.getOperatorSecret(); + // String dataString = dto.getData(); + // String dataSecret = platformConfig.getDataSecret(); + // String dataSecretIV = platformConfig.getDataSecretIv(); + // + // // 解密data + // byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); + // String dataStr = new String(plainText, StandardCharsets.UTF_8); + // // 转换成相应对象 + // QueryStartChargeDTO queryStartChargeDTO = JSONObject.parseObject(dataStr, QueryStartChargeDTO.class); + // queryStartChargeDTO.setOperatorId(dto.getOperatorID()); + // // Map map = lianLianService.query_start_charge(queryStartChargeDTO); + // Map map = lianLianService.queryStartCharge(queryStartChargeDTO); + // + // return CommonResult.success(0, "请求启动充电成功!", map.get("Data"), map.get("Sig")); + // } catch (Exception e) { + // logger.error("联联平台请求启动充电 error", e); + // } + // return CommonResult.failed("请求启动充电发生异常"); + // } + + /** + * 查询充电状态 + * http://localhost:8080/LianLian/query_equip_charge_status/{startChargeSeq} + * @param dto + * @return + */ + // @PostMapping("/v1/query_equip_charge_status") + // public CommonResult query_equip_charge_status(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { + // logger.info("联联平台查询充电状态 params :{}", JSON.toJSONString(dto)); + // try { + // // 校验令牌 + // String token = request.getHeader("Authorization"); + // if (!JWTUtils.checkThirdPartyToken(token)) { + // // 校验失败 + // return CommonResult.failed("令牌校验错误"); + // } + // // 校验签名 + // // Map resultMap = lianLianService.checkoutSign(dto); + // // if (resultMap == null) { + // // // 签名错误 + // // return CommonResult.failed("签名校验错误"); + // // } + // // String operatorSecret = resultMap.get("OperatorSecret"); + // // String dataString = resultMap.get("Data"); + // // String dataSecret = resultMap.get("DataSecret"); + // // String dataSecretIV = resultMap.get("DataSecretIV"); + // + // // 查询配置信息 + // ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + // String operatorSecret = platformConfig.getOperatorSecret(); + // String dataString = dto.getData(); + // String dataSecret = platformConfig.getDataSecret(); + // String dataSecretIV = platformConfig.getDataSecretIv(); + // + // // 解密data + // byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); + // String dataStr = new String(plainText, StandardCharsets.UTF_8); + // // 转换成相应对象 + // QueryEquipChargeStatusDTO queryEquipChargeStatusDTO = JSONObject.parseObject(dataStr, QueryEquipChargeStatusDTO.class); + // queryEquipChargeStatusDTO.setOperatorID(dto.getOperatorID()); + // // Map map = lianLianService.query_equip_charge_status(queryEquipChargeStatusDTO); + // Map map = lianLianService.queryEquipChargeStatus(queryEquipChargeStatusDTO); + // + // return CommonResult.success(0, "查询充电状态成功!", map.get("Data"), map.get("Sig")); + // } catch (Exception e) { + // logger.error("联联平台查询充电状态 error", e); + // } + // return CommonResult.failed("联联平台查询充电状态发生异常"); + // } + + /** + * 请求停止充电 + * @param request + * @param dto + * @return + */ + // @PostMapping("/v1/query_stop_charge") + // public CommonResult query_stop_charge(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { + // logger.info("联联平台请求停止充电 params :{}", JSON.toJSONString(dto)); + // try { + // // 校验令牌 + // String token = request.getHeader("Authorization"); + // if (!JWTUtils.checkThirdPartyToken(token)) { + // // 校验失败 + // return CommonResult.failed("令牌校验错误"); + // } + // // 校验签名 + // // Map resultMap = lianLianService.checkoutSign(dto); + // // if (resultMap == null) { + // // // 签名错误 + // // return CommonResult.failed("签名校验错误"); + // // } + // // String operatorSecret = resultMap.get("OperatorSecret"); + // // String dataString = resultMap.get("Data"); + // // String dataSecret = resultMap.get("DataSecret"); + // // String dataSecretIV = resultMap.get("DataSecretIV"); + // + // // 查询配置信息 + // ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + // String operatorSecret = platformConfig.getOperatorSecret(); + // String dataString = dto.getData(); + // String dataSecret = platformConfig.getDataSecret(); + // String dataSecretIV = platformConfig.getDataSecretIv(); + // + // // 解密data + // byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); + // String dataStr = new String(plainText, StandardCharsets.UTF_8); + // // 转换成相应对象 + // QueryStartChargeDTO queryStartChargeDTO = JSONObject.parseObject(dataStr, QueryStartChargeDTO.class); + // queryStartChargeDTO.setOperatorId(dto.getOperatorID()); + // // Map map = lianLianService.query_stop_charge(queryStartChargeDTO); + // Map map = lianLianService.queryStopCharge(queryStartChargeDTO); + // + // return CommonResult.success(0, "请求停止充电成功!", map.get("Data"), map.get("Sig")); + // } catch (Exception e) { + // logger.error("联联平台请求停止充电 error", e); + // } + // return CommonResult.failed("联联平台请求停止充电发生异常"); + // } + + + + /** + * 推送订单结算信息 (联联推给我们) + * @param request + * @param dto + * @return + */ + // @PostMapping("/v1/notification_order_settlement_info") + // public CommonResult notification_order_settlement_info(HttpServletRequest request, @RequestBody CommonParamsDTO dto) { + // logger.info("联联平台推送订单结算信息 params:{}", JSON.toJSONString(dto)); + // try { + // // 校验令牌 + // String token = request.getHeader("Authorization"); + // if (!JWTUtils.checkThirdPartyToken(token)) { + // // 校验失败 + // return CommonResult.failed("令牌校验错误"); + // } + // // 校验签名 + // // Map resultMap = lianLianService.checkoutSign(dto); + // // if (resultMap == null) { + // // // 签名错误 + // // return CommonResult.failed("签名校验错误"); + // // } + // // String operatorSecret = resultMap.get("OperatorSecret"); + // // String dataString = resultMap.get("Data"); + // // String dataSecret = resultMap.get("DataSecret"); + // // String dataSecretIV = resultMap.get("DataSecretIV"); + // + // // 查询配置信息 + // ThirdPartyPlatformConfig platformConfig = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorID()); + // String operatorSecret = platformConfig.getOperatorSecret(); + // String dataString = dto.getData(); + // String dataSecret = platformConfig.getDataSecret(); + // String dataSecretIV = platformConfig.getDataSecretIv(); + // + // // 解密data + // byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); + // String dataStr = new String(plainText, StandardCharsets.UTF_8); + // // 转换成相应对象 + // PushOrderSettlementDTO pushOrderSettlementDTO = JSONObject.parseObject(dataStr, PushOrderSettlementDTO.class); + // pushOrderSettlementDTO.setOperatorId(dto.getOperatorID()); + // Map map = lianLianService.pushOrderSettlementInfo(pushOrderSettlementDTO); + // // Map map = lianLianService.notificationOrderInfo(pushOrderSettlementDTO); + // + // return CommonResult.success(0, "推送订单结算信息成功!", map.get("Data"), map.get("Sig")); + // } catch (Exception e) { + // logger.info("联联平台推送订单结算信息 error:", e); + // e.printStackTrace(); + // } + // return CommonResult.failed("推送订单结算信息发生异常"); + // } + + // @GetMapping("/pushStationFee/{stationId}") + // public RestApiResponse pushStationFee(@PathVariable("stationId") String stationId) { + // RestApiResponse response = null; + // try { + // // String result = lianLianService.pushStationFee(stationId); + // String result = lianLianService.notificationStationFee(stationId); + // response = new RestApiResponse<>(result); + // } catch (Exception e) { + // e.printStackTrace(); + // } + // return response; + // } } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/lianlian/service/LianLianPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/lianlian/service/LianLianPlatformServiceImpl.java index eb40cef80..e15196c10 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/lianlian/service/LianLianPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/lianlian/service/LianLianPlatformServiceImpl.java @@ -109,7 +109,7 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService { */ @Override public Map queryStationsInfo(QueryStationInfoDTO dto) { - List resultList = new ArrayList<>(); + int pageNo = dto.getPageNo() == null ? 1 : dto.getPageNo(); int pageSize = dto.getPageSize() == null ? 10 : dto.getPageSize(); @@ -124,6 +124,7 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService { return null; } PageInfo pageInfo = new PageInfo<>(stationInfos); + List resultList = new ArrayList<>(); for (ThirdPartyStationInfoVO pileStationInfo : pageInfo.getList()) { StationInfo stationInfo = new StationInfo(); String stationId = String.valueOf(pileStationInfo.getId());