From a8a8d35b27df67e169c8b1aab45edec1c1b25eae Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 02 12월 2021 21:48:04 +0900 Subject: [PATCH] - 이메일 실시간 발송 - 이슈 리스트에서 하위일감 개수 표시 - 이슈 리스트에서 하위 이슈는 안보이게 --- src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 49 insertions(+), 9 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java index a51aff3..2e4602d 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java @@ -7,20 +7,20 @@ import com.google.common.collect.Lists; import com.sun.mail.smtp.SMTPAddressFailedException; import kr.wisestone.owl.config.CommonConfiguration; +import kr.wisestone.owl.constant.ElasticSearchConstants; import kr.wisestone.owl.constant.MailConstants; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.Department; import kr.wisestone.owl.domain.SystemEmail; import kr.wisestone.owl.domain.User; +import kr.wisestone.owl.domain.UserDepartment; import kr.wisestone.owl.domain.enumType.EmailType; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.repository.SystemEmailRepository; import kr.wisestone.owl.service.SystemEmailService; +import kr.wisestone.owl.service.UserDepartmentService; import kr.wisestone.owl.service.UserService; -import kr.wisestone.owl.util.CommonUtil; -import kr.wisestone.owl.util.DateUtil; -import kr.wisestone.owl.util.MapUtil; -import kr.wisestone.owl.util.StringTemplateUtil; +import kr.wisestone.owl.util.*; import org.apache.commons.io.FilenameUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -64,6 +64,9 @@ @Autowired private SpringTemplateEngine springTemplateEngine; + @Autowired + private UserDepartmentService userDepartmentService; + @Override protected JpaRepository<SystemEmail, Long> getRepository() { return this.systemEmailRepository; @@ -97,7 +100,6 @@ locale = CommonUtil.getUserLanguage(loginUser.getLanguage()); } } - this.makeDirectContextEmail(emailType, params, locale, new String[]{CommonUtil.decryptAES128(sendUser)}); } } @@ -179,19 +181,19 @@ content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); break; - case ISSUE_SEND_1: // �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚 + case ISSUE_SEND_1: // �씠�뒋 �씠硫붿씪 �뀥�뵆由�1濡� ���긽�옄�뿉寃� 諛쒖넚 mailConstants = MailConstants.ISSUE_SEND_1; context = StringTemplateUtil.makeContext(params, locale); content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); break; - case ISSUE_SEND_2: // �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚 + case ISSUE_SEND_2: // �씠�뒋 �씠硫붿씪 �뀥�뵆由�2濡� ���긽�옄�뿉寃� 諛쒖넚 mailConstants = MailConstants.ISSUE_SEND_2; context = StringTemplateUtil.makeContext(params, locale); content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); break; - case ISSUE_SEND_3: // �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚 + case ISSUE_SEND_3: // �씠�뒋 �씠硫붿씪 �뀥�뵆由�3濡� ���긽�옄�뿉寃� 諛쒖넚 mailConstants = MailConstants.ISSUE_SEND_3; context = StringTemplateUtil.makeContext(params, locale); content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context); @@ -248,8 +250,8 @@ } } } - this.javaMailSender.send(message); + } catch (MailSendException e) { log.error(e.getMessage()); Exception[] exceptions = e.getMessageExceptions(); @@ -335,6 +337,13 @@ } if (excludeCheck) { + /*List<UserDepartment> userDepartments = this.userDepartmentService.getUserDepartments(department.getId()); + if(userDepartments != null){ + for (UserDepartment userDepartment : userDepartments){ + User user = this.userService.getUser(userDepartment.getUserId()); + results.add(user.getAccount()); + } + }*/ results.add(department.getDepartmentName()); } } @@ -379,6 +388,37 @@ } } + // �떎�떆媛� �씠硫붿씪 諛쒖넚 + @Override + @Transactional + public void realTimeSendEmail() { + + List<String> sendUsers = this.userService.findByRealTimeNotifyTime(); + + for (String sendUser : sendUsers) { + // �궗�슜�옄 蹂꾨줈 �븘吏� 諛쒖넚�릺吏� �븡�� �씠硫붿씪�쓣 議고쉶�븳�떎. + List<SystemEmail> systemEmails = this.findBySendAddressAndSendYn(sendUser); + StringBuilder emailBuilder = new StringBuilder(); + User user = this.userService.findByAccount(sendUser); + + if (user != null) { + Locale locale = CommonUtil.getUserLanguage(user.getLanguage()); // 硫붿씪�쓣 諛쏅뒗 �궗�슜�옄媛� �궗�슜�븯怨� �엳�뒗 �뼵�뼱 �젙蹂대�� 媛��졇�삩�떎. + + for (SystemEmail systemEmail : systemEmails) { + // 諛쏅뒗 �궗�엺�쓽 �뼵�뼱濡� 蹂�寃쏀븯�뿬 �삁�빟�맂 �씠硫붿씪�쓣 諛쒖넚�븳�떎. + this.makeReservationContextEmail(emailBuilder, systemEmail, locale); + systemEmail.setSendYn(true); + } + // �궡�슜�씠 �엳�쑝硫� 諛쒖넚 + if (!StringUtils.isEmpty(emailBuilder.toString())) { + // �씠硫붿씪�쓣 諛쒖넚�븳�떎. + this.sendEmail(this.messageAccessor.message(MsgConstants.REALTIME_EMAIL_TITLE, locale), emailBuilder.toString(), new String[]{CommonUtil.decryptAES128(sendUser)}, null); + this.systemEmailRepository.saveAll(systemEmails); + } + } + } + } + // 諛쏅뒗 �궗�엺�쓽 �뼵�뼱濡� 蹂�寃쏀븯�뿬 �삁�빟�맂 �씠硫붿씪�쓣 諛쒖넚�븳�떎. private void makeReservationContextEmail(StringBuilder emailBuilder, SystemEmail systemEmail, Locale locale) { MailConstants mailConstants; -- Gitblit v1.8.0