From 232d5e7a26e47d6dedaf2adba0f175c0b81538b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B2=9C=20=EC=A7=84=EA=B0=95?= <jjjjjk12@ajou.ac.kr> Date: Fri, 29 Nov 2024 13:29:08 +0900 Subject: [PATCH] =?UTF-8?q?fix(spring):=20=EC=A0=84=EA=B8=B0=EC=B0=A8=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EB=A1=9C=EC=A7=81=20api=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thiefsil/config/WebSocketHandler.java | 10 +++++++ .../controller/ValidateController.java | 2 +- .../thiefsil/service/ChargingService.java | 27 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) 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 c2f1284..5e50cf0 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 ffb9ba2..eedf036 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 fa02a54..d3bb6ae 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() { -- GitLab