diff --git a/server-node-spring/src/main/java/org/example/thiefsil/controller/WebMailController.java b/server-node-spring/src/main/java/org/example/thiefsil/controller/WebMailController.java index d7c961ad489c7a55f4030c49340d8e04b7da7da1..6fab63f57e2e2103664f9f8354bf836cef870eb5 100644 --- a/server-node-spring/src/main/java/org/example/thiefsil/controller/WebMailController.java +++ b/server-node-spring/src/main/java/org/example/thiefsil/controller/WebMailController.java @@ -14,7 +14,7 @@ public class WebMailController { @GetMapping("/hi") public String hi() { - webMailService.sendMail(); + webMailService.sendChargeMail("0"); return "hi"; } } 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 18e5dfc273ad2c712bd01413cb2a878222c693f1..edef0b1216ba85b961dd35fe40bfb9e829285bcb 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 @@ -28,6 +28,7 @@ public class ChargingService { private final SocketRepository socketRepository; private final DriverRepository driverRepository; private final VehicleRepository vehicleRepository; + private final WebMailService webMailService; @Value("${test.mail}") @@ -56,7 +57,12 @@ public class ChargingService { public void doCharging(String lot, String charge) { Vehicle vehicle = vehicleRepository.findVehicleByCharger(Integer.valueOf(lot)).orElse(null); if (vehicle == null) return; - vehicle.setCharge(Integer.valueOf(charge)); + int c = Integer.valueOf(charge); + vehicle.setCharge(c); + + if (c == 100) { + webMailService.sendChargeMail(lot); + } vehicleRepository.save(vehicle); } @@ -103,6 +109,8 @@ public class ChargingService { for (WebSocketSession session : sessions) { session.sendMessage(new TextMessage(lot + "-FIRE")); } + + webMailService.sendFireMail(lot); } @PostConstruct 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 d1343394489ae304381eebf6ea522c91af89e370..e5453866d9be493a7df7245352449a6e52130563 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 @@ -1,26 +1,57 @@ package org.example.thiefsil.service; import lombok.RequiredArgsConstructor; +import org.example.thiefsil.entity.Driver; +import org.example.thiefsil.entity.Vehicle; +import org.example.thiefsil.repository.SocketRepository; +import org.example.thiefsil.repository.VehicleRepository; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; + +import java.io.IOException; +import java.util.List; @Service @RequiredArgsConstructor public class WebMailService { private final JavaMailSender mailSender; + private final VehicleRepository vehicleRepository; @Value("${test.mail}") private String mail; - public void sendMail() { + public void sendChargeMail(String lot) { + SimpleMailMessage message = new SimpleMailMessage(); + Vehicle vehicle = vehicleRepository.findVehicleByCharger(Integer.valueOf(lot)).orElse(null); + Driver driver = vehicle.getDriver(); + + message.setTo(driver.getEmail()); + message.setSubject("[시프 충전소] " + driver.getName() + "님의 차량이 완충되었습니다"); + message.setText(driver.getName() + "님의 " + vehicle.getNumber() + " 차량이 완충되었습니다"); + mailSender.send(message); + } + + public void sendFireMail(String lot) throws IOException { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(mail); - message.setSubject("테스트 메일"); - message.setText("테스트 메일입니다"); + message.setSubject("[시프 충전소] " + "(관리자) " + lot + "번 충전기에서 화재가 발생했습니다"); + message.setText(lot + "번 충전기에서 화재가 발생했습니다"); + mailSender.send(message); + + List<Vehicle> vehicles = vehicleRepository.findAll(); + + for (Vehicle vehicle : vehicles) { + Driver driver = vehicle.getDriver(); + message.setTo(driver.getEmail()); + message.setSubject("[시프 충전소] " + driver.getName() + "님 " + lot + "번 충전기에서 화재가 발생했습니다"); + mailSender.send(message); + } } }