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