File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.schdlr.service.impl;
import java.io.File;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.jsoup.Jsoup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import itn.com.cmm.EgovMultiPartEmail;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.impl.FileManageDAO;
import itn.let.fax.user.service.impl.FaxDAO;
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.mjo.pay.service.MjonPayService;
import itn.let.mjo.pay.service.StVcVO;
import itn.let.mjo.payva.service.VacsAhstService;
import itn.let.mjo.payva.service.VacsAhstVO;
import itn.let.schdlr.service.SchdlrManageService;
import itn.let.schdlr.service.SchdlrVO;
@Service("SchdlrManageService")
public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements SchdlrManageService {
@Resource(name = "egovItsmSchdlrGnrService")
private EgovIdGnrService idgenSchdlrId;
@Resource(name = "egovItsmSchdlrConfigGnrService")
private EgovIdGnrService idgenSchCfgId;
@Resource(name = "egovItsmSchdlrShareIdGnrService")
private EgovIdGnrService idgenSchdlrShareId;
@Resource(name="SchdlrManageDAO")
private SchdlrManageDAO schdlrManageDAO;
@Resource(name = "FileManageDAO")
private FileManageDAO fileMngDAO;
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "egovMultiPartEmail")
private EgovMultiPartEmail egovMultiPartEmail;
@Value("#{globalSettings['Globals.mailContentFileFolder']}")
private String MAIL_CONTENT_PATH;
@Value("#{globalSettings['Globals.HOMPAGE_URL']}")
private String HOMPAGE_URL;
//문자온 카카오 알림톡 발송 서비스
@Resource(name = "kakaoAlimTalkService")
private KakaoAlimTalkService kakaoAlimTalkService;
//문자온 문자 발송 서비스
@Resource(name = "MjonMsgDataService")
private MjonMsgDataService mjonMsgDataService;
//세틀뱅크 입금전문 서비스
@Resource(name = "vacsAhstService")
private VacsAhstService vacsAhstService;
//문자온 결제 서비스
@Resource(name = "mjonPayService")
private MjonPayService mjonPayService;
@Resource(name = "faxDAO")
public FaxDAO faxDao;
private static final Logger LOGGER = LoggerFactory.getLogger(SchdlrManageServiceImpl.class);
// 스케줄달력 목록(월별)
public List<SchdlrVO> selectSchdlrList(SchdlrVO schdlrVO) throws Exception {
return schdlrManageDAO.selectSchdlrList(schdlrVO);
}
// 스케줄 등록
public void schdlrInsert(SchdlrVO schdlrVO) throws Exception {
schdlrVO.setSchdlrId(idgenSchdlrId.getNextStringId()); // 신규 키
schdlrManageDAO.schdlrInsert(schdlrVO); // 등록
if(schdlrVO.getSchdlrUserId() != null && schdlrVO.getSchdlrUserId().length() != 0) {
String userId[] = schdlrVO.getSchdlrUserId().split(",");
String userName[] = schdlrVO.getSchdlrUserName().split(",");
for(int i=0; i <userId.length; i++ ) {
// System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@ userID : "+userId[i]);
// System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@ userName : "+userName[i]);
schdlrVO.setSchdlrUserId(userId[i]);
schdlrVO.setSchdlrUserName(userName[i]);
schdlrVO.setSchdlrShareId(idgenSchdlrShareId.getNextStringId());
schdlrManageDAO.schdlrShareInsert(schdlrVO);
}
}
}
// 스케줄 수정
public void schdlrUpdate(SchdlrVO schdlrVO) throws Exception {
schdlrManageDAO.schdlrUpdate(schdlrVO);
if(!("").equals(schdlrVO.getSchdlrUserId())) {
String userId[] = schdlrVO.getSchdlrUserId().split(",");
String userName[] = schdlrVO.getSchdlrUserName().split(",");
int schdlrShareCount = schdlrManageDAO.selectSchdlrShareCount(schdlrVO);
if(schdlrShareCount != 0) {
schdlrManageDAO.deleteSchdlrShare(schdlrVO.getSchdlrId());
}
for(int i=0; i <userId.length; i++ ) {
// System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@ userID : "+userId[i]);
// System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@ userName : "+userName[i]);
schdlrVO.setSchdlrUserId(userId[i]);
schdlrVO.setSchdlrUserName(userName[i]);
schdlrVO.setSchdlrShareId(idgenSchdlrShareId.getNextStringId());
schdlrManageDAO.schdlrShareInsert(schdlrVO);
}
}
}
// 일정 상세 조회
public SchdlrVO selectSchdlrDetail(SchdlrVO schdlrVO) throws Exception {
return schdlrManageDAO.selectSchdlrDetail(schdlrVO);
}
@Override
public List<SchdlrVO> selectSchdlrShare(SchdlrVO schdlrVO) throws Exception {
return schdlrManageDAO.selectSchdlrShare(schdlrVO);
}
// 일정 목록 조회
public List<SchdlrVO> selectSchList(SchdlrVO schdlrVO) throws Exception {
return schdlrManageDAO.selectSchList(schdlrVO);
}
// 환경설정 등록
public void insertSchConfig(SchdlrVO schdlrVO) throws Exception {
schdlrVO.setSchdlrCfgId(idgenSchCfgId.getNextStringId()); // 신규 키
schdlrManageDAO.insertSchConfig(schdlrVO); // 등록
}
// 환경설정 수정
public void updateSchConfig(SchdlrVO schdlrVO) throws Exception {
schdlrManageDAO.updateSchConfig(schdlrVO);
}
// 환경설정 상세 조회
public SchdlrVO selectSchConfigDetail(SchdlrVO schdlrVO) throws Exception {
SchdlrVO result = schdlrManageDAO.selectSchConfigDetail(schdlrVO);
if (result == null) { // 첫 조회시 기본값 등록
result = new SchdlrVO();
result.setSchdlrCfgId(idgenSchCfgId.getNextStringId());
result.setSchdlrCfgUserId(schdlrVO.getSchdlrCfgUserId());
result.setSchdlrOpenCd("01");
result.setSchdlrWeekBgnCd("01");
result.setSchdlrTimeCd("01");
result.setSchdlrColorUserCd("01");
result.setSchdlrColorShareCd("02");
result.setSchdlrColorPerCd("03");
schdlrManageDAO.insertSchConfig(result);
}
return result;
}
// 일정 알림 메일 전송
public void schMailSend(String bgnDateTime) throws Exception {
List<SchdlrVO> mailList = schdlrManageDAO.selectMailSendList(bgnDateTime);
for (SchdlrVO vo : mailList) {
if (("").equals(vo.getEmailAdres())) continue;
boolean result = sendMail(vo);
LOGGER.debug("send succ update:", result);
if (result) schdlrManageDAO.updateMailSend(vo);
}
}
/**
* 일정 알림 메일 전송
* @param SchdlrVO schdlrVO
* @return boolean
* @throws Exception
*/
private boolean sendMail(SchdlrVO schdlrVO) throws Exception {
boolean result = false;
try {
String mailSj = "["+schdlrVO.getSchdlrTitle()+"] N-CMS 스케줄러 일정 메일 알림입니다.";
String alram = "";
// // 알림설정 표시
// if (Pattern.matches("^[0-9]*$", schdlrVO.getSchdlrAlarmCnd())) {
// alram = schdlrVO.getSchdlrAlarmCnd() + " 분전";
// } else if (schdlrVO.getSchdlrAlarmCnd().equals("etc")) {
// alram = schdlrVO.getSchdlrAlarmDatetime();
// }
switch(schdlrVO.getSchdlrAlarmCnd()) {
case "0" : alram = "정시"; break;
case "10" : alram = "십분 전"; break;
case "30" : alram = "삼십분 전"; break;
case "60" : alram = "한시간 전"; break;
case "etc" : alram = schdlrVO.getSchdlrAlarmDatetime(); break;
}
String mailContent = Jsoup.parse(new File(MAIL_CONTENT_PATH + "/direct/mail_template/sch_alrm_cont.html"), "UTF-8").toString();
mailContent = mailContent.replace("#일정명", schdlrVO.getSchdlrTitle());
mailContent = mailContent.replace("#일시", schdlrVO.getSchdlrBgnDatetime() + " ~ " + schdlrVO.getSchdlrEndDatetime());
mailContent = mailContent.replace("#장소", schdlrVO.getSchdlrPlace());
mailContent = mailContent.replace("#내용", schdlrVO.getSchdlrCn().replaceAll("(\r\n|\r|\n|\n\r)", "<br>"));
mailContent = mailContent.replace("#알림설정", alram);
String resultMsg = egovMultiPartEmail.send(schdlrVO.getEmailAdres(), mailSj, "", mailContent);
// egovMultiPartEmail.send(mailAddres, mailSj", mgs); // Simple Text Mail method
result = true;
LOGGER.debug("mail send resultMsg: ", resultMsg);
} catch (Exception ex) {
LOGGER.error("Sending Mail Exception : {} [unknown Exception]", ex.getCause());
//LOGGER.error(ex.getMessage());
}
return result;
}
// 메인화면 > 전체일정
public List<SchdlrVO> selectMainSchList(SchdlrVO schdlrVO) throws Exception {
return schdlrManageDAO.selectMainSchList(schdlrVO);
}
//문자온 문자발송 실패 건수 환불 배치(1주 대상)
public void msgFailPayBack() throws Exception{
Date now = new Date();
System.out.println("문자온 실패 건수 환불 스케줄러 실행!!!(1weeks)" + now);
/*
* 문자발송 실패 건수 확인 및 캐시 환불 처리
* */
mjonMsgDataService.selectMsgSentFailList();
/*
* 세틀뱅크 입금 확인 및 캐시 충전 배치 프로세스
* */
/*VacsAhstVO vacsAhstVO = new VacsAhstVO();
List<VacsAhstVO> resultBeforCashList = vacsAhstService.selectBeforCashList(vacsAhstVO);
if(resultBeforCashList != null) {
for(VacsAhstVO temp : resultBeforCashList) {
StVcVO stvcVO = new StVcVO();
stvcVO.setOrgCd(temp.getOrgCd());
stvcVO.setBankCd(temp.getBankCd());
stvcVO.setIacctNo(temp.getIacctNo());
stvcVO.setTrNo(temp.getTrNo());
stvcVO.setTrIl(temp.getTrIl());
stvcVO.setTrAmt(temp.getTrAmt());
stvcVO.setIacctNm(temp.getIacctNm());
stvcVO.setMberId(temp.getMberId());
//세틀뱅크 입금 내역 자동 충전하기
mjonPayService.insertVcCharge(stvcVO);
//세틀뱅크 입금 내역 원장에 처리 완료 내용 입력해 주기
vacsAhstService.updateVacsAhstCashComplete(temp);
}
}*/
}
//문자온 문자발송 실패 건수 환불 배치(31일)
public void msgFailPayBackOneByDay() throws Exception{
Date now = new Date();
System.out.println("문자온 실패 건수 환불 스케줄러 실행!!!(31days)" + now);
/*
* 문자발송 실패 건수 확인 및 캐시 환불 처리
* */
mjonMsgDataService.selectMsgSentFailListOneByDay();
}
// 팩스 발송 실패 건수 환불 배치
public void faxFailPayBack() throws Exception{
System.out.println("팩스 실패 건수 환불 스케줄러 실행!!!" + new Date());
// 팩스 발송 실패 건수 확인 및 캐시 환불 처리
faxDao.selectFaxSentFailList();
}
//전용계좌 자동 충전 배치
public void vacsAutoCharge() throws Exception{
Date now = new Date();
System.out.println("문자온 전용계좌 자동 충전 스케줄러 실행 !!!" + now);
/*
* 문자발송 실패 건수 확인 및 캐시 환불 처리
* */
//mjonMsgDataService.selectMsgSentFailList();
/*
* 세틀뱅크 입금 확인 및 캐시 충전 배치 프로세스
* */
VacsAhstVO vacsAhstVO = new VacsAhstVO();
List<VacsAhstVO> resultBeforCashList = vacsAhstService.selectBeforCashList(vacsAhstVO);
if(resultBeforCashList != null) {
for(VacsAhstVO temp : resultBeforCashList) {
StVcVO stvcVO = new StVcVO();
stvcVO.setOrgCd(temp.getOrgCd());
stvcVO.setBankCd(temp.getBankCd());
stvcVO.setIacctNo(temp.getIacctNo());
stvcVO.setTrNo(temp.getTrNo());
stvcVO.setTrIl(temp.getTrIl());
stvcVO.setTrAmt(temp.getTrAmt());
stvcVO.setIacctNm(temp.getIacctNm());
stvcVO.setMberId(temp.getMberId());
//세틀뱅크 입금 내역 자동 충전하기
mjonPayService.insertVcCharge(stvcVO);
//세틀뱅크 입금 내역 원장에 처리 완료 내용 입력해 주기
vacsAhstService.updateVacsAhstCashComplete(temp);
}
}
}
//카카오 환불 처리 리스트
public void kakaoFailPayBack() throws Exception {
kakaoAlimTalkService.selectKakaoAtSentRefundList();
}
}