Subversion Repositories bacoAlunos

Rev

Rev 1425 | Rev 1429 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1425 Rev 1426
Line 10... Line 10...
10
import pt.estgp.estgweb.services.jobs.JobScheduleService;
10
import pt.estgp.estgweb.services.jobs.JobScheduleService;
11
import pt.estgp.estgweb.utils.Email;
11
import pt.estgp.estgweb.utils.Email;
12
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
12
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
13
import pt.utl.ist.berserk.logic.serviceManager.IService;
13
import pt.utl.ist.berserk.logic.serviceManager.IService;
14
 
14
 
15
import java.util.ArrayList;
-
 
16
import java.util.Iterator;
-
 
17
import java.util.List;
15
import java.util.*;
18
 
16
 
19
/**
17
/**
20
 * Created by jorgemachado on 21/03/16.
18
 * Created by jorgemachado on 21/03/16.
21
 */
19
 */
22
public class QuestionariosService implements IService
20
public class QuestionariosService implements IService
Line 203... Line 201...
203
    SendEmailService sendEmailService = new SendEmailService();
201
    SendEmailService sendEmailService = new SendEmailService();
204
    public int sendMessage(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession)
202
    public int sendMessage(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession)
205
    {
203
    {
206
        1.5.0/docs/api/java/lang/String.html">String source = "questionario message";
204
        1.5.0/docs/api/java/lang/String.html">String source = "questionario message";
207
        AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmails(id,onlyNotAnswered);
205
        AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmails(id,onlyNotAnswered);
208
        return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result);
-
 
209
    }
-
 
210
 
-
 
211
    private int sendEmails(1.5.0/docs/api/java/lang/Long.html">Long id, 1.5.0/docs/api/java/lang/String.html">String msg, 1.5.0/docs/api/java/lang/String.html">String emailFrom, 1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject, UserSession userSession, 1.5.0/docs/api/java/lang/String.html">String source, AnnouncementDaoImpl.FindUsersResult result) {
-
 
212
        List<String> usersToConsume = result.emails;
-
 
213
 
206
 
214
 
-
 
215
        logger.info("Scheduling mail jobs to " + result.users + " users: " + usersToConsume.size() + " recipients");
-
 
216
        while(usersToConsume.size() > 0)
-
 
217
        {
-
 
218
            Iterator<String> iter = usersToConsume.iterator();
-
 
219
            List<String> usersToJob = new ArrayList<String>();
-
 
220
            int contador = 0;
-
 
221
            while(iter.hasNext() && contador < 20)
-
 
222
            {
-
 
223
                usersToJob.add(iter.next());
-
 
224
                iter.remove();
-
 
225
                contador++;
-
 
226
            }
-
 
227
            Email e =  sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom,
207
        return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result);
228
                    personFrom,
-
 
229
                    subject,
-
 
230
                    msg,
-
 
231
                    usersToJob,
-
 
232
                    userSession.getUser());
-
 
233
            e.setHtml(true);
-
 
234
            EMAILJob emailJob = new EMAILJob(e);
-
 
235
            JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id +  ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject  ,userSession);
-
 
236
        }
-
 
237
 
-
 
238
        return result.users;
-
 
239
    }
208
    }
240
 
209
 
241
    public int sendMessageCursoAfeto(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession)
210
    public int sendMessageCursoAfeto(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession)
242
    {
211
    {
243
        1.5.0/docs/api/java/lang/String.html">String source = "questionario curso message";
212
        1.5.0/docs/api/java/lang/String.html">String source = "questionario curso message";
Line 250... Line 219...
250
        AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmailsPedagogico(onlyNotAnswered,0,id);
219
        AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmailsPedagogico(onlyNotAnswered,0,id);
251
        return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result);
220
        return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result);
252
    }
221
    }
253
 
222
 
254
 
223
 
-
 
224
    private int sendEmails(1.5.0/docs/api/java/lang/Long.html">Long id, 1.5.0/docs/api/java/lang/String.html">String msg, 1.5.0/docs/api/java/lang/String.html">String emailFrom, 1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject, UserSession userSession, 1.5.0/docs/api/java/lang/String.html">String source, AnnouncementDaoImpl.FindUsersResult result) {
-
 
225
        List<String> usersToConsume = result.emails;
255
 
226
 
256
 
227
 
-
 
228
        logger.info("Scheduling mail jobs to " + result.users + " users: " + usersToConsume.size() + " recipients");
-
 
229
        //while(usersToConsume.size() > 0)
-
 
230
        //{
-
 
231
        //    Iterator<String> iter = usersToConsume.iterator();
-
 
232
        //    List<String> usersToJob = new ArrayList<String>();
-
 
233
        //    int contador = 0;
-
 
234
        //    while(iter.hasNext() && contador < 20)
-
 
235
        //    {
-
 
236
        //        usersToJob.add(iter.next());
-
 
237
        //        iter.remove();
-
 
238
        //        contador++;
-
 
239
        //    }
-
 
240
 
-
 
241
        Email e =  sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom,
-
 
242
                personFrom,
-
 
243
                subject,
-
 
244
                msg,
-
 
245
                usersToConsume,
-
 
246
                userSession.getUser());
-
 
247
 
-
 
248
        e.setHtml(true);
-
 
249
        EMAILJob emailJob = new EMAILJob(e);
-
 
250
        JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id +  ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject  ,userSession);
-
 
251
        //}
-
 
252
        enviarComprovativoAoRemetente(id, msg, emailFrom, personFrom, subject, userSession, source,usersToConsume.size());
-
 
253
        return result.users;
-
 
254
    }
-
 
255
 
-
 
256
    private void enviarComprovativoAoRemetente(1.5.0/docs/api/java/lang/Long.html">Long id, 1.5.0/docs/api/java/lang/String.html">String msg, 1.5.0/docs/api/java/lang/String.html">String emailFrom, 1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject, UserSession userSession, 1.5.0/docs/api/java/lang/String.html">String source,int sentTo)
-
 
257
    {
-
 
258
        Map<String,String> emailsComprovativos = new HashMap<String, String>();
-
 
259
        if(Email.validEmail(userSession.getUser().getEmail()))
-
 
260
            emailsComprovativos.put(userSession.getUser().getEmail(),"");
-
 
261
        if(Email.validEmail(userSession.getUser().getOutEmail()))
-
 
262
            emailsComprovativos.put(userSession.getUser().getOutEmail(),"");
-
 
263
        if(Email.validEmail(userSession.getUser().getPreferrefEmail()))
-
 
264
            emailsComprovativos.put(userSession.getUser().getPreferrefEmail(),"");
-
 
265
        List<String> comprovativos = new ArrayList<String>();
-
 
266
        comprovativos.addAll(emailsComprovativos.keySet());
-
 
267
        if(comprovativos.size() > 0)
-
 
268
        {
-
 
269
            Email e =  sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom,
-
 
270
                    personFrom,
-
 
271
                    subject + " (COMPROVATIVO PAE) ",
-
 
272
                    "<u>Olá " + userSession.getUser().getName() + " - Este é um comprovativo do seu envio de mensagem a " + sentTo + " Alunos</u><br/><br/>" + msg,
-
 
273
                    comprovativos,
-
 
274
                    userSession.getUser());
-
 
275
 
-
 
276
            e.setHtml(true);
-
 
277
            EMAILJob emailJob = new EMAILJob(e);
-
 
278
            JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id +  ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject  ,userSession);
-
 
279
        }
-
 
280
    }
257
 
281
 
258
 
282
 
259
}
283
}