Revision: 66189
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 26, 2014 18:46 by tvhung83
Initial Code
String cacheId = req.getParameter("cache_id"); String nameInEmail = req.getParameter("name_in_email"); // find EmailMessage by cache_id EmailMessage emailMessage = emailMessageService.findBy(cacheId); // find BroadcastReceiverChannelDestination by channel, broadcast_id, destination, receiver_id BroadcastReceiverChannelDestination brcd = brcdService.findBy("EMAIL", emailMessage.getBroadcast().getId(), emailMessage.getReceiverEmail(), emailMessage.getReceiver().getId()); // get current BroadcastResponseOption of user BroadcastResponseOption curRespOpt = brcd.getResponse(); // find BroadcastResponseOption by broadcast_id and name_in_email (received BroadcastResponseOption from user) BroadcastResponseOption newRespOpt = broadcastResponseOptionService.findBy(emailMessage.getBroadcast().getId(), nameInEmail); // detect ResponseMessageTemplateType ResponseMessageTemplateType respType; if (broadcast.getExpiryDateTime().before(new Date())) { respType = ResponseMessageTemplateType.ResponseReceived; // received after deadline } else if (null == curRespOpt) { respType = ResponseMessageTemplateType.NewResponse; // new response } else if (!newRespOpt.getNameInEmail().equalsIgnoreCase(curRespOpt.getNameInEmail())) { respType = ResponseMessageTemplateType.ResponseChanged; // change response } else if (newRespOpt.getNameInEmail().equalsIgnoreCase(curRespOpt.getNameInEmail())) { respType = ResponseMessageTemplateType.ResponseDuplicated; // duplicated response } // one BroadcastResponseOption has a list of ResponseMessageTemplate (NewResponse, ResponseChanged,...) List<ResponseMessageTemplate> lstRespMsgTempl = bRespOpt.getResponseOption().getResponseMessageTemplates(); for (ResponseMessageTemplate respMsgTempl : lstRespMsgTempl) { if (respType == respMsgTempl.getType()) { // get email to send String emailSubject = respMsgTempl.getMessageTemplate().getEmailSubject(); String emailContent = respMsgTempl.getMessageTemplate().getEmailContent(); // send email boolean sendingResult = broadcastWorker.sendEmail(emailMessage.getReceiverEmail(), emailSubject, emailContent); // action after responding ActionAfterResponding action = respMsgTempl.getActionAfterResponding(); if (null != action) { // Custom page if (ActionAfterRespondingType.Page == action.getType()) { String displayContent = action.getContent(); } else if (ActionAfterRespondingType.Link == action.getType()) { // redirect to link String redirectLink = action.getContent(); } } } }
Initial URL
Initial Description
Track email response logic
Initial Title
Track email response
Initial Tags
Initial Language
Java