메일 공통 템플릿 생성 VeSendMail.java 참조
This commit is contained in:
parent
61fb2c746b
commit
98e1148e9c
@ -1,20 +1,33 @@
|
|||||||
package kcc.let.schdlr.service.web;
|
package kcc.let.schdlr.service.web;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
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.EnableScheduling;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Controller;
|
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.fdl.property.EgovPropertyService;
|
||||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
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.EgovSiteManagerService;
|
||||||
import kcc.let.sym.site.service.SiteManagerVO;
|
import kcc.let.sym.site.service.SiteManagerVO;
|
||||||
import kcc.let.uss.umt.service.EgovUserManageService;
|
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.VEEduAplctService;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
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
|
@Controller
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
@ -34,6 +47,21 @@ public class AnotaionSchedule {
|
|||||||
@Resource(name = "vEEduAplctService")
|
@Resource(name = "vEEduAplctService")
|
||||||
private VEEduAplctService 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")
|
//@RequestMapping("/sym/site/AdminLogMngTest.do")
|
||||||
//@Scheduled(fixedDelay = 1000)
|
//@Scheduled(fixedDelay = 1000)
|
||||||
// @Scheduled(cron="30 0 0 * * ?")
|
// @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;
|
package kcc.ve.cmm;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import javax.mail.Authenticator;
|
import javax.mail.Authenticator;
|
||||||
@ -9,9 +12,11 @@ import javax.mail.Session;
|
|||||||
import javax.mail.Transport;
|
import javax.mail.Transport;
|
||||||
import javax.mail.internet.InternetAddress;
|
import javax.mail.internet.InternetAddress;
|
||||||
import javax.mail.internet.MimeMessage;
|
import javax.mail.internet.MimeMessage;
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
||||||
import kcc.com.cmm.LoginVO;
|
import kcc.com.cmm.LoginVO;
|
||||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||||
@ -21,7 +26,8 @@ public class VeSendMail {
|
|||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
|
||||||
|
|
||||||
|
@Value("#{globalSettings['Globals.edu.mail.template']}")
|
||||||
|
private String TEMPLATE_URI;
|
||||||
//================================================================
|
//================================================================
|
||||||
//찾교 메일 발송 계정 ID, PW 넣는 부분
|
//찾교 메일 발송 계정 ID, PW 넣는 부분
|
||||||
|
|
||||||
@ -39,6 +45,8 @@ public class VeSendMail {
|
|||||||
// S -> 찾교성인
|
// S -> 찾교성인
|
||||||
// G -> 체험교실
|
// G -> 체험교실
|
||||||
// W -> 외부협력
|
// W -> 외부협력
|
||||||
|
// A -> 실무역량강화
|
||||||
|
// B -> 기소유예
|
||||||
//2. sndTo = 수신자
|
//2. sndTo = 수신자
|
||||||
//3. vEEduAplctVO = eduAplctOrd(pk)
|
//3. vEEduAplctVO = eduAplctOrd(pk)
|
||||||
// sndHstryOrd(pk)
|
// sndHstryOrd(pk)
|
||||||
@ -46,7 +54,7 @@ public class VeSendMail {
|
|||||||
// sndId(발송자)
|
// sndId(발송자)
|
||||||
// sndCn(발송내용)
|
// 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";
|
String result = "success";
|
||||||
|
|
||||||
@ -73,9 +81,12 @@ public class VeSendMail {
|
|||||||
{
|
{
|
||||||
protected PasswordAuthentication getPasswordAuthentication()
|
protected PasswordAuthentication getPasswordAuthentication()
|
||||||
{
|
{
|
||||||
|
System.out.println("========== getPasswordAuthentication ==========");
|
||||||
String id = "no-reply@copyright.or.kr";
|
String id = "no-reply@copyright.or.kr";
|
||||||
String pw = "Copycopy12!";
|
String pw = "Copycopy12!";
|
||||||
/*231120 - 성인 교육용 메일 정보 불일치 > 전부 청소년 메일로 우선 사용*/
|
/*231120 - 성인 교육용 메일 정보 불일치 > 전부 청소년 메일로 우선 사용
|
||||||
|
* 20231201 - school@copyright.or.kr 만 발송 가능
|
||||||
|
* */
|
||||||
id = "school@copyright.or.kr";
|
id = "school@copyright.or.kr";
|
||||||
pw = "dustndnjs2669!";
|
pw = "dustndnjs2669!";
|
||||||
/*if("C".equals(sndFlag) || "Z".equals(sndFlag)) {
|
/*if("C".equals(sndFlag) || "Z".equals(sndFlag)) {
|
||||||
@ -120,18 +131,44 @@ public class VeSendMail {
|
|||||||
//메일제목
|
//메일제목
|
||||||
message.setSubject("[한국저작권위원회] 찾아가는 교육서비스_알림");
|
message.setSubject("[한국저작권위원회] 찾아가는 교육서비스_알림");
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 20231201
|
||||||
|
* 공통 템플릿에 사용할 데이터 this.getTemplate() 참조
|
||||||
|
* */
|
||||||
|
String name=""; // 담당자명
|
||||||
|
String phone="";// 폰번호
|
||||||
|
String email="";// 메일
|
||||||
|
|
||||||
|
// C -> 찾교청소년
|
||||||
|
// S -> 찾교성인
|
||||||
|
// G -> 체험교실
|
||||||
|
// W -> 외부협력
|
||||||
|
// A -> 실무역량강화
|
||||||
|
// B -> 기소유예
|
||||||
|
|
||||||
//발송메일 주소
|
//발송메일 주소
|
||||||
String fromAddr = "no-reply@copyright.or.kr";
|
String fromAddr = "no-reply@copyright.or.kr";
|
||||||
if("C".equals(sndFlag)) {
|
if("C".equals(sndFlag)) { // 청소년
|
||||||
fromAddr = "school@copyright.or.kr";
|
// fromAddr = "school@copyright.or.kr";
|
||||||
}else if("Z".equals(sndFlag)) {
|
name= "여부복 주임";// 담당자명
|
||||||
|
phone="055-792-0224";// 폰번호
|
||||||
|
email="<yeo17@copyright.or.kr";// 메일
|
||||||
|
}else if("Z".equals(sndFlag)) { //
|
||||||
fromAddr = "school@copyright.or.kr";
|
fromAddr = "school@copyright.or.kr";
|
||||||
message.setSubject("[한국저작권위원회] 찾아가는 저작권 교육관련 협조요청 사항");
|
message.setSubject("[한국저작권위원회] 찾아가는 저작권 교육관련 협조요청 사항");
|
||||||
}else if("S".equals(sndFlag)) {
|
}else if("S".equals(sndFlag)) { // 성인
|
||||||
fromAddr = "kedu@copyright.or.kr";
|
name= "이미애 책임"; // 담당자명
|
||||||
}else if("G".equals(sndFlag)) {
|
phone="02-2669-0083";// 폰번호
|
||||||
fromAddr = "entt@copyright.or.kr";
|
email="miae@copyright.or.kr";// 메일
|
||||||
}else if("W".equals(sndFlag)) {
|
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";
|
fromAddr = "cev@copyright.or.kr";
|
||||||
|
|
||||||
//메일제목
|
//메일제목
|
||||||
@ -183,10 +220,70 @@ public class VeSendMail {
|
|||||||
" </table>\r\n" +
|
" </table>\r\n" +
|
||||||
"</body>\r\n" +
|
"</body>\r\n" +
|
||||||
"</html>";
|
"</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 fromAddress = new InternetAddress(fromAddr);
|
||||||
InternetAddress toAddress = new InternetAddress(sndTo);
|
InternetAddress toAddress = new InternetAddress(sndTo);
|
||||||
|
System.out.println(fromAddr);
|
||||||
|
System.out.println(sndTo);
|
||||||
|
System.out.println(Cn);
|
||||||
message.setFrom(fromAddress);
|
message.setFrom(fromAddress);
|
||||||
message.addRecipient(Message.RecipientType.TO, toAddress );
|
message.addRecipient(Message.RecipientType.TO, toAddress );
|
||||||
|
|
||||||
@ -203,5 +300,60 @@ public class VeSendMail {
|
|||||||
return result;
|
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.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||||
|
|
||||||
public interface VEPrcsAplctPrdService {
|
public interface VEPrcsAplctPrdService {
|
||||||
@ -59,4 +60,6 @@ public interface VEPrcsAplctPrdService {
|
|||||||
|
|
||||||
Map<String, Object> findAllSspnldtmtDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO);
|
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 lastUpdtPnttm; // 수정일시
|
||||||
private String lastUpdusrId; // 수정자
|
private String lastUpdusrId; // 수정자
|
||||||
|
|
||||||
|
private String sndFlag;
|
||||||
|
|
||||||
//ve_prcs_aplct_prd
|
//ve_prcs_aplct_prd
|
||||||
private String prcsAplctPrdOrd; //과정신청기간순번
|
private String prcsAplctPrdOrd; //과정신청기간순번
|
||||||
private String lctrDivCd; //강의구분코드 VE0011 10 - 청소년 강의, 20 - 성인 강의
|
private String lctrDivCd; //강의구분코드 VE0011 10 - 청소년 강의, 20 - 성인 강의
|
||||||
@ -120,6 +122,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
private String instrDiv;
|
private String instrDiv;
|
||||||
private String instrCnt;
|
private String instrCnt;
|
||||||
private String userId;
|
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 lctrYn; // 저작권 교육 수강 여부
|
||||||
private String prvsQs; // 교육관련 사전질의
|
private String prvsQs; // 교육관련 사전질의
|
||||||
|
|
||||||
|
private String diffDay; //
|
||||||
|
|
||||||
|
|
||||||
public String getSearchDiv() {
|
public String getSearchDiv() {
|
||||||
return searchDiv;
|
return searchDiv;
|
||||||
@ -838,6 +844,30 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
public void setPrvsQs(String prvsQs) {
|
public void setPrvsQs(String prvsQs) {
|
||||||
this.prvsQs = 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 org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
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.instrInfo.service.VEInstrDetailVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||||
@ -128,4 +129,8 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
|
|||||||
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectSchduleManagerList", vEPrcsDetailVO);
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
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.instrInfo.service.VEInstrDetailVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||||
@ -137,4 +138,10 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
|||||||
return vEPrcsAplctPrdDAO.selectSchduleManagerList(vEPrcsDetailVO);
|
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 java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
@ -136,7 +137,9 @@ public class CommonManageWebController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value="/eduAplctStatusAjax.do")
|
@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 modelAndView = new ModelAndView();
|
||||||
modelAndView.setViewName("jsonView");
|
modelAndView.setViewName("jsonView");
|
||||||
|
|
||||||
@ -150,7 +153,7 @@ public class CommonManageWebController {
|
|||||||
VeSendMail sendMail = new VeSendMail();
|
VeSendMail sendMail = new VeSendMail();
|
||||||
vEEduAplctVO.setSndCd("20");
|
vEEduAplctVO.setSndCd("20");
|
||||||
//메일발송
|
//메일발송
|
||||||
String mailResult = sendMail.VeSendMail("W", vEEduAplctVO.getEmail(), vEEduAplctVO, loginVO);
|
String mailResult = sendMail.VeSendMail("W", vEEduAplctVO.getEmail(), vEEduAplctVO);
|
||||||
|
|
||||||
if("success".equals(mailResult)) {
|
if("success".equals(mailResult)) {
|
||||||
//메일 발송 로그
|
//메일 발송 로그
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import java.util.Map;
|
|||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -201,7 +203,7 @@ public class SndMngController {
|
|||||||
VEEduAplctVO vEEduAplctVO
|
VEEduAplctVO vEEduAplctVO
|
||||||
//, RedirectAttributes redirectAttributes
|
//, RedirectAttributes redirectAttributes
|
||||||
, ModelMap model
|
, ModelMap model
|
||||||
//, HttpServletRequest request
|
, HttpServletRequest request
|
||||||
) throws Exception {
|
) throws Exception {
|
||||||
|
|
||||||
ModelAndView modelAndView = new ModelAndView();
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
@ -288,7 +290,7 @@ public class SndMngController {
|
|||||||
cntManageVO = egovCntManageService.selectCntDtDetail(cntManageVO);
|
cntManageVO = egovCntManageService.selectCntDtDetail(cntManageVO);
|
||||||
vEEduAplctVO.setSndCn(cntManageVO.getCntCn());
|
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)) {
|
if("success".equals(result)) {
|
||||||
//메일 발송 로그
|
//메일 발송 로그
|
||||||
String snd_mail_ord = sndGnrService.getNextStringId();
|
String snd_mail_ord = sndGnrService.getNextStringId();
|
||||||
@ -352,7 +354,7 @@ public class SndMngController {
|
|||||||
VEEduAplctVO vEEduAplctVO
|
VEEduAplctVO vEEduAplctVO
|
||||||
//, RedirectAttributes redirectAttributes
|
//, RedirectAttributes redirectAttributes
|
||||||
, ModelMap model
|
, ModelMap model
|
||||||
//, HttpServletRequest request
|
, HttpServletRequest request
|
||||||
) throws Exception {
|
) throws Exception {
|
||||||
|
|
||||||
ModelAndView modelAndView = new ModelAndView();
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
@ -387,7 +389,7 @@ public class SndMngController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String message = "정상적으로 발송되었습니다.";
|
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)) {
|
if("success".equals(result)) {
|
||||||
//메일 발송 로그
|
//메일 발송 로그
|
||||||
|
|||||||
@ -162,3 +162,6 @@ Globals.prod.islocal=real
|
|||||||
#\ub300\uc6a9\ub7c9 innorix license
|
#\ub300\uc6a9\ub7c9 innorix license
|
||||||
Globals.Innorix.License=dev
|
Globals.Innorix.License=dev
|
||||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
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
|
#\ub300\uc6a9\ub7c9 innorix license
|
||||||
Globals.Innorix.License=dev
|
Globals.Innorix.License=dev
|
||||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
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')
|
AND SUBSTRING(a.EDU_STRT_PNTTM, 1, 7) = TO_CHAR(TO_DATE(#sTodate#,'YYYYMMDD')+ 7,'YYYY.MM')
|
||||||
|
|
||||||
</select>
|
</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>
|
</sqlMap>
|
||||||
|
|||||||
@ -22,6 +22,14 @@ function sendSms(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* sndFlag = 메뉴 구분
|
||||||
|
* C -> 찾교청소년
|
||||||
|
* S -> 찾교성인
|
||||||
|
* G -> 체험교실
|
||||||
|
* W -> 외부협력
|
||||||
|
* A -> 실무역량강화
|
||||||
|
* B -> 기소유예
|
||||||
|
* */
|
||||||
//이메일 발송
|
//이메일 발송
|
||||||
function sendEmail(
|
function sendEmail(
|
||||||
p_receiver, // 수신자
|
p_receiver, // 수신자
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user