Changes between Version 3 and Version 4 of UseCaseImplementationsFinal


Ignore:
Timestamp:
02/04/24 18:05:54 (10 months ago)
Author:
211012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementationsFinal

    v3 v4  
    249249}}}
    250250Откако ќе заврши оваа постапка, најавениот корисник ќе има пристап и до ресурсите на профилот со кој е поврзан.
     251== Систем
     252=== Испраќа известување до администратори
     253Оваа функционалност предвидува испраќања на нотификација/потсетник до администарторите во случај кога ќе се соберат повеќе профили/фирми за одобрување. За ова да функционира, потребно беше да имплементираме сервис за испраќање пораки, кој ја користи Spring Email библиотеката.
     254{{{#!java
     255@Service
     256public class MailingServiceImpl implements MailingService {
     257
     258    private final JavaMailSender emailSender;
     259
     260    public MailingServiceImpl(JavaMailSender emailSender) {
     261        this.emailSender = emailSender;
     262    }
     263
     264    @Override
     265    public void sendMail(String to, String subject, String messageText) {
     266        SimpleMailMessage mail = new SimpleMailMessage();
     267        mail.setFrom("TourMate");
     268        mail.setTo(to);
     269        mail.setSubject(subject);
     270        mail.setText(messageText);
     271        emailSender.send(mail);
     272    }
     273}
     274}}}
     275Оваа проверка се прави во одредено време, секој понеделник на полноќ и доколку постојат фирми кои не се одобрени, се испраќа порака до сите администратори како потсетување. За да може во позадина да се извршуваат вакви задчаи потребно беше апликацијата да ја анотираме со @EnableScheduling, а компонентата изгледа вака:
     276{{{#!java
     277@Component
     278public class MailJobs {
     279    @Autowired
     280    private BusinessManager businessManager;
     281    @Autowired
     282    private UsersManager usersManager;
     283    @Autowired
     284    private MailingService mailingService;
     285
     286    @Scheduled(cron = "0 0 * * * MON")
     287    public void execute() {
     288        List<Business> unapprovedBusinesses = businessManager.getUnapprovedBusinesses();
     289        if(!unapprovedBusinesses.isEmpty())
     290        {
     291            List<User> admins = usersManager.getAdmins().stream().filter(x -> x.getEmail().contains("@")).toList();
     292            String subject = "Бизниси кои чекаат на одобрување";
     293            String message = "Почитувани,\n\nВе известуваме дека постојат повеќе бизнис кои чекаат на Ваша одлука за одобрување.\n\nСо почит,\n\nTourMate";
     294            admins.forEach(x -> mailingService.sendMail(x.getEmail(), subject, message));
     295        }
     296    }
     297}
     298}}}