diff --git a/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java b/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java index c2f1284af832e7c97e46530772ed401ffaa6e31a..5e50cf0d7f3313348a71ec2688a23e4f90f8b870 100644 --- a/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java +++ b/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java @@ -36,6 +36,15 @@ public class WebSocketHandler extends TextWebSocketHandler { chargingService.park(lot); } + else if (cmd.length() >= 6) { + if (chargingService.validate(lot, cmd)) { + session.sendMessage(new TextMessage(lot + "-" + "Y")); + } + else { + session.sendMessage(new TextMessage(lot + "-" + "N")); + } + } + else if (cmd.contains("d")) { chargingService.identifyDriver(lot, cmd.substring(1)); } @@ -44,6 +53,7 @@ public class WebSocketHandler extends TextWebSocketHandler { System.out.println("퇴장"); chargingService.unpark(lot); socketRepository.removeSession(session); + session.sendMessage(new TextMessage(lot + "-" + "EXIT")); session.close(); } diff --git a/server-node-spring/src/main/java/org/example/thiefsil/controller/ValidateController.java b/server-node-spring/src/main/java/org/example/thiefsil/controller/ValidateController.java index ffb9ba263f1e7313a314796022e7d8afbd67231b..eedf036661f10b53b5827b33e3e3debca7eeff4e 100644 --- a/server-node-spring/src/main/java/org/example/thiefsil/controller/ValidateController.java +++ b/server-node-spring/src/main/java/org/example/thiefsil/controller/ValidateController.java @@ -41,7 +41,7 @@ public class ValidateController { if (validateCarDTO.getUseFuel().contains("전기")) { chargingService.makeVehicle(lot, number); - return number; + return "Y"; } else return "N"; } diff --git a/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java b/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java index fa02a5482a194753116bb18e48579f49ad013f46..d3bb6aea3d18edc371a73817501616e29c0b14a9 100644 --- a/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java +++ b/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java @@ -9,13 +9,19 @@ import jakarta.persistence.PersistenceContext; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import org.example.thiefsil.dto.CarDTO; +import org.example.thiefsil.dto.ValidateCarDTO; import org.example.thiefsil.entity.Driver; import org.example.thiefsil.entity.Vehicle; import org.example.thiefsil.repository.*; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; @@ -143,6 +149,27 @@ public class ChargingService { } + public boolean validate(String lot, String number) { + RestTemplate restTemplate = new RestTemplate(); + HttpHeaders headers = new HttpHeaders(); + headers.set("Accept", "application/json"); + HttpEntity<Object> entity = new HttpEntity<>(headers); + ResponseEntity<ValidateCarDTO> response = restTemplate.exchange("http://ajou.ftp.sh/api/car?carNumber=" + number + , HttpMethod.GET,entity, ValidateCarDTO.class); + ValidateCarDTO validateCarDTO = response.getBody(); + System.out.println(number); + System.out.println(validateCarDTO); + if (validateCarDTO.getError() != null) { + return false; + } + + if (validateCarDTO.getUseFuel().contains("전기")) { + makeVehicle(lot, number); + return true; + } + else return false; + } + @PostConstruct public void init() {