diff --git a/src/main/java/com/example/workflow/UpdateEndUserService.java b/src/main/java/com/example/workflow/UpdateEndUserService.java index c451f91ec931b7f7a6138200480e248982d05a10..c7b4a88489d3dc9e012d6ae8efbfc310bb04c19f 100644 --- a/src/main/java/com/example/workflow/UpdateEndUserService.java +++ b/src/main/java/com/example/workflow/UpdateEndUserService.java @@ -4,6 +4,7 @@ import jakarta.inject.Named; import javax.inject.Inject; import org.camunda.bpm.engine.delegate.DelegateExecution; import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.springframework.jdbc.core.JdbcTemplate; import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; @@ -11,18 +12,29 @@ import java.util.Properties; @Named public class UpdateEndUserService implements JavaDelegate { + @Inject + private JdbcTemplate jdbcTemplate; @Override public void execute(DelegateExecution execution) throws Exception { // 1. Retrieve username (assuming it holds the recipient email) String recipientEmail = (String) execution.getVariable("EmailAddress"); + TicketInfo latestTicketInfo = fetchLatestTicketInfo(); // 2. Construct notification message (assuming ticket ID is already set) - String updateMessage = "Your ticket has been submitted. We will update you on the progress."; + String updateMessage = "Your ticket has been submitted. We will update you on the progress.\nTicket Status: \"" + latestTicketInfo.getStatus() + "\""; + // 3. Send notification email sendNotificationEmail(recipientEmail, updateMessage, "Ticket Submitted"); } + private TicketInfo fetchLatestTicketInfo() { + String sql = "SELECT ID, status FROM ticket_submission ORDER BY ID DESC LIMIT 1"; + return jdbcTemplate.queryForObject(sql, (rs, rowNum) -> new TicketInfo( + rs.getString("id"), rs.getString("status") + )); + } + private void sendNotificationEmail(String recipientEmail, String messageBody, String subject) { // Email configuration String host = "imap.gmail.com"; @@ -67,4 +79,22 @@ public class UpdateEndUserService implements JavaDelegate { throw new RuntimeException(e); } } + // Utility class for handling ticket information + private static class TicketInfo { + private String id; + private String status; + + public TicketInfo(String id, String status) { + this.id = id; + this.status = status; + } + + public String getId() { + return id; + } + + public String getStatus() { + return status; + } + } } \ No newline at end of file diff --git a/target/classes/com/example/workflow/UpdateEndUserService$1.class b/target/classes/com/example/workflow/UpdateEndUserService$1.class index 02c264ac13fab2019794f658019540e72c03479b..7ffc07e9c0052b15f53778fc0b86ba8207738752 100644 Binary files a/target/classes/com/example/workflow/UpdateEndUserService$1.class and b/target/classes/com/example/workflow/UpdateEndUserService$1.class differ diff --git a/target/classes/com/example/workflow/UpdateEndUserService$TicketInfo.class b/target/classes/com/example/workflow/UpdateEndUserService$TicketInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..44ca397fba7c7f8e686630b7ed9a9de5c4237c8d Binary files /dev/null and b/target/classes/com/example/workflow/UpdateEndUserService$TicketInfo.class differ diff --git a/target/classes/com/example/workflow/UpdateEndUserService.class b/target/classes/com/example/workflow/UpdateEndUserService.class index c83e715bddd02b17ff06e09853cf61d0154365cf..2d15b5114c56cc06654b3ca7be578a90d998b74c 100644 Binary files a/target/classes/com/example/workflow/UpdateEndUserService.class and b/target/classes/com/example/workflow/UpdateEndUserService.class differ