Untitled
unknown
plain_text
a year ago
1.7 kB
5
Indexable
@Component @EnableScheduling public class TrainingRaportGenerator { // ... (Constructor and dependencies) @Scheduled(fixedDelay = 5000) public void generateTrainingRaport() { List<Training> trainingList = trainingProvider.getAllTrainings(); // Find unique users and store them in a list List<User> uniqueUsers = trainingList.stream() .map(Training::getUser) .distinct() .collect(Collectors.toList()); // Iterate over unique users for (User user : uniqueUsers) { // Filter trainings for the current user List<Training> userTrainings = trainingList.stream() .filter(t -> t.getUser().equals(user)) .collect(Collectors.toList()); int numberOfTrainings = userTrainings.size(); String activityType = numberOfTrainings > 0 ? userTrainings.get(0).getActivityType().name() : "No activity"; String result = user.getFirstName() + " " + user.getLastName() + "\n" + "Your weekly dose of trainings: " + numberOfTrainings + "\n" + "Your last activity was: " + activityType + "\n"; EmailDto email = new EmailDto(user.getEmail(), "Weekly report", result); try { emailSender.send(email); } catch (Exception e) { System.err.println("Error sending email to " + user.getEmail()); } } } }
Editor is loading...
Leave a Comment