1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.announce.service.daemon;
35
36 import java.sql.Timestamp;
37 import java.util.Calendar;
38 import java.util.GregorianCalendar;
39 import java.util.List;
40
41 import fr.paris.lutece.plugins.announce.business.Announce;
42 import fr.paris.lutece.plugins.announce.business.AnnounceHome;
43 import fr.paris.lutece.portal.service.daemon.Daemon;
44 import fr.paris.lutece.portal.service.mail.MailService;
45 import fr.paris.lutece.portal.service.util.AppPropertiesService;
46
47
48
49
50 public class AnnounceExpirationDaemon extends Daemon
51 {
52 private static final String PROPERTY_NB_DAYS_BEFORE_ANNOUNCES_REMOVAL = "announce.nbDaysBeforeAnnouncesRemoval";
53 private static final int DEFAULT_NB_DAYS_BEFORE_ANNOUNCES_REMOVAL = 90;
54
55
56
57
58 @Override
59 public void run( )
60 {
61 Calendar calendar = new GregorianCalendar( );
62 Calendar calendarNotification = new GregorianCalendar( );
63 int nNbDaysBeforeAnnouncesRemoval = AppPropertiesService.getPropertyInt( PROPERTY_NB_DAYS_BEFORE_ANNOUNCES_REMOVAL,
64 DEFAULT_NB_DAYS_BEFORE_ANNOUNCES_REMOVAL );
65 int nNbDaysBeforeAnnouncesNotify = nNbDaysBeforeAnnouncesRemoval + 7;
66 String email;
67 String strSenderName = "strSenderName";
68 String strSenderEmail = MailService.getNoReplyEmail( );
69 String strSubject = "Suppression d'annouce";
70 String strMessage = "Bonjour, " + "\nL'annouce : ";
71
72 calendar.add( Calendar.DATE, -1 * nNbDaysBeforeAnnouncesRemoval );
73 calendarNotification.add( Calendar.DATE, -1 * nNbDaysBeforeAnnouncesNotify );
74
75 Timestamp timestamp = new Timestamp( calendar.getTimeInMillis( ) );
76 Timestamp timestampNotify = new Timestamp( calendarNotification.getTimeInMillis( ) );
77
78 List<Integer> listIdNotifiesAnnounces = AnnounceHome.findIdAnnouncesByDateCreation( timestampNotify );
79 for ( Integer idNotifieAnn : listIdNotifiesAnnounces )
80 {
81 Announce ann = AnnounceHome.findByPrimaryKey( idNotifieAnn.intValue( ) );
82 int hasN = ann.getHasNotify( );
83 if ( hasN == 0 )
84 {
85 email = ann.getContactInformation( );
86 String message = strMessage + ann.getTitle( ) + " sera supprim\u00E9e dans une semaine. "
87 + "Veuillez la modifier si vous voulez la maintenir \n";
88 MailService.sendMailHtml( email, strSenderName, strSenderEmail, strSubject, message );
89 ann.setHasNotify( 1 );
90 AnnounceHome.setHasNotifed( ann );
91 }
92
93 }
94
95 List<Integer> listIdExpiredAnnounces = AnnounceHome.findIdAnnouncesByDateCreation( timestamp );
96
97 for ( Integer nIdExpiredAnnounce : listIdExpiredAnnounces )
98 {
99 AnnounceHome.remove( nIdExpiredAnnounce );
100 }
101
102 setLastRunLogs( listIdNotifiesAnnounces.size( ) + " notified and " + listIdExpiredAnnounces.size( ) + " expired announces have been removed" );
103 }
104 }