메일 공통 템플릿 생성 VeSendMail.java 참조

This commit is contained in:
hylee 2023-12-01 18:24:37 +09:00
parent 61fb2c746b
commit 98e1148e9c
12 changed files with 1686 additions and 1263 deletions

View File

@ -1,20 +1,33 @@
package kcc.let.schdlr.service.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import egovframework.rte.fdl.cmmn.exception.FdlException;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.sym.site.service.EgovSiteManagerService;
import kcc.let.sym.site.service.SiteManagerVO;
import kcc.let.uss.umt.service.EgovUserManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.cmm.VeSendMail;
import kcc.ve.cmm.VeSendSMS;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Controller
@EnableScheduling
@ -34,6 +47,21 @@ public class AnotaionSchedule {
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
// 교육신청발송이력
@Resource(name = "vEEduAplctSndHstryService")
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
//snd_hstry id gen
@Resource(name = "sndGnrService")
private EgovIdGnrService sndGnrService;
//과정차시 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//@RequestMapping("/sym/site/AdminLogMngTest.do")
//@Scheduled(fixedDelay = 1000)
// @Scheduled(cron="30 0 0 * * ?")
@ -98,6 +126,158 @@ public class AnotaionSchedule {
}
}
/**
* @methodName : oneDayBeforeTrainingStartDate
* @author : 이호영
* @date : 2023.12.01
* @description :
* @throws Exception
*/
@Scheduled(cron = "0 21 18 * * ?")
// @Scheduled(cron = "0 0 9 * * ?")
public void oneDayBeforeTrainingStartDate() throws Exception {
// do something...
try {
System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>");
//권한에 따른 로그인 정보 가져오기
//메일 발송 시작
//================================================================
//메일 발송 VeSendMail 파라미터 정리
//1. sndFlag = 메뉴 구분
// C -> 찾교청소년
// Z -> 찾교청소년-교육확정알림(교육배치목록-확정된 강의 알림 버튼) : 청소년>교육확정 메일본문 수정 메뉴에서 관리
// S -> 찾교성인
// G -> 체험교실
// W -> 교육콘텐츠
// A -> 기반강화
// B -> 기소유예
//2. sndTo = 수신자
//3. vEEduAplctVO = eduAplctOrd(pk)
// sndHstryOrd(pk)
// sndCd(10 - sms, 20 - email)
// sndId(발송자)
// sndCn(발송내용)
//================================================================
// 기반 테스트
this.sendLctrDivCd("50", "2", "A");
// 기반강화
// this.sendLctrDivCd50("50", "1", "A"); // LCTR_DIV_CD 50, A 기반강화, 1 하루후
// 기소유예
// this.sendLctrDivCd("60", "2", "B"); // LCTR_DIV_CD 60, A 기반강화, 1 하루후
/*
VeSendSMS sendSMS = new VeSendSMS();
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn());
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
//문자 발송 성공 로그
if("1".equals(resultMap.get("result_code"))){
String snd_ord = sndGnrService.getNextStringId();
vEEduAplctVO.setSndHstryOrd(snd_ord);
vEEduAplctVO.setSndId(loginVO.getUniqId());
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
vEEduAplctSndHstryService.insert(vEEduAplctVO);
}else {
result = "fail";
message = resultMap.get("message").toString();
}
*/
}catch(Exception ex) {
ex.printStackTrace();
}
}
private void sendLctrDivCd(String lctrDivCd, String diffDay, String sndFlag) throws Exception {
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setLctrDivCd(lctrDivCd);
vEPrcsDetailVO.setDiffDay(diffDay);
List<VEPrcsDetailVO> VEEduAplctVOList = vEPrcsAplctPrdService.selectOneDayBeforeTrainingStartDate(vEPrcsDetailVO);
for(VEPrcsDetailVO vo : VEEduAplctVOList) {
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setEduAplctOrd(vo.getEduAplctOrd());
vEEduAplctVO.setEmail(vo.getEmail());
vEEduAplctVO.setSndFlag(sndFlag);
vEEduAplctVO.setSndCn("안녕하세요 \n"+egovCryptoUtil.decrypt(vo.getMberNm())+"님이 신청해주신 \n"
+ vo.getPrcsNm()+"교육이 "+vo.getEduStrtPnttm()+"날 시작합니다.");
System.out.println(" vEEduAplctVO.getSndCn() :: "+vEEduAplctVO.getSndCn());
this.sendMailModule(vEEduAplctVO);
this.sendSmsModule(vEEduAplctVO);
}
}
private void sendSmsModule(VEEduAplctVO vEEduAplctVO) throws Exception {
VeSendSMS sendSMS = new VeSendSMS();
// String phone = vEEduAplctVO.getClphone();
// 테스트
String phone = "01083584250";
Map<String, Object> resultMap = sendSMS.VeSendSMS(phone, vEEduAplctVO.getSndCn());
//문자 발송 성공 로그
if("1".equals(resultMap.get("result_code"))){
String snd_ord = sndGnrService.getNextStringId();
vEEduAplctVO.setSndHstryOrd(snd_ord);
vEEduAplctVO.setSndId("");
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
vEEduAplctSndHstryService.insert(vEEduAplctVO);
}else {
}
}
private void sendMailModule(VEEduAplctVO vEEduAplctVO) {
VeSendMail sendMail = new VeSendMail();
if("".equals(vEEduAplctVO.getSndFlag())) {
vEEduAplctVO.setSndFlag("test");
}
if("".equals(vEEduAplctVO.getEmail())) {
vEEduAplctVO.setEmail("tolag3@gmail.com");
}
// 테스트
// 테스트
// 테스트
vEEduAplctVO.setEmail("hehihoho3@gmail.com");
try {
// String message = "정상적으로 발송되었습니다.";
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag() // 기반강화 50 , 기소유예 60
, vEEduAplctVO.getEmail()
, vEEduAplctVO
);
if("success".equals(result)) {
//메일 발송 로그
vEEduAplctVO.setSndHstryOrd(sndGnrService.getNextStringId());
vEEduAplctVO.setSndId("");
vEEduAplctVO.setTrgt(vEEduAplctVO.getEmail());
vEEduAplctSndHstryService.insert(vEEduAplctVO);
}else {
// message = "발송 실패하였습니다.";
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
////////////////////////////////////////////////
//개인 정보 삭제
////////////////////////////////////////////////

View File

@ -1,5 +1,8 @@
package kcc.ve.cmm;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.Properties;
import javax.mail.Authenticator;
@ -9,9 +12,11 @@ import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngUtil;
@ -21,7 +26,8 @@ public class VeSendMail {
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
@Value("#{globalSettings['Globals.edu.mail.template']}")
private String TEMPLATE_URI;
//================================================================
//찾교 메일 발송 계정 ID, PW 넣는 부분
@ -39,6 +45,8 @@ public class VeSendMail {
// S -> 찾교성인
// G -> 체험교실
// W -> 외부협력
// A -> 실무역량강화
// B -> 기소유예
//2. sndTo = 수신자
//3. vEEduAplctVO = eduAplctOrd(pk)
// sndHstryOrd(pk)
@ -46,7 +54,7 @@ public class VeSendMail {
// sndId(발송자)
// sndCn(발송내용)
//================================================================
public String VeSendMail(String sndFlag, String sndTo, VEEduAplctVO vEEduAplctVO, LoginVO loginVO) throws Exception {
public String VeSendMail(String sndFlag, String sndTo, VEEduAplctVO vEEduAplctVO) throws Exception {
String result = "success";
@ -73,9 +81,12 @@ public class VeSendMail {
{
protected PasswordAuthentication getPasswordAuthentication()
{
System.out.println("========== getPasswordAuthentication ==========");
String id = "no-reply@copyright.or.kr";
String pw = "Copycopy12!";
/*231120 - 성인 교육용 메일 정보 불일치 > 전부 청소년 메일로 우선 사용*/
/*231120 - 성인 교육용 메일 정보 불일치 > 전부 청소년 메일로 우선 사용
* 20231201 - school@copyright.or.kr 발송 가능
* */
id = "school@copyright.or.kr";
pw = "dustndnjs2669!";
/*if("C".equals(sndFlag) || "Z".equals(sndFlag)) {
@ -120,18 +131,44 @@ public class VeSendMail {
//메일제목
message.setSubject("[한국저작권위원회] 찾아가는 교육서비스_알림");
/*
* 20231201
* 공통 템플릿에 사용할 데이터 this.getTemplate() 참조
* */
String name=""; // 담당자명
String phone="";// 폰번호
String email="";// 메일
// C -> 찾교청소년
// S -> 찾교성인
// G -> 체험교실
// W -> 외부협력
// A -> 실무역량강화
// B -> 기소유예
//발송메일 주소
String fromAddr = "no-reply@copyright.or.kr";
if("C".equals(sndFlag)) {
fromAddr = "school@copyright.or.kr";
}else if("Z".equals(sndFlag)) {
if("C".equals(sndFlag)) { // 청소년
// fromAddr = "school@copyright.or.kr";
name= "여부복 주임";// 담당자명
phone="055-792-0224";// 폰번호
email="<yeo17@copyright.or.kr";// 메일
}else if("Z".equals(sndFlag)) { //
fromAddr = "school@copyright.or.kr";
message.setSubject("[한국저작권위원회] 찾아가는 저작권 교육관련 협조요청 사항");
}else if("S".equals(sndFlag)) {
fromAddr = "kedu@copyright.or.kr";
}else if("G".equals(sndFlag)) {
fromAddr = "entt@copyright.or.kr";
}else if("W".equals(sndFlag)) {
}else if("S".equals(sndFlag)) { // 성인
name= "이미애 책임"; // 담당자명
phone="02-2669-0083";// 폰번호
email="miae@copyright.or.kr";// 메일
fromAddr = email;
}else if("G".equals(sndFlag)) { // 체험교실
name= "박인혜 선임"; // 담당자명
phone="055-792-0234";// 폰번호
email="ihpark@copyright.or.kr";// 메일
}else if("W".equals(sndFlag)) { // 외부협력
fromAddr = "cev@copyright.or.kr";
//메일제목
@ -183,10 +220,70 @@ public class VeSendMail {
" </table>\r\n" +
"</body>\r\n" +
"</html>";
}
}else if("A".equals(sndFlag)) { // 실무역량
/*
* 실무역량
* 담당자: 김현아 차장
* 연락처: 02-2669-0082
* <hyuna@copyright.or.kr>
* */
name="김현아 차장"; // 담당자명
phone="02-2669-0082";// 폰번호
email="hyuna@copyright.or.kr";// 메일
// test
fromAddr = email;
}else if("B".equals(sndFlag)) { // 기반강화
/*
* 교육조건부 기소유예
* 담당자: 최홍석 주임
* 연락처: 055-792-0223
* */
name="최홍석 주임"; // 담당자명
phone="055-792-0223";// 폰번호
email="";// 메일
}
// 아이디만 인증가능
fromAddr = "school@copyright.or.kr";
/* 템플릿 만들기
* 청소년 성인 체험교실도 Cn 데이터 확인후 조건문 추가
* AnotaionSchedule 211 라인 참조
* */
if("A".equals(sndFlag) // A -> 기반강화
|| "B".equals(sndFlag) // B -> 기소유예
// || "C".equals(sndFlag) // C -> 찾교청소년
// || "S".equals(sndFlag) // S -> 찾교성인
// || "G".equals(sndFlag) // G -> 체험교실
) {
String emailContent = "";
emailContent = this.getTemplate()
.replace("[[_Name_]]", name)
.replace("[[_Phone_]]", phone)
.replace("[[_Phone_tel_]]", phone)
.replace("[[_Email_]]", email)
.replace("[[_Content_]]", Cn)
;
Cn = emailContent;
}
// * C -> 찾교청소년
// * S -> 찾교성인
// * G -> 체험교실
// * W -> 외부협력
// * A -> 실무역량강화
// * B -> 기소유예
InternetAddress fromAddress = new InternetAddress(fromAddr);
InternetAddress toAddress = new InternetAddress(sndTo);
System.out.println(fromAddr);
System.out.println(sndTo);
System.out.println(Cn);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, toAddress );
@ -203,5 +300,60 @@ public class VeSendMail {
return result;
}
private String getTemplate() {
return "<!DOCTYPE html>"
+ "<html lang=\"ko\">"
+ "<head>"
+ "<meta charset=\"UTF-8\">"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"
+ "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />"
+ "<meta name=\"viewport\" content=\"\" />"
+ "<meta name=\"Keywords\" content=\"\" />"
+ "<meta name=\"Description\" content=\"\" />"
+ "</head>"
+ "<body>"
+ "<table align=\"center\" width=\"800\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border:5px solid rgb(241,89,34);\">"
+ "<tbody>"
+ "<tr>"
+ "<td align=\"left\" bgcolor=\"#ffffff\" style=\"padding:30px 40px 40px;\">"
+ "<a href=\"https://oneid.copyright.or.kr/\" rel=\"noreferrer noopener\" target=\"_blank\" data-saferedirecturl=\"https://www.google.com/url?q=https://oneid.copyright.or.kr/&amp;source=gmail&amp;ust=1647666525851000&amp;usg=AOvVaw0ZroUFKmk2_yTWKT0iYs_q\"><img alt=\"한국저작권위원회-통합회원 로고\" src=\"http://copyright.or.kr/offedu/visitEdu/usr/publish/images/common/ci.png\" style=\"width:200px; border:0px currentColor;vertical-align:middle\"></a>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "<td align=\"center\" bgcolor=\"#ffffff\" style=\"padding:0 40px 22px;\">"
+ "<p style=\"margin:0;padding:24px;font-family:'Noto Sans KR';line-height:26px;text-align:left;border:3px solid rgb(223,223,223);\">"
+ "[[_Content_]]"
+ "<br><br>"
+ "<br><br>감사합니다."
+ "<br><br>[[_Name_]] 드림"
+ "<br><a href=\"tel:[[_Phone_tel_]]\" style=\"text-decoration:none;color:#000000;\">☎ [[_Phone_]]</a>"
+ "<br>☎ [[_Email_]]"
+ "</p>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "<td style=\"padding:60px 0 0;\">"
+ "<table width=\"800\" bgcolor=\"#f8f8f8\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"padding:22px 0;border-top:1px solid #cecece;\">"
+ "<tbody>"
+ "<tr>"
+ " <td align=\"left\" style=\"padding:0 28px;\">\r\n"
+ " <a href=\"https://oneid.copyright.or.kr/\" rel=\"noreferrer noopener\" style=\"vertical-align:middle;display:table-cell\" target=\"_blank\" data-saferedirecturl=\"https://www.google.com/url?q=https://oneid.copyright.or.kr/&amp;source=gmail&amp;ust=1647666525852000&amp;usg=AOvVaw3aJ4SNBKmUaX89PBd69nPC\"><img alt=\"한국저작권위원회-통합회원 로고\" src=\"https://ci5.googleusercontent.com/proxy/0JqqeL8s5aHiWESa7Hkqq7DoxHF0qGfEGwL3ZsfXSpyh-P9mJolNp4QpMbgMj_A7cR44XGl1C3MdSjQ50oR_vqWDIv87H1E=s0-d-e1-ft#https://oneid.copyright.or.kr/images/mail/f_logo.gif\" style=\"border:0px currentColor;vertical-align:middle\" class=\"CToWUd\"></a>\r\n"
+ " </td>\r\n"
+ " <td align=\"left\" style=\"font-family:'Noto Sans KR';font-size:15px;letter-spacing:-0.2px;\">\r\n"
+ " <p style=\"margin:0px 0px 11px;padding:0px\">본 메일은 발신전용으로 회신하지 않습니다.</p>\r\n"
+ " <p style=\"margin:0px;padding:0px\"><span style=\"font-weight:bold\">진주</span> [우 52852] 경상남도 진주시 충의로 19, 1/2/5층. <span>&nbsp;대표번호 : 055.792.0000</span><br> <span style=\"font-weight:bold\">서울</span> [우 04323] 서울특별시 용산구 후암로 107, 5/16층. <span>&nbsp;대표번호 : 02.2669.0010</span></p>\r\n"
+ " </td>\r\n"
+ " </tr>\r\n"
+ " </tbody>\r\n"
+ " </table>\r\n"
+ " </td>\r\n"
+ " </tr>\r\n"
+ " </tbody>\r\n"
+ " </table>\r\n"
+ "</body>\r\n"
+ "</html>";
}
}

View File

@ -3,6 +3,7 @@ package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.util.List;
import java.util.Map;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
public interface VEPrcsAplctPrdService {
@ -59,4 +60,6 @@ public interface VEPrcsAplctPrdService {
Map<String, Object> findAllSspnldtmtDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO);
List<VEPrcsDetailVO> selectOneDayBeforeTrainingStartDate(VEPrcsDetailVO vEPrcsDetailVO);
}

View File

@ -29,6 +29,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String lastUpdtPnttm; // 수정일시
private String lastUpdusrId; // 수정자
private String sndFlag;
//ve_prcs_aplct_prd
private String prcsAplctPrdOrd; //과정신청기간순번
private String lctrDivCd; //강의구분코드 VE0011 10 - 청소년 강의, 20 - 성인 강의
@ -120,6 +122,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String instrDiv;
private String instrCnt;
private String userId;
private String email;
private String clphone;
@ -173,6 +177,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String lctrYn; // 저작권 교육 수강 여부
private String prvsQs; // 교육관련 사전질의
private String diffDay; //
public String getSearchDiv() {
return searchDiv;
@ -838,6 +844,30 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setPrvsQs(String prvsQs) {
this.prvsQs = prvsQs;
}
public String getDiffDay() {
return diffDay;
}
public void setDiffDay(String diffDay) {
this.diffDay = diffDay;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getClphone() {
return clphone;
}
public void setClphone(String clphone) {
this.clphone = clphone;
}
public String getSndFlag() {
return sndFlag;
}
public void setSndFlag(String sndFlag) {
this.sndFlag = sndFlag;
}
}

View File

@ -6,6 +6,7 @@ import java.util.Map;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@ -128,4 +129,8 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectSchduleManagerList", vEPrcsDetailVO);
}
public List<VEPrcsDetailVO> selectOneDayBeforeTrainingStartDate(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectOneDayBeforeTrainingStartDate", vEPrcsDetailVO);
}
}

View File

@ -9,6 +9,7 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
@ -137,4 +138,10 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
return vEPrcsAplctPrdDAO.selectSchduleManagerList(vEPrcsDetailVO);
}
@Override
public List<VEPrcsDetailVO> selectOneDayBeforeTrainingStartDate(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectOneDayBeforeTrainingStartDate(vEPrcsDetailVO);
}
}

View File

@ -3,6 +3,7 @@ package kcc.ve.oprtn.comweb;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
@ -136,7 +137,9 @@ public class CommonManageWebController {
}
@RequestMapping(value="/eduAplctStatusAjax.do")
public ModelAndView eduAplctStatusAjax(HttpServletRequest request , ModelMap model , VEEduAplctVO vEEduAplctVO) throws Exception {
public ModelAndView eduAplctStatusAjax(HttpServletRequest request
, ModelMap model
, VEEduAplctVO vEEduAplctVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
@ -150,7 +153,7 @@ public class CommonManageWebController {
VeSendMail sendMail = new VeSendMail();
vEEduAplctVO.setSndCd("20");
//메일발송
String mailResult = sendMail.VeSendMail("W", vEEduAplctVO.getEmail(), vEEduAplctVO, loginVO);
String mailResult = sendMail.VeSendMail("W", vEEduAplctVO.getEmail(), vEEduAplctVO);
if("success".equals(mailResult)) {
//메일 발송 로그

View File

@ -6,6 +6,8 @@ import java.util.Map;
import java.util.Properties;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -201,7 +203,7 @@ public class SndMngController {
VEEduAplctVO vEEduAplctVO
//, RedirectAttributes redirectAttributes
, ModelMap model
//, HttpServletRequest request
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -288,7 +290,7 @@ public class SndMngController {
cntManageVO = egovCntManageService.selectCntDtDetail(cntManageVO);
vEEduAplctVO.setSndCn(cntManageVO.getCntCn());
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag(), vEEduAplctVO.getEmail(), vEEduAplctVO, loginVO);
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag(), vEEduAplctVO.getEmail(), vEEduAplctVO);
if("success".equals(result)) {
//메일 발송 로그
String snd_mail_ord = sndGnrService.getNextStringId();
@ -352,7 +354,7 @@ public class SndMngController {
VEEduAplctVO vEEduAplctVO
//, RedirectAttributes redirectAttributes
, ModelMap model
//, HttpServletRequest request
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -387,7 +389,7 @@ public class SndMngController {
}
String message = "정상적으로 발송되었습니다.";
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag(), vEEduAplctVO.getEmail(), vEEduAplctVO, loginVO);
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag(), vEEduAplctVO.getEmail(), vEEduAplctVO);
if("success".equals(result)) {
//메일 발송 로그

View File

@ -162,3 +162,6 @@ Globals.prod.islocal=real
#\ub300\uc6a9\ub7c9 innorix license
Globals.Innorix.License=dev
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
Globals.edu.mail.template=/template/offeduMain.html

View File

@ -162,3 +162,7 @@ Globals.prod.islocal=local
#\ub300\uc6a9\ub7c9 innorix license
Globals.Innorix.License=dev
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
#Globals.edu.mail.template=/template/offeduMain.html
Globals.edu.mail.template=template/offeduMain.html

View File

@ -796,4 +796,30 @@
AND SUBSTRING(a.EDU_STRT_PNTTM, 1, 7) = TO_CHAR(TO_DATE(#sTodate#,'YYYYMMDD')+ 7,'YYYY.MM')
</select>
<select id="VEPrcsAplctPrdDAO.selectOneDayBeforeTrainingStartDate" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/*VEPrcsAplctPrdDAO.selectOneDayBeforeTrainingStartDate*/
SELECT
a.EDU_STRT_PNTTM as eduStrtPnttm
, b.PRCS_NM as prcsNm
, b.PRCS_ORD as prcsOrd
, vea.USER_ID as userId
, vea.EDU_APLCT_ORD as eduAplctOrd
, llm.MBER_EMAIL_ADRES as email
, llm.MBTLNUM as clphone
, llm.MBER_NM as mberNm
FROM ve_prcs_aplct_prd a
LEFT JOIN ve_prcs b
ON a.PRCS_ORD = b.PRCS_ORD
LEFT JOIN VE_EDU_APLCT AS vea
ON a.prcs_aplct_prd_ord = vea.PRCS_ORD
JOIN LETTNGNRLMBER AS llm
ON vea.USER_ID = llm.MBER_ID
WHERE
1=1
AND TO_DATE(a.EDU_STRT_PNTTM, 'YYYY.MM.DD') = TRUNC(SYSDATE) + NUMTODSINTERVAL(#diffDay#, 'DAY')
AND a.LCTR_DIV_CD = #lctrDivCd#
AND vea.USER_ID IS NOT null
</select>
</sqlMap>

View File

@ -22,6 +22,14 @@ function sendSms(
);
}
/* sndFlag =
* C -> 찾교청소년
* S -> 찾교성인
* G -> 체험교실
* W -> 외부협력
* A -> 실무역량강화
* B -> 기소유예
* */
//이메일 발송
function sendEmail(
p_receiver, // 수신자