package kr.wisestone.owl.service.impl; import com.google.common.collect.Lists; import kr.wisestone.owl.common.ExcelConditionCheck; import kr.wisestone.owl.config.CommonConfiguration; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.domain.enumType.EmailType; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.CompanyFieldMapper; import kr.wisestone.owl.mapper.EmailTemplateMapper; import kr.wisestone.owl.repository.CompanyFieldRepository; import kr.wisestone.owl.repository.EmailTemplateRepository; import kr.wisestone.owl.repository.HostingFieldRepository; import kr.wisestone.owl.repository.IspFieldRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.CommonUtil; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.vo.*; import kr.wisestone.owl.web.condition.CompanyFieldCondition; import kr.wisestone.owl.web.condition.EmailTemplateCondition; import kr.wisestone.owl.web.form.CompanyFieldForm; import kr.wisestone.owl.web.view.ExcelView; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class EmailTemplateServiceImpl extends AbstractServiceImpl> implements EmailTemplateService { @Autowired private EmailTemplateRepository emailTemplateRepository; @Autowired private EmailTemplateMapper emailTemplateMapper; @Autowired private SystemEmailService systemEmailService; @Autowired private IssueService issueService; @Autowired private CommonConfiguration configuration; @Override protected JpaRepository getRepository() { return this.emailTemplateRepository; } @Override @Transactional public void find(Map resJsonData, EmailTemplateCondition condition) { //EmailTemplate emailTemplate = this.getEmailTemplate(condition.getId()); //EmailTemplateVo emailTemplateVo = ConvertUtil.copyProperties(emailTemplate, EmailTemplateVo.class); Issue issue = this.issueService.getIssue(condition.getIssueId()); Map issueMap = new HashMap<>(); // 이슈 정보를 이메일 전송에 사용하기 위해 Map 형태로 변환한다. this.issueService.makeIssueMapToIssue(issue, issueMap); // 발신자 표시 UserVo toUser = this.webAppUtil.getLoginUser(); issueMap.put("toUser", toUser.getName() + "(" + CommonUtil.decryptAES128(toUser.getAccount()) + ")"); // 이슈 링크 String projectKey = issue.getProject().getProjectKey(); Long IssueNumber = issue.getIssueNumber(); String link = this.configuration.getEmailSendUrl() + "/#/issues/issueList?projectKey=" + projectKey + "&issueNumber=" + IssueNumber.toString(); issueMap.put("issueLink", link); issueMap.put("projectLink", link); EmailType emailType = EmailType.valueOf(condition.getTemplateType()); String type = this.systemEmailService.makeEmailContent(emailType, issueMap); EmailTemplateVo emailTemplateVo = new EmailTemplateVo(); emailTemplateVo.setTemplate(type); resJsonData.put(Constants.RES_KEY_CONTENTS, emailTemplateVo); } @Override @Transactional(readOnly = true) public EmailTemplate getEmailTemplate(Long id) { if (id == null) { throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.EMAIL_TEMPLATE_NOT_EXIST)); } EmailTemplate emailTemplate = this.findOne(id); if (emailTemplate == null) { throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.EMAIL_TEMPLATE_NOT_EXIST)); } return emailTemplate; } }