File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
2024-11-14
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.mail.service.impl;
import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import javax.annotation.Resource;
import org.jsoup.Jsoup;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import itn.com.cmm.EgovMultiPartEmail;
import itn.let.mail.service.EmailItnVO;
import itn.let.mail.service.MailTemplateService;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.uat.uia.service.impl.MberManageDAO;
import itn.let.uat.uia.web.EmailVO;
import itn.let.uat.uia.web.SendLogVO;
import itn.let.uat.uia.web.SendMail;
import itn.let.uss.umt.service.EgovMberManageService;
import itn.let.uss.umt.service.MberManageVO;
import itn.let.utl.user.service.MjonNoticeSendUtil;
@Service("MailTemplateService")
public class MailTemplateServiceImpl extends EgovAbstractServiceImpl implements MailTemplateService {
@Value("#{globalSettings['Globals.mailContentFileFolder']}")
private String MAIL_CONTENT_PATH;
@Value("#{globalSettings['Globals.itn.file.saveDir']}")
private String ITN_FILE_SAVE_DIR;
@Value("#{globalSettings['Globals.itn.recruit.template.url']}")
private String ITN_RECRUIT_TEMPLATE_URL;
@Value("#{globalSettings['Globals.itn.contact.us.template.url']}")
private String ITN_CONTACT_US_TEMPLATE_URL;
@Value("#{globalSettings['Globals.itn.mail.to.address']}")
private String ITN_MAIL_TO_ADDRESS;
@Resource(name = "egovMultiPartEmail")
private EgovMultiPartEmail egovMultiPartEmail;
@Resource(name = "mberManageDAO")
private MberManageDAO mberManageDAO;
//문자발송 서비스
@Resource(name = "MjonMsgDataService")
private MjonMsgDataService mjonMsgDataService;
/** 알림전송 Util */
@Resource(name = "mjonNoticeSendUtil")
private MjonNoticeSendUtil mjonNoticeSendUtil;
/** mberManageService */
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
// 휴면회원 메일발송
public void mailSendMemberDormant() throws Exception {
//MAIL_CONTENT_PATH = "C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/mjon/src/main/webapp";
if (MAIL_CONTENT_PATH == null) {
MAIL_CONTENT_PATH = "";
}
String mberId = "";
String mberNm = "";
String mberEmailAdres = "";
String loginDt = "";
String emailTitle = "";
String emailContent = "";
// 로그인 안한지 1년되기 한달전 휴면회원 전환 안내메일 대상자
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setDormantDay(335);
List<MberManageVO> mberDormantList = mberManageDAO.selectMberDormantList(mberManageVO);
for (MberManageVO item : mberDormantList) {
mberId = item.getMberId();
mberNm = item.getMberNm();
mberEmailAdres = item.getMberEmailAdres();
loginDt = item.getLoginDt();
emailTitle = "[문자온] 휴면회원 전환 안내메일";
//mailContent = Jsoup.parse(new File(MAIL_CONTENT_PATH + "/mail/mail_member_dormant.html"), "UTF-8").toString();
//mailContent = Jsoup.parse(new File(MAIL_CONTENT_PATH + "https://www.munjaon.co.kr/publish/email_form_dormant.html"), "UTF-8").toString();
//http://localhost/publish/email_form_dormant.html
emailContent = Jsoup.connect("https://www.munjaon.co.kr/publish/email_form_dormant.html")
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post()
.toString();
emailContent = emailContent.replace("[[_UserId_]]", mberId);
emailContent = emailContent.replace("[[_DormantDate_]]", loginDt);
System.out.println("mberId : " + mberId + ", mberNm : " + mberNm + ", mberEmailAdres : " + mberEmailAdres + ", loginDt : " + loginDt);
System.out.println("mailContent : " + emailContent);
// 이메일로 보내기
SendMail sMail = new SendMail();
EmailVO mailSender = new EmailVO();
mailSender.setSend_from("noreply@munjaon.co.kr"); // 사용자 이메일 주소
mailSender.setTitle(emailTitle); // 메일 제목
mailSender.setContents(emailContent); // 메일 내용
mailSender.setSend_to(mberEmailAdres); // 발송자 이메일 주소
// 메일 발송하기
sMail.sendMail2(mailSender);
// 시스템 발송 로그
SendLogVO sendLogVO = new SendLogVO();
sendLogVO.setSendType("2"); // 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송
sendLogVO.setFrstSendInfo(mailSender.getSend_from());//이메일 발신자 정보
sendLogVO.setReceive(mailSender.getSend_to()); //수신자 정보
sendLogVO.setContents(emailContent);
mjonMsgDataService.insertSysMsgLog(sendLogVO);
}
}
// 휴면회원 SMS발송
public void smsSendMemberDormant() throws Exception {
String mberId = "";
String mberNm = "";
String loginDt = "";
String moblphonNo = "";
// 로그인 안한지 1년되기 한달전 휴면회원 전환 안내메일 대상자
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setDormantDay(335);
List<MberManageVO> mberDormantList = mberManageDAO.selectMberDormantList(mberManageVO);
for (MberManageVO item : mberDormantList) {
mberId = item.getMberId();
mberNm = item.getMberNm();
loginDt = item.getLoginDt();
moblphonNo = item.getMoblphonNo();
// 시스템 문자발송
String callTo = moblphonNo;
String smsTxt = "시스템발송 테스트";
//mjonNoticeSendUtil.userSmsSendBySystem(callTo, smsTxt);
// 시스템 발송 로그
SendLogVO sendLogVO = new SendLogVO();
sendLogVO.setSendType("1"); // 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송
sendLogVO.setFrstSendInfo("15518011");
sendLogVO.setReceive(callTo);
sendLogVO.setContents(smsTxt);
//mjonMsgDataService.insertSysMsgLog(sendLogVO);
}
}
// 휴면회원으로 지정(업데이트)
public void setMemberDormantUpdate() throws Exception {
// 로그인 안한지 1년되기 한달전 휴면회원 전환 안내메일 대상자
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setDormantDay(365);
List<MberManageVO> mberDormantList = mberManageDAO.selectMberDormantList(mberManageVO);
for (MberManageVO item : mberDormantList) {
// 회원 휴면회원으로 업데이트
mberManageVO.setMberId(item.getMberId()); //탈퇴사유 중 직접입력으로 타입 지정
mberManageVO.setDormantYn("Y");
mberManageService.updateUserDormant(mberManageVO);
}
}
@Override
public StatusResponse mailSendItnRecruitFile(MultipartFile multi) {
String returnMsg = "";
HttpStatus status = HttpStatus.OK;
long size = multi.getSize();
String originFilename = multi.getOriginalFilename();
UUID uuid = UUID.randomUUID();
String fileSaveNm = uuid.toString() + "_" + originFilename;
File saveFile = new File(ITN_FILE_SAVE_DIR, fileSaveNm);
File folder = new File(ITN_FILE_SAVE_DIR);
System.out.println("saveFile :: "+saveFile);
try {
if (!folder.exists()) {
folder.mkdir();
System.out.println("폴더가 생성완료.");
}
multi.transferTo(saveFile);
returnMsg = fileSaveNm;
} catch (IOException e) {
// TODO: handle exception
returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요";
status = HttpStatus.BAD_REQUEST;
e.printStackTrace();
}
return new StatusResponse(status, returnMsg, originFilename, LocalDateTime.now());
}
@Override
public StatusResponse mailSendItnRecruit(EmailItnVO emailItnVO) {
System.out.println("emailItnVO :: "+ emailItnVO.toString());
String returnMsg = "지원해 주셔서 감사합니다.";
HttpStatus status = HttpStatus.OK;
String emailContent = "";
SendMail sMail = new SendMail();
try {
emailContent = Jsoup.connect(ITN_RECRUIT_TEMPLATE_URL)
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post()
.toString();
emailContent = emailContent.replace("[[_Name_]]", emailItnVO.getName())
.replace("[[_PhoneNumber_]]", emailItnVO.getPhone())
.replace("[[_Email_]]", emailItnVO.getEmail())
.replace("[[_Portfolio_]]", emailItnVO.getPortfolio())
.replace("[[_Field_]]", emailItnVO.getField())
.replace("[[_Content_]]", emailItnVO.getContent())
;
// 메일 첨부파일을 위한 절대경로
String absolutePath = ITN_FILE_SAVE_DIR + emailItnVO.getFileNm();
// 메일 제목
String mailTitle = "["+emailItnVO.getField()+"] (주)아이티앤 입사지원 메일 입니다.";
// return sMail.itnSendMail(new EmailVO(
sMail.itnSendMail(new EmailVO(
mailTitle
, emailContent
, absolutePath
, emailItnVO.getOriFileNm()
, ITN_MAIL_TO_ADDRESS
, "noreply@munjaon.co.kr"
));
}
catch (IOException e) {
returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요";
status = HttpStatus.BAD_REQUEST;
e.printStackTrace();
}
catch (Exception e) {
returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요";
status = HttpStatus.BAD_REQUEST;
e.printStackTrace();
}
return new StatusResponse(status, returnMsg, LocalDateTime.now());
}
@Override
public StatusResponse mailSendItnContactUs(EmailItnVO emailItnVO) {
String returnMsg = "문의해 주셔서 감사합니다.\n빠른 시일 내에 답변해 드리겠습니다.";
HttpStatus status = HttpStatus.OK;
String emailContent = "";
SendMail sMail = new SendMail();
try {
emailContent = Jsoup.connect(ITN_CONTACT_US_TEMPLATE_URL)
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post()
.toString();
emailContent = emailContent.replace("[[_Title_]]", emailItnVO.getTitle())
.replace("[[_Name_]]", emailItnVO.getName())
.replace("[[_Email_]]", emailItnVO.getEmail())
.replace("[[_Content_]]", emailItnVO.getContent())
;
System.out.println("emailItnVO :: "+emailItnVO.toString());
// 메일 첨부파일을 위한 절대경로
String absolutePath = ITN_FILE_SAVE_DIR + emailItnVO.getFileNm();
// 메일 제목
String mailTitle = "[(주)아이티앤 문의] "+emailItnVO.getName()+"님의 문의 내용입니다.";
System.out.println("emailItnVO.getOriFileNm() :: ["+emailItnVO.getOriFileNm()+"]");
sMail.itnSendMail(new EmailVO(
mailTitle
, emailContent
, absolutePath
, emailItnVO.getOriFileNm()
, ITN_MAIL_TO_ADDRESS
, "noreply@munjaon.co.kr"
));
}
catch (IOException e) {
returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요";
status = HttpStatus.BAD_REQUEST;
e.printStackTrace();
}
catch (Exception e) {
returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요";
status = HttpStatus.BAD_REQUEST;
e.printStackTrace();
}
return new StatusResponse(status, returnMsg, LocalDateTime.now());
}
}