메일 공통 템플릿 생성 VeSendMail.java 참조
This commit is contained in:
parent
61fb2c746b
commit
98e1148e9c
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////
|
||||
//개인 정보 삭제
|
||||
////////////////////////////////////////////////
|
||||
|
||||
@ -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/&source=gmail&ust=1647666525851000&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/&source=gmail&ust=1647666525852000&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> 대표번호 : 055.792.0000</span><br> <span style=\"font-weight:bold\">서울</span> [우 04323] 서울특별시 용산구 후암로 107, 5/16층. <span> 대표번호 : 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>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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)) {
|
||||
//메일 발송 로그
|
||||
|
||||
@ -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)) {
|
||||
//메일 발송 로그
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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>
|
||||
|
||||
@ -22,6 +22,14 @@ function sendSms(
|
||||
);
|
||||
}
|
||||
|
||||
/* sndFlag = 메뉴 구분
|
||||
* C -> 찾교청소년
|
||||
* S -> 찾교성인
|
||||
* G -> 체험교실
|
||||
* W -> 외부협력
|
||||
* A -> 실무역량강화
|
||||
* B -> 기소유예
|
||||
* */
|
||||
//이메일 발송
|
||||
function sendEmail(
|
||||
p_receiver, // 수신자
|
||||
|
||||
Loading…
Reference in New Issue
Block a user