ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SecurityDetectionFallbackFactory.java
@@ -1,10 +1,12 @@ package com.ruoyi.integration.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.feignClient.SecurityDetectionClient; import com.ruoyi.integration.api.feignClient.SendMessageClient; import com.ruoyi.integration.api.model.PlatformStartCharging; import com.ruoyi.integration.api.model.PlatformStopCharging; import com.ruoyi.integration.api.model.QrCodeDelivery; import com.ruoyi.integration.api.model.SecurityDetection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -23,7 +25,11 @@ public SecurityDetectionClient create(Throwable throwable) { log.error("调用失败:{}", throwable.getMessage()); return new SecurityDetectionClient() { @Override public R<SecurityDetection> getSecurityDetection(String transactionSerialNumber) { return R.fail("获取安全检测数据失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/SecurityDetectionClient.java
@@ -1,8 +1,12 @@ package com.ruoyi.integration.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.factory.SecurityDetectionFallbackFactory; import com.ruoyi.integration.api.model.SecurityDetection; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; /** * @author zhibing.pu @@ -10,6 +14,13 @@ */ @FeignClient(contextId = "SecurityDetectionClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = SecurityDetectionFallbackFactory.class) public interface SecurityDetectionClient { /** * 获取安全检测数据 * @param transactionSerialNumber * @return */ @PostMapping("/securityDetection/getSecurityDetection") R<SecurityDetection> getSecurityDetection(@RequestParam("transactionSerialNumber") String transactionSerialNumber); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/SecurityDetectionController.java
@@ -1,7 +1,11 @@ package com.ruoyi.integration.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.model.SecurityDetection; import com.ruoyi.integration.mongodb.service.SecurityDetectionService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -17,6 +21,14 @@ @Resource private SecurityDetectionService securityDetectionService; /** * 获取安全检测数据 * @param transactionSerialNumber * @return */ @PostMapping("/getSecurityDetection") public R<SecurityDetection> getSecurityDetection(@RequestParam("transactionSerialNumber") String transactionSerialNumber){ SecurityDetection securityDetection = securityDetectionService.getSecurityDetection(transactionSerialNumber); return R.ok(securityDetection); } } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/SecurityDetectionServiceImpl.java
@@ -5,6 +5,8 @@ import com.ruoyi.integration.mongodb.service.SecurityDetectionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.List; @@ -41,6 +43,8 @@ */ @Override public SecurityDetection getSecurityDetection(String transactionSerialNumber) { return null; List<SecurityDetection> securityDetectionList = mongoTemplate.find(new Query().addCriteria(Criteria.where("transaction_serial_number") .is(transactionSerialNumber)), SecurityDetection.class); return securityDetectionList.size() > 0 ? securityDetectionList.get(0) : null; } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -190,6 +190,9 @@ @Resource private AppUserTagClient appUserTagClient; @Resource private SecurityDetectionClient securityDetectionClient; //计数器 private Map<String, Integer> counter_map = new HashMap<>(); @@ -651,7 +654,17 @@ ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); scheduler.scheduleAtFixedRate(()->{ //获取安全校验 SecurityDetection securityDetection = securityDetectionClient.getSecurityDetection(chargingOrder.getCode()).getData(); if(null != securityDetection){ PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + chargingOrder.getChargingGunId()); if(null != preChargeCheck1){ preChargeCheck1.setElectronicLockLock(preChargeCheck1.getElectronicLockLock()); preChargeCheck1.setInsulationTesting(true); preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); preChargeCheck1.setStartupSuccess(1); redisService.setCacheObject("AQJC_" + chargingOrder.getChargingGunId(), preChargeCheck1); } } List<PlatformStartChargingReply> data = platformStartChargingReplyClient.getPlatformStartChargingReply(code).getData(); System.err.println("-------------------开始检查调起充电结果-------------------");