QuestionsAnswersService.java
package sk.iway.iwcm.components.qa.rest;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Service;
import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.SendMail;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.common.CloudToolsForCore;
import sk.iway.iwcm.components.qa.jpa.QuestionsAnswersEntity;
import sk.iway.iwcm.database.SimpleQuery;
import sk.iway.iwcm.i18n.Prop;
@Service
public class QuestionsAnswersService {
/**
* Odosle odpoved navstevnikovi stranky
* @param qa
* @param request
* @return
*/
public boolean sendAnswerEmail(QuestionsAnswersEntity qa, HttpServletRequest request) {
String lng = (String)request.getSession().getAttribute(Prop.SESSION_I18N_PROP_LNG);
Prop prop = Prop.getInstance(Constants.getServletContext(), lng, false);
try {
String message = "<p>"+prop.getText("components.qa.add_action.answer_to_your_question") + ":<br/></p>";
String question = qa.getQuestion().trim();
String answer = qa.getAnswerToEmail().trim();
String sender = qa.getToName().trim();
String recipient = qa.getFromName().trim();
if (Tools.isEmail(qa.getToEmail()) && Tools.isEmail(qa.getFromEmail()) && Tools.isNotEmpty(answer) && answer.length()>10) {
message += "<p>" + prop.getText("components.qa.add_action.question") + ":<br/></p><p>"+question+"<br/><br/></p>";
message += "<p>" + prop.getText("components.qa.add_action.answer") + ":<br/></p><p>"+answer+"<br/><br/></p>";
message += "<p><br/><br/>" + prop.getText("components.qa.add_action.footer") + " " + sender + "</p>";
//bacha, toto je odpoved, takze toName je vlastne sender
//a fromName je recipient
String toName = qa.getToName();
if (toName == null || toName.length()<2)
{
toName = qa.getToEmail();
}
String subject = prop.getText("components.qa.add_action.answer_to_your_question");
//tu si treba uvedomit, ze from je navstevnik webu a to je admin, ktory odpoveda na otazku
SendMail.send(toName, qa.getToEmail(), qa.getFromEmail(), subject, message);
//daj do requestu answer
String email = "<table border=0><tr><td>"+prop.getText("components.qa.add_action.sender")+": </td><td>"+sender+" <"+qa.getToEmail()+"></td></tr>";
email += "<tr><td>"+prop.getText("components.qa.add_action.recipient")+": </td><td>"+recipient+" <"+qa.getFromEmail()+"></td></tr>";
email += "<tr><td>"+prop.getText("components.qa.add_action.subject")+": </td><td>"+subject+"</td></tr>";
email += "<tr><td>"+prop.getText("components.qa.add_action.email_body")+": </td><td> </td></tr>";
email += "<tr><td colspan=2>"+Tools.replace(message, "\n", "<br>")+"</td></tr>";
email += "</table>";
request.setAttribute("answer", email);
}
return true;
}
catch (Exception ex)
{
Logger.error(QuestionsAnswersService.class, ex);
return false;
}
}
/**
* Ziska hodnotu poradia usporiadania pre novy zaznam
* @param groupName
* @return
*/
public int getNewPriority(String groupName){
return new SimpleQuery().forInt("select max(sort_priority) from questions_answers where group_name=?"+CloudToolsForCore.getDomainIdSqlWhere(true), groupName)+10;
}
}