ChargingReceptionServiceImpl.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package com.zsElectric.boot.charging.service.impl;
  2. import com.google.gson.Gson;
  3. import com.zsElectric.boot.charging.service.ChargingReceptionService;
  4. import com.zsElectric.boot.charging.vo.*;
  5. import com.zsElectric.boot.common.constant.ConnectivityConstants;
  6. import com.zsElectric.boot.common.util.electric.ChargingUtil;
  7. import com.zsElectric.boot.common.util.electric.RequestParmsEntity;
  8. import com.zsElectric.boot.common.util.electric.ResponseParmsEntity;
  9. import com.zsElectric.boot.core.exception.BusinessException;
  10. import lombok.RequiredArgsConstructor;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.stereotype.Service;
  13. import static com.zsElectric.boot.common.constant.ConnectivityConstants.FAIL_REASON_NONE;
  14. import static com.zsElectric.boot.common.constant.ConnectivityConstants.STATUS_OK;
  15. import static com.zsElectric.boot.common.util.HmacMD5Util.genSign;
  16. import static com.zsElectric.boot.common.util.HmacMD5Util.verify;
  17. @Slf4j
  18. @Service
  19. @RequiredArgsConstructor
  20. public class ChargingReceptionServiceImpl implements ChargingReceptionService {
  21. private final ChargingUtil chargingUtil;
  22. @Override
  23. public ResponseParmsEntity chargeResponse(RequestParmsEntity requestDTO) {
  24. log.info("接收推送启动充电结果请求参数:{}", requestDTO);
  25. ChargingStatusResponseVO chargingStatusResponseVO;
  26. // 响应参数 答复处理
  27. ChargeResponseVO chargeResponseVO = new ChargeResponseVO();
  28. String encryptData;
  29. String genSign;
  30. try {
  31. if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
  32. String decryptData = chargingUtil.decryptData(requestDTO.getData());
  33. log.info("解密后的数据:{}", decryptData);
  34. chargingStatusResponseVO = new Gson().fromJson(decryptData, ChargingStatusResponseVO.class);
  35. //todo 业务代码待处理
  36. chargeResponseVO.setStartChargeSeq(chargingStatusResponseVO.getStartChargeSeq());
  37. chargeResponseVO.setSuccStat(STATUS_OK);
  38. chargeResponseVO.setFailReason(FAIL_REASON_NONE);
  39. encryptData = chargingUtil.encryptData(new Gson().toJson(chargeResponseVO));
  40. genSign = genSign(STATUS_OK, "请求成功", encryptData, ConnectivityConstants.SIG_SECRET);
  41. }else {
  42. log.error("数据验签失败");
  43. throw new BusinessException("数据验签失败");
  44. }
  45. }catch (Exception e){
  46. log.error("数据解密失败:{}", e.getMessage());
  47. throw new BusinessException("数据解密失败:" + e.getMessage(), e);
  48. }
  49. return new ResponseParmsEntity()
  50. .setRet(STATUS_OK)
  51. .setMsg("请求成功")
  52. .setData(encryptData)
  53. .setSig(genSign);
  54. }
  55. @Override
  56. public ResponseParmsEntity chargeStatusResponse(RequestParmsEntity requestDTO) {
  57. log.info("接收推送充电状态请求参数:{}", requestDTO);
  58. EquipChargeStatusResponseVO equipChargeStatusResponseVO;
  59. ChargeResponseVO chargeResponseVO = new ChargeResponseVO();
  60. String encryptData;
  61. String genSign;
  62. try {
  63. if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
  64. String decryptData = chargingUtil.decryptData(requestDTO.getData());
  65. log.info("解密后的数据:{}", decryptData);
  66. equipChargeStatusResponseVO = new Gson().fromJson(decryptData, EquipChargeStatusResponseVO.class);
  67. //todo 业务代码待处理
  68. chargeResponseVO.setStartChargeSeq(equipChargeStatusResponseVO.getStartChargeSeq());
  69. chargeResponseVO.setSuccStat(STATUS_OK);
  70. chargeResponseVO.setFailReason(FAIL_REASON_NONE);
  71. encryptData = chargingUtil.encryptData(new Gson().toJson(chargeResponseVO));
  72. genSign = genSign(STATUS_OK, "请求成功", encryptData, ConnectivityConstants.SIG_SECRET);
  73. }else {
  74. log.error("数据验签失败");
  75. throw new BusinessException("数据验签失败");
  76. }
  77. } catch (Exception e) {
  78. log.error("数据解密失败:{}", e.getMessage());
  79. throw new BusinessException("数据解密失败:" + e.getMessage(), e);
  80. }
  81. return new ResponseParmsEntity()
  82. .setRet(STATUS_OK)
  83. .setMsg("请求成功")
  84. .setData(encryptData)
  85. .setSig(genSign);
  86. }
  87. @Override
  88. public ResponseParmsEntity stopChargeResponse(RequestParmsEntity requestDTO) {
  89. log.info("接收推送停止充电结果请求参数:{}", requestDTO);
  90. StopChargingResponseVO stopChargingResponseVO;
  91. ChargeResponseVO chargeResponseVO = new ChargeResponseVO();
  92. String encryptData;
  93. String genSign;
  94. try {
  95. if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
  96. String decryptData = chargingUtil.decryptData(requestDTO.getData());
  97. log.info("解密后的数据:{}", decryptData);
  98. stopChargingResponseVO = new Gson().fromJson(decryptData, StopChargingResponseVO.class);
  99. //todo 业务代码待处理
  100. chargeResponseVO.setStartChargeSeq(stopChargingResponseVO.getStartChargeSeq());
  101. chargeResponseVO.setSuccStat(STATUS_OK);
  102. chargeResponseVO.setFailReason(FAIL_REASON_NONE);
  103. encryptData = chargingUtil.encryptData(new Gson().toJson(chargeResponseVO));
  104. genSign = genSign(STATUS_OK, "请求成功", encryptData, ConnectivityConstants.SIG_SECRET);
  105. }else {
  106. log.error("数据验签失败");
  107. throw new BusinessException("数据验签失败");
  108. }
  109. } catch (Exception e) {
  110. log.error("数据解密失败:{}", e.getMessage());
  111. throw new BusinessException("数据解密失败:" + e.getMessage(), e);
  112. }
  113. return new ResponseParmsEntity()
  114. .setRet(STATUS_OK)
  115. .setMsg("请求成功")
  116. .setData(encryptData)
  117. .setSig(genSign);
  118. }
  119. @Override
  120. public ResponseParmsEntity chargeOrderResponse(RequestParmsEntity requestDTO) {
  121. log.info("接收推送充电订单信息请求参数:{}", requestDTO);
  122. ChargingOrderVO chargingOrderVO;
  123. ChargeResponseVO chargeResponseVO = new ChargeResponseVO();
  124. String encryptData;
  125. String genSign;
  126. try {
  127. if(verify(requestDTO.getData(), ConnectivityConstants.SIG_SECRET, requestDTO.getSig())){
  128. String decryptData = chargingUtil.decryptData(requestDTO.getData());
  129. log.info("解密后的数据:{}", decryptData);
  130. chargingOrderVO = new Gson().fromJson(decryptData, ChargingOrderVO.class);
  131. //todo 业务代码待处理
  132. chargeResponseVO.setStartChargeSeq(chargingOrderVO.getStartChargeSeq());
  133. chargeResponseVO.setSuccStat(STATUS_OK);
  134. chargeResponseVO.setFailReason(FAIL_REASON_NONE);
  135. encryptData = chargingUtil.encryptData(new Gson().toJson(chargeResponseVO));
  136. genSign = genSign(STATUS_OK, "请求成功", encryptData, ConnectivityConstants.SIG_SECRET);
  137. }else {
  138. log.error("数据验签失败");
  139. throw new BusinessException("数据验签失败");
  140. }
  141. } catch (Exception e) {
  142. log.error("数据解密失败:{}", e.getMessage());
  143. throw new BusinessException("数据解密失败:" + e.getMessage(), e);
  144. }
  145. return new ResponseParmsEntity()
  146. .setRet(STATUS_OK)
  147. .setMsg("请求成功")
  148. .setData(encryptData)
  149. .setSig(genSign);
  150. }
  151. }