
org.jlot.mailing.cron.DeveloperNotificationMailJob Maven / Gradle / Ivy
package org.jlot.mailing.cron;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import org.jlot.core.cron.AbstractDailyNightlyCronJob;
import org.jlot.core.dto.LocalizationDTO;
import org.jlot.core.service.api.LocalizationService;
import org.jlot.mailing.service.DeveloperNotificationMailingService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional(readOnly = true)
public class DeveloperNotificationMailJob extends AbstractDailyNightlyCronJob
{
@Inject
private DeveloperNotificationMailingService developerNotificationMailingService;
@Inject
private LocalizationService localizationService;
@Override
protected void runJob ( String projectName )
{
List listChangedLocalizations = getChangedLocalizations(projectName);
if (listChangedLocalizations.size() != 0)
{
developerNotificationMailingService.executeNotificationJob(projectName, listChangedLocalizations);
}
}
public List getChangedLocalizations ( String projectName )
{
List listLocalizations = localizationService.getLocalizations(projectName);
List listChangedLocalizations = new ArrayList();
for (LocalizationDTO localization : listLocalizations)
{
Calendar nowCalendar = Calendar.getInstance();
nowCalendar.add(Calendar.DAY_OF_WEEK, -1);
Date nowDate = nowCalendar.getTime();
if (localization.getLastChangesDate().after(nowDate))
{
listChangedLocalizations.add(localization);
}
}
return listChangedLocalizations;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy