Skip to content
Snippets Groups Projects
Commit 52291d62 authored by 천 진강's avatar 천 진강
Browse files

feat(spring): 이전 이용 차량 캐싱 기능 추가

parent ea289913
No related branches found
No related tags found
No related merge requests found
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();
}
}
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;
}
......@@ -12,7 +12,6 @@ import lombok.*;
public class Driver {
@Id
@GeneratedValue
private Long id;
private String name;
private String email;
......
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);
}
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment