OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-01 2ba4d0379a7e5ac1d0fb36a8891bee4f0490f201
src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
@@ -9,6 +9,7 @@
import kr.wisestone.owl.config.CommonConfiguration;
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.enumType.EmailType;
@@ -96,7 +97,6 @@
                        locale = CommonUtil.getUserLanguage(loginUser.getLanguage());
                    }
                }
                this.makeDirectContextEmail(emailType, params, locale, new String[]{CommonUtil.decryptAES128(sendUser)});
            }
        }
@@ -174,6 +174,24 @@
            case ISSUE_SEND:    //  이슈 이메일로 대상자에게 발송
                mailConstants = MailConstants.ISSUE_SEND;
                context = StringTemplateUtil.makeContext(params, locale);
                content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                break;
            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:    //  이슈 이메일 템플릿2로 대상자에게 발송
                mailConstants = MailConstants.ISSUE_SEND_2;
                context = StringTemplateUtil.makeContext(params, locale);
                content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                break;
            case ISSUE_SEND_3:    //  이슈 이메일 템플릿3로 대상자에게 발송
                mailConstants = MailConstants.ISSUE_SEND_3;
                context = StringTemplateUtil.makeContext(params, locale);
                content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                break;
@@ -298,6 +316,30 @@
        return results;
    }
    //  프로젝트에서 변경된 담당부서를 찾기 위해 사용
    @Override
    @Transactional(readOnly = true)
    public List<String> notificationDepartmentChange(List<Department> totalDepartments, List<Department> targetDepartments) {
        List<String> results = Lists.newArrayList();
        //  제외 대상자 찾기
        for (Department department : totalDepartments) {
            boolean excludeCheck = true;
            for (Department newDepartment : targetDepartments) {
                if (department.getId().equals(newDepartment.getId())) {
                    excludeCheck = false;
                    break;
                }
            }
            if (excludeCheck) {
                results.add(department.getDepartmentName());
            }
        }
        return results;
    }
    //  아직 발송되지 않은 이메일을 조회한다.
    @Override
    @Transactional(readOnly = true)