From 006479f1f412b4dfbe61f93fc4aea1442c6fd167 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, 19 Nov 2024 14:49:56 +0900 Subject: [PATCH] =?UTF-8?q?feat(spring):=20=EC=99=84=EC=B6=A9,=20=ED=99=94?= =?UTF-8?q?=EC=9E=AC=20=EA=B0=90=EC=A7=80=20=EB=A9=94=EC=9D=BC=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=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 --- .../controller/WebMailController.java | 2 +- .../thiefsil/service/ChargingService.java | 10 ++++- .../thiefsil/service/WebMailService.java | 37 +++++++++++++++++-- 3 files changed, 44 insertions(+), 5 deletions(-) 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 d7c961a..6fab63f 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 18e5dfc..edef0b1 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 d134339..e545386 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); + } } } -- GitLab