From 36a7ab9d5fe2f64a5d8804255f40da2bfb0c88ed 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: Sun, 1 Dec 2024 20:20:24 +0900
Subject: [PATCH] =?UTF-8?q?feat(spring):=20=EB=AF=B8=EC=B6=A9=EC=A0=84=20?=
 =?UTF-8?q?=EC=A3=BC=EC=B0=A8=20=EC=B0=A8=EB=9F=89=20=EB=A9=94=EC=9D=BC=20?=
 =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EA=B8=B0=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

---
 .../example/thiefsil/repository/VehicleRepository.java |  3 ++-
 .../org/example/thiefsil/service/ChargingService.java  |  7 ++++++-
 .../org/example/thiefsil/service/WebMailService.java   | 10 ++++++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/server-node-spring/src/main/java/org/example/thiefsil/repository/VehicleRepository.java b/server-node-spring/src/main/java/org/example/thiefsil/repository/VehicleRepository.java
index 6e2781d..36a642c 100644
--- a/server-node-spring/src/main/java/org/example/thiefsil/repository/VehicleRepository.java
+++ b/server-node-spring/src/main/java/org/example/thiefsil/repository/VehicleRepository.java
@@ -15,5 +15,6 @@ public interface VehicleRepository extends JpaRepository<Vehicle, Long> {
     @Query("SELECT v FROM Vehicle v WHERE v.charger = :charger")
     Optional<Vehicle> findVehicleByCharger(@Param("charger") int charger);
     public void deleteVehicleByCharger(int charger);
-    public List<Vehicle> findVehiclesByParkingTimeBeforeAndLastMailBefore(LocalDateTime parkingTime, LocalDateTime lastMail);
+    public List<Vehicle> findVehiclesByParkingTimeBeforeAndLastMailBeforeAndDriverIsNotNull(LocalDateTime parkingTime, LocalDateTime lastMail);
+    public List<Vehicle> findVehiclesByParkingTimeBeforeAndDriverIsNull(LocalDateTime parkingTime);
 }
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 d3bb6ae..77cc5ec 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
@@ -140,13 +140,18 @@ public class ChargingService {
         park = park.minusMinutes(3);
         mail = mail.minusMinutes(1);
 
-        List<Vehicle> vehicles = vehicleRepository.findVehiclesByParkingTimeBeforeAndLastMailBefore(park, mail);
+        List<Vehicle> vehicles = vehicleRepository.findVehiclesByParkingTimeBeforeAndLastMailBeforeAndDriverIsNotNull(park, mail);
         for (Vehicle vehicle : vehicles) {
             webMailService.sendOverMail(vehicle);
             vehicle.setLastMail(mail);
             vehicleRepository.save(vehicle);
         }
 
+        vehicles = vehicleRepository.findVehiclesByParkingTimeBeforeAndDriverIsNull(mail);
+        for (Vehicle vehicle : vehicles) {
+            webMailService.sendChargelessMail(vehicle);
+        }
+
     }
 
     public boolean validate(String lot, String number) {
diff --git a/server-node-spring/src/main/java/org/example/thiefsil/service/WebMailService.java b/server-node-spring/src/main/java/org/example/thiefsil/service/WebMailService.java
index a375b97..84341af 100644
--- a/server-node-spring/src/main/java/org/example/thiefsil/service/WebMailService.java
+++ b/server-node-spring/src/main/java/org/example/thiefsil/service/WebMailService.java
@@ -71,4 +71,14 @@ public class WebMailService {
         System.out.println(LocalDateTime.now(ZoneId.of("Asia/Seoul")) + " 메일 전송 " + vehicle.getNumber());
     }
 
+    public void sendChargelessMail(Vehicle vehicle) {
+        SimpleMailMessage message = new SimpleMailMessage();
+
+        message.setTo(mail);
+        message.setSubject("[시프 충전소] " + vehicle.getCharger() + "번 충전기에 미충전 주차 차량이 있습니다");
+        message.setText(vehicle.getNumber() + " 차량이 " + vehicle.getCharger() + "번 충전기에서 미충전 주차 중입니다");
+
+        mailSender.send(message);
+    }
+
 }
-- 
GitLab