From 52291d62646e1aa2b3f5aaa8a50bf9303ce326ee 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: Tue, 3 Dec 2024 14:23:13 +0900 Subject: [PATCH] =?UTF-8?q?feat(spring):=20=EC=9D=B4=EC=A0=84=20=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=20=EC=B0=A8=EB=9F=89=20=EC=BA=90=EC=8B=B1=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ishController.java => MainController.java} | 10 ++++++- .../org/example/thiefsil/entity/Cache.java | 23 ++++++++++++++++ .../org/example/thiefsil/entity/Driver.java | 1 - .../thiefsil/repository/CacheRepository.java | 10 +++++++ .../thiefsil/service/ChargingService.java | 26 +++++++++++++++---- 5 files changed, 63 insertions(+), 7 deletions(-) rename server-node-spring/src/main/java/org/example/thiefsil/controller/{ExtinguishController.java => MainController.java} (72%) create mode 100644 server-node-spring/src/main/java/org/example/thiefsil/entity/Cache.java create mode 100644 server-node-spring/src/main/java/org/example/thiefsil/repository/CacheRepository.java diff --git a/server-node-spring/src/main/java/org/example/thiefsil/controller/ExtinguishController.java b/server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java similarity index 72% rename from server-node-spring/src/main/java/org/example/thiefsil/controller/ExtinguishController.java rename to server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java index 6d61f6d..4776466 100644 --- a/server-node-spring/src/main/java/org/example/thiefsil/controller/ExtinguishController.java +++ b/server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java @@ -1,6 +1,8 @@ package org.example.thiefsil.controller; import lombok.RequiredArgsConstructor; +import org.example.thiefsil.entity.Cache; +import org.example.thiefsil.repository.CacheRepository; import org.example.thiefsil.repository.SocketRepository; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -12,9 +14,10 @@ import java.util.List; @Controller @RequiredArgsConstructor -public class ExtinguishController { +public class MainController { private final SocketRepository socketRepository; + private final CacheRepository cacheRepository; @GetMapping("/api/clear") public void clear() throws IOException { @@ -24,4 +27,9 @@ public class ExtinguishController { session.sendMessage(new TextMessage("CLEAR")); } } + + @GetMapping("/api/cache") + public List<Cache> cache() { + return cacheRepository.findAll(); + } } diff --git a/server-node-spring/src/main/java/org/example/thiefsil/entity/Cache.java b/server-node-spring/src/main/java/org/example/thiefsil/entity/Cache.java new file mode 100644 index 0000000..57adf79 --- /dev/null +++ b/server-node-spring/src/main/java/org/example/thiefsil/entity/Cache.java @@ -0,0 +1,23 @@ +package org.example.thiefsil.entity; + + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "cache") +public class Cache { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String number; + private boolean isElectric; +} diff --git a/server-node-spring/src/main/java/org/example/thiefsil/entity/Driver.java b/server-node-spring/src/main/java/org/example/thiefsil/entity/Driver.java index 39155b0..5f77137 100644 --- a/server-node-spring/src/main/java/org/example/thiefsil/entity/Driver.java +++ b/server-node-spring/src/main/java/org/example/thiefsil/entity/Driver.java @@ -12,7 +12,6 @@ import lombok.*; public class Driver { @Id - @GeneratedValue private Long id; private String name; private String email; diff --git a/server-node-spring/src/main/java/org/example/thiefsil/repository/CacheRepository.java b/server-node-spring/src/main/java/org/example/thiefsil/repository/CacheRepository.java new file mode 100644 index 0000000..13d2a1b --- /dev/null +++ b/server-node-spring/src/main/java/org/example/thiefsil/repository/CacheRepository.java @@ -0,0 +1,10 @@ +package org.example.thiefsil.repository; + +import org.example.thiefsil.entity.Cache; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface CacheRepository extends JpaRepository<Cache, Long> { + Optional<Cache> findByNumber(String number); +} 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 77cc5ec..f57d83c 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 @@ -10,6 +10,7 @@ import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import org.example.thiefsil.dto.CarDTO; import org.example.thiefsil.dto.ValidateCarDTO; +import org.example.thiefsil.entity.Cache; import org.example.thiefsil.entity.Driver; import org.example.thiefsil.entity.Vehicle; import org.example.thiefsil.repository.*; @@ -40,6 +41,7 @@ public class ChargingService { private final VehicleRepository vehicleRepository; private final WebMailService webMailService; private final EntityManager entityManager; + private final CacheRepository cacheRepository; @Value("${test.mail}") private String mail; @@ -155,6 +157,13 @@ public class ChargingService { } public boolean validate(String lot, String number) { + + Cache cache = cacheRepository.findByNumber(number).orElse(null); + + if (cache != null) { + return cache.isElectric(); + } + RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "application/json"); @@ -165,11 +174,15 @@ public class ChargingService { System.out.println(number); System.out.println(validateCarDTO); if (validateCarDTO.getError() != null) { + Cache tmp = Cache.builder().number(number).isElectric(false).build(); + cacheRepository.save(tmp); return false; } if (validateCarDTO.getUseFuel().contains("전기")) { makeVehicle(lot, number); + Cache tmp = Cache.builder().number(number).isElectric(true).build(); + cacheRepository.save(tmp); return true; } else return false; @@ -178,11 +191,14 @@ public class ChargingService { @PostConstruct public void init() { - Driver d1 = Driver.builder().name("홍길동").email(mail).build(); - Driver d2 = Driver.builder().name("구자욱").email(mail).build(); - Driver d3 = Driver.builder().name("김도영").email(mail).build(); - Driver d4 = Driver.builder().name("원태인").email(mail).build(); - Driver d5 = Driver.builder().name("임찬규").email(mail).build(); + driverRepository.deleteAll(); + vehicleRepository.deleteAll(); + + Driver d1 = Driver.builder().id(1L).name("홍길동").email(mail).build(); + Driver d2 = Driver.builder().id(2L).name("구자욱").email(mail).build(); + Driver d3 = Driver.builder().id(3L).name("김도영").email(mail).build(); + Driver d4 = Driver.builder().id(4L).name("원태인").email(mail).build(); + Driver d5 = Driver.builder().id(5L).name("임찬규").email(mail).build(); driverRepository.save(d1); driverRepository.save(d2); -- GitLab