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 6e2781d139a9cc3711872362920bd12b6541497a..36a642c6e1c522ee6203e9346414d222a1200254 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 d3bb6aea3d18edc371a73817501616e29c0b14a9..77cc5ec15b53297fe07dad49f52f5812070570a5 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 a375b97ee1f46d6b0b52d323e2ced1a00ed027aa..84341af7a3f16b7a4197b718aa1d16c933116a02 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); + } + }