메일전송 문자전송 기능 추가
This commit is contained in:
parent
c542e0e2cd
commit
af074c1581
@ -259,6 +259,57 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
|
||||
private String smsSendTypeCd; // 발송유형 - CC052
|
||||
private String certNum; // 인증번호
|
||||
|
||||
private String[] phoneList; //수신번호 리스트
|
||||
|
||||
|
||||
//저작위 email 발송
|
||||
/*
|
||||
* emailTy ( 확인필요 )
|
||||
* 000 - 관리자발송
|
||||
* 001 - 보완요청
|
||||
* 002 - 수수료납부요청
|
||||
* 003 - 조정접수
|
||||
* 004 - 기일통지서승인
|
||||
* 005 - 기일조서 결재완료
|
||||
* 006 - 조정조서 결재완료
|
||||
* 007 - 직권조정결정서 확인완료
|
||||
* 008 - 없음
|
||||
* 009 - 조정불성립
|
||||
*
|
||||
* */
|
||||
|
||||
private String[] emailList; // 수신이메일 리스트
|
||||
private String emailTitle; // 이메일 제목
|
||||
private String emailContent; // 이메일 내용
|
||||
private String emailTy; // 이메일 발송 유형
|
||||
private String emailTo; // 이메일 발송 수신자
|
||||
private String emailFrom; // 이메일 발송 발신자
|
||||
|
||||
|
||||
public String getEmailTitle() {
|
||||
return emailTitle;
|
||||
}
|
||||
public void setEmailTitle(String emailTitle) {
|
||||
this.emailTitle = emailTitle;
|
||||
}
|
||||
public String getEmailContent() {
|
||||
return emailContent;
|
||||
}
|
||||
public void setEmailContent(String emailContent) {
|
||||
this.emailContent = emailContent;
|
||||
}
|
||||
public String[] getEmailList() {
|
||||
return emailList;
|
||||
}
|
||||
public void setEmailList(String[] emailList) {
|
||||
this.emailList = emailList;
|
||||
}
|
||||
public String[] getPhoneList() {
|
||||
return phoneList;
|
||||
}
|
||||
public void setPhoneList(String[] phoneList) {
|
||||
this.phoneList = phoneList;
|
||||
}
|
||||
public AdjReqMgrVO getAdrVO() {
|
||||
return adrVO;
|
||||
}
|
||||
@ -1231,6 +1282,22 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
|
||||
public void setCertNum(String certNum) {
|
||||
this.certNum = certNum;
|
||||
}
|
||||
|
||||
|
||||
public String getEmailTy() {
|
||||
return emailTy;
|
||||
}
|
||||
public void setEmailTy(String emailTy) {
|
||||
this.emailTy = emailTy;
|
||||
}
|
||||
public String getEmailTo() {
|
||||
return emailTo;
|
||||
}
|
||||
public void setEmailTo(String emailTo) {
|
||||
this.emailTo = emailTo;
|
||||
}
|
||||
public String getEmailFrom() {
|
||||
return emailFrom;
|
||||
}
|
||||
public void setEmailFrom(String emailFrom) {
|
||||
this.emailFrom = emailFrom;
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,6 +62,10 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
|
||||
@Value("#{globalSettings['Globals.SMSDB.TrId']}")
|
||||
private String trId; // 시스템 구분자
|
||||
|
||||
@Value("#{globalSettings['Globals.prod.islocal']}")
|
||||
private String islocal; // 시스템 구분자
|
||||
|
||||
|
||||
// SMS전송(SMS전송서버-오라클DB)
|
||||
@Resource(name = "SMSOracleDAO")
|
||||
private SMSOracleDAO sMSOracleDAO;
|
||||
@ -703,10 +707,14 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
|
||||
int bytes = adjReqMgrVO.getSendMsg().getBytes("euc-kr").length; // 발송메시지 바이트수
|
||||
|
||||
if (bytes > 90) {
|
||||
if(!islocal.equals("local")) {
|
||||
sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
|
||||
}
|
||||
adjReqMgrDAO.insertAdrMmsCustomSend(adjReqMgrVO); // SMS 이력 등록 장문 > 전자조정
|
||||
} else {
|
||||
if(!islocal.equals("local")) {
|
||||
sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
|
||||
}
|
||||
adjReqMgrDAO.insertAdrSmsCustomSend(adjReqMgrVO); // SMS 이력 등록 단문 > 전자조정
|
||||
}
|
||||
//sms 발송 관리 테이블에 저장
|
||||
|
||||
82
src/main/java/kcc/kccadr/msg/service/EmailMgrVO.java
Normal file
82
src/main/java/kcc/kccadr/msg/service/EmailMgrVO.java
Normal file
@ -0,0 +1,82 @@
|
||||
package kcc.kccadr.msg.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import kcc.com.cmm.ComDefaultVO;
|
||||
|
||||
public class EmailMgrVO extends ComDefaultVO implements Serializable{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String emailSeq; // 이메일 발송 일련번호
|
||||
private String emailTitle; // 이메일 제목
|
||||
private String emailContent; // 이메일 내용
|
||||
private String emailTy; // 이메일 발송 유형
|
||||
private String emailTo; // 이메일 발송 수신자
|
||||
private String emailFrom; // 이메일 발송 발신자
|
||||
private String adrSeq; // 조정일련번호
|
||||
private String emailSendPnttm; // 이메일 발송일자
|
||||
private String frstRegistPnttm; // 로그등록일자
|
||||
|
||||
|
||||
public String getEmailSeq() {
|
||||
return emailSeq;
|
||||
}
|
||||
public void setEmailSeq(String emailSeq) {
|
||||
this.emailSeq = emailSeq;
|
||||
}
|
||||
public String getEmailTitle() {
|
||||
return emailTitle;
|
||||
}
|
||||
public void setEmailTitle(String emailTitle) {
|
||||
this.emailTitle = emailTitle;
|
||||
}
|
||||
public String getEmailContent() {
|
||||
return emailContent;
|
||||
}
|
||||
public void setEmailContent(String emailContent) {
|
||||
this.emailContent = emailContent;
|
||||
}
|
||||
public String getEmailTy() {
|
||||
return emailTy;
|
||||
}
|
||||
public void setEmailTy(String emailTy) {
|
||||
this.emailTy = emailTy;
|
||||
}
|
||||
public String getEmailTo() {
|
||||
return emailTo;
|
||||
}
|
||||
public void setEmailTo(String emailTo) {
|
||||
this.emailTo = emailTo;
|
||||
}
|
||||
public String getEmailFrom() {
|
||||
return emailFrom;
|
||||
}
|
||||
public void setEmailFrom(String emailFrom) {
|
||||
this.emailFrom = emailFrom;
|
||||
}
|
||||
public String getAdrSeq() {
|
||||
return adrSeq;
|
||||
}
|
||||
public void setAdrSeq(String adrSeq) {
|
||||
this.adrSeq = adrSeq;
|
||||
}
|
||||
public String getEmailSendPnttm() {
|
||||
return emailSendPnttm;
|
||||
}
|
||||
public void setEmailSendPnttm(String emailSendPnttm) {
|
||||
this.emailSendPnttm = emailSendPnttm;
|
||||
}
|
||||
public String getFrstRegistPnttm() {
|
||||
return frstRegistPnttm;
|
||||
}
|
||||
public void setFrstRegistPnttm(String frstRegistPnttm) {
|
||||
this.frstRegistPnttm = frstRegistPnttm;
|
||||
}
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,8 @@ package kcc.kccadr.msg.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
||||
|
||||
public interface MsgMgrService {
|
||||
|
||||
//발송문구 갯수
|
||||
@ -27,4 +29,14 @@ public interface MsgMgrService {
|
||||
|
||||
//발송문자 리스트
|
||||
List<SmsMgrVO> smsMgrList(SmsMgrVO smsMgrVO) throws Exception;
|
||||
|
||||
//발송 email 갯수
|
||||
int emailMgrListCount(EmailMgrVO emailMgrVO) throws Exception;
|
||||
|
||||
// 발송 email 내역 리스트 조회
|
||||
List<EmailMgrVO> emailMgrList(EmailMgrVO emailMgrVO) throws Exception;
|
||||
|
||||
// 발송 email 내역 등록
|
||||
String insertAdrEmailLog(AdjReqMgrVO adjReqMgrVO) throws Exception;
|
||||
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import org.springframework.stereotype.Repository;
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
||||
import kcc.kccadr.msg.service.EmailMgrVO;
|
||||
import kcc.kccadr.msg.service.MsgMgrVO;
|
||||
import kcc.kccadr.msg.service.SmsMgrVO;
|
||||
|
||||
@ -101,4 +102,20 @@ public class MsgMgrDAO extends EgovAbstractDAO {
|
||||
update("msgMgrDAO.updateAdrSendType", map);
|
||||
}
|
||||
|
||||
|
||||
//발송문자 갯수
|
||||
public int emailMgrListCount(EmailMgrVO emailMgrVO) throws Exception{
|
||||
return (int) select("MsgMgrDAO.emailMgrListCount", emailMgrVO);
|
||||
}
|
||||
|
||||
// 발송 email 내역 리스트 조회
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<EmailMgrVO> emailMgrList(EmailMgrVO emailMgrVO) throws Exception{
|
||||
return (List<EmailMgrVO>) list("MsgMgrDAO.emailMgrList", emailMgrVO);
|
||||
}
|
||||
|
||||
// 발송 email 내역 등록
|
||||
public void insertAdrEmailLog(AdjReqMgrVO adjReqMgrVO) throws Exception{
|
||||
insert("MsgMgrDAO.insertAdrEmailLog", adjReqMgrVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,8 @@ import javax.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
||||
import kcc.kccadr.msg.service.EmailMgrVO;
|
||||
import kcc.kccadr.msg.service.MsgMgrService;
|
||||
import kcc.kccadr.msg.service.MsgMgrVO;
|
||||
import kcc.kccadr.msg.service.SmsMgrVO;
|
||||
@ -62,4 +64,43 @@ public class MsgMgrServiceImpl extends EgovAbstractServiceImpl implements MsgMgr
|
||||
|
||||
return msgMgrDAO.smsMgrList(smsMgrVO);
|
||||
}
|
||||
|
||||
//발송 email 갯수
|
||||
public int emailMgrListCount(EmailMgrVO emailMgrVO) throws Exception {
|
||||
return msgMgrDAO.emailMgrListCount(emailMgrVO);
|
||||
}
|
||||
|
||||
// 발송 email 내역 리스트 조회
|
||||
public List<EmailMgrVO> emailMgrList(EmailMgrVO emailMgrVO) throws Exception {
|
||||
return msgMgrDAO.emailMgrList(emailMgrVO);
|
||||
}
|
||||
|
||||
// 발송 email 내역 등록
|
||||
public String insertAdrEmailLog(AdjReqMgrVO adjReqMgrVO) throws Exception {
|
||||
String result = "fail";
|
||||
try {
|
||||
|
||||
/*추후 확인 필요
|
||||
* adrSeq ( 확인필요 )
|
||||
* emailTy ( 확인필요 )
|
||||
* 000 - 관리자발송
|
||||
* 001 - 보완요청
|
||||
* 002 - 수수료납부요청
|
||||
* 003 - 조정접수
|
||||
* 004 - 기일통지서승인
|
||||
* 005 - 기일조서 결재완료
|
||||
* 006 - 조정조서 결재완료
|
||||
* 007 - 직권조정결정서 확인완료
|
||||
* 008 - 없음
|
||||
* 009 - 조정불성립
|
||||
*
|
||||
* */
|
||||
|
||||
msgMgrDAO.insertAdrEmailLog(adjReqMgrVO);
|
||||
result = "SUCCESS";
|
||||
}catch (Exception e) {
|
||||
System.out.println("Exception Occured!!!");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@ import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.service.EgovCmmUseService;
|
||||
import kcc.com.utl.fcc.service.EgovStringUtil;
|
||||
import kcc.kccadr.cmm.service.SMSOracleService;
|
||||
import kcc.kccadr.msg.service.EmailMgrVO;
|
||||
import kcc.kccadr.msg.service.MsgMgrService;
|
||||
import kcc.kccadr.msg.service.MsgMgrVO;
|
||||
import kcc.kccadr.msg.service.SmsMgrVO;
|
||||
@ -330,7 +331,52 @@ public class MsgMgrController {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@RequestMapping("/kccadr/msg/sendEmailMgrList.do")
|
||||
public String sendEmailMgrList(@ModelAttribute("emailMgrVO") EmailMgrVO emailMgrVO, ModelMap model) throws Exception {
|
||||
|
||||
if(emailMgrVO.getPageUnit() != 10) {
|
||||
emailMgrVO.setPageUnit(emailMgrVO.getPageUnit());
|
||||
}
|
||||
|
||||
if("".equals(emailMgrVO.getSearchSortCnd())){
|
||||
emailMgrVO.setSearchSortCnd("EMAIL_SEQ");
|
||||
emailMgrVO.setSearchSortOrd("desc");
|
||||
}
|
||||
|
||||
//검색조건이 수신자 검색의 경우 이름을 암호화 해준다.
|
||||
if("2".equals(emailMgrVO.getSearchCondition()) && StringUtils.isNotBlank(emailMgrVO.getSearchKeyword())) {
|
||||
|
||||
emailMgrVO.setSearchKeyword(egovCryptoUtil.encrypt(emailMgrVO.getSearchKeyword()));
|
||||
|
||||
}
|
||||
|
||||
/** paging */
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(emailMgrVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(emailMgrVO.getPageUnit());
|
||||
paginationInfo.setPageSize(emailMgrVO.getPageSize());
|
||||
|
||||
emailMgrVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
emailMgrVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
emailMgrVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
paginationInfo.setTotalRecordCount(msgMgrService.emailMgrListCount(emailMgrVO));
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
List<EmailMgrVO> list = msgMgrService.emailMgrList(emailMgrVO);
|
||||
// 복호화
|
||||
decryptEmailInfomation(list, null);
|
||||
model.addAttribute("list", list);
|
||||
|
||||
//검색조건이 수신자 검색의 경우 이름을 암호화 해준다.
|
||||
if("2".equals(emailMgrVO.getSearchCondition()) && StringUtils.isNotBlank(emailMgrVO.getSearchKeyword())) {
|
||||
|
||||
emailMgrVO.setSearchKeyword(egovCryptoUtil.decrypt(emailMgrVO.getSearchKeyword()));
|
||||
|
||||
}
|
||||
|
||||
return "kccadr/msg/sendEmailMgrList";
|
||||
}
|
||||
|
||||
// 문자전송 복호화
|
||||
public void decryptInfomation(List<SmsMgrVO> list, SmsMgrVO info){
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
for(SmsMgrVO model : list){
|
||||
@ -382,4 +428,18 @@ public class MsgMgrController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 이메일 리스트 복호화
|
||||
public void decryptEmailInfomation(List<EmailMgrVO> list, EmailMgrVO info){
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
for(EmailMgrVO model : list){
|
||||
model.setEmailTo(egovCryptoUtil.decrypt(model.getEmailTo()));
|
||||
model.setEmailFrom(egovCryptoUtil.decrypt(model.getEmailFrom()));
|
||||
}
|
||||
}
|
||||
if(info != null){
|
||||
info.setEmailTo(egovCryptoUtil.decrypt(info.getEmailTo()));
|
||||
info.setEmailFrom(egovCryptoUtil.decrypt(info.getEmailFrom()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
133
src/main/java/kcc/kccadr/sendMgr/web/SendMgrEmailController.java
Normal file
133
src/main/java/kcc/kccadr/sendMgr/web/SendMgrEmailController.java
Normal file
@ -0,0 +1,133 @@
|
||||
package kcc.kccadr.sendMgr.web;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.mail.Authenticator;
|
||||
import javax.mail.Message;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.PasswordAuthentication;
|
||||
import javax.mail.Session;
|
||||
import javax.mail.Transport;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
||||
import kcc.kccadr.msg.service.MsgMgrService;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
|
||||
/**
|
||||
* EMAIL 발송관리자(관리자)
|
||||
* EMAIL 발송관련 처리에 관한 controller 클래스를 정의한다.
|
||||
* @author 원영현
|
||||
* @since 2023.09.13
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023.09.13 원영현 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
public class SendMgrEmailController {
|
||||
|
||||
@Resource(name = "MsgMgrService")
|
||||
private MsgMgrService msgMgrService;
|
||||
|
||||
//암복호화 유틸
|
||||
@Resource(name = "egovCryptoUtil")
|
||||
EgovCryptoUtil egovCryptoUtil;
|
||||
|
||||
/**
|
||||
* @Method Name : emailSendMgrPage
|
||||
* @작성일 : 2023. 9. 13.
|
||||
* @작성자 : WYH
|
||||
* @변경이력 :
|
||||
* @Method 설명 : email 전송화면 이동
|
||||
*/
|
||||
@RequestMapping(value = "/kccadr/sendMgr/emailSendMgr.do")
|
||||
public String emailSendMgrPage() {
|
||||
|
||||
return "/kccadr/sendMgr/emailSendMgr";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/kccadr/sendMgr/emailSendMgrAjax.do")
|
||||
public ModelAndView emailSendMgrAjax(
|
||||
@ModelAttribute("adjReqMgrVO") AdjReqMgrVO adjReqMgrVO
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
String emailFrom = "no-reply@copyright.or.kr"; // 추후 globals.properties 를 이용하여 변경
|
||||
String emailPs = "Copycopy12!"; // 추후 globals.properties 를 이용하여 변경
|
||||
try {
|
||||
|
||||
Properties props = new Properties();
|
||||
props.put("mail.transport.protocol", "smtp");
|
||||
props.put("mail.smtp.host", "smtp.gov-dooray.com");
|
||||
props.put("mail.smtp.port", "465");
|
||||
props.put("mail.smtp.auth", "true");
|
||||
props.put("mail.smtp.ssl.enable", "true");
|
||||
|
||||
props.put("mail.smtp.ssl.protocols", "TLSv1");
|
||||
props.put("mail.smtp.ssl.protocols", "TLSv1.1");
|
||||
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
|
||||
props.put("mail.debug", "true");
|
||||
Authenticator authenticator = new Authenticator(){
|
||||
protected PasswordAuthentication getPasswordAuthentication(){
|
||||
return new PasswordAuthentication(emailFrom,emailPs);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Session session = Session.getInstance(props, authenticator) ;
|
||||
InternetAddress fromAddress = new InternetAddress(emailFrom);
|
||||
|
||||
|
||||
String result = "";
|
||||
String emailTo = "";
|
||||
for(int i=0; i < adjReqMgrVO.getEmailList().length; i++) {
|
||||
emailTo = adjReqMgrVO.getEmailList()[i];
|
||||
InternetAddress toAddress = new InternetAddress(emailTo);
|
||||
MimeMessage message = new MimeMessage(session);
|
||||
message.setFrom(fromAddress);
|
||||
message.addRecipient(Message.RecipientType.TO, toAddress );
|
||||
message.setSubject(adjReqMgrVO.getEmailTitle());
|
||||
message.setContent(adjReqMgrVO.getEmailContent()," text/html; charset=KSC5601");
|
||||
System.out.println("------------------ 메일발송 시작 ----------------");
|
||||
Transport.send(message);
|
||||
System.out.println("------------------ 메일발송 끝 ----------------");
|
||||
|
||||
System.out.println("------------------ 메일발송Log 추가 시작----------------");
|
||||
|
||||
String encEmailFrom = egovCryptoUtil.encrypt(emailFrom); // email 수신자 주소 암호화
|
||||
String encEmailTo = egovCryptoUtil.encrypt(emailTo); // email 발신자 주소 암호화
|
||||
adjReqMgrVO.setEmailFrom(encEmailFrom);
|
||||
adjReqMgrVO.setEmailTo(encEmailTo);
|
||||
result = msgMgrService.insertAdrEmailLog(adjReqMgrVO);
|
||||
System.out.println("------------------ 메일발송Log 추가 끝----------------");
|
||||
}
|
||||
|
||||
modelAndView.addObject("result", result);
|
||||
} catch (MessagingException e) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("message", "email발송 요청에 실패했습니다.");
|
||||
}
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
package kcc.kccadr.sendMgr.web;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
||||
import kcc.kccadr.cmm.service.SMSOracleService;
|
||||
|
||||
/**
|
||||
* SMS 발송관리자(관리자)
|
||||
* SMS 발송관련 처리에 관한 controller 클래스를 정의한다.
|
||||
* @author 원영현
|
||||
* @since 2023.09.13
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023.09.13 원영현 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
public class SendMgrSMSController {
|
||||
|
||||
// SMS 문자발송 서비스
|
||||
@Resource(name = "SMSOracleService")
|
||||
private SMSOracleService sMSOracleService;
|
||||
|
||||
/**
|
||||
* @Method Name : smsSendMgrPage
|
||||
* @작성일 : 2023. 9. 13.
|
||||
* @작성자 : WYH
|
||||
* @변경이력 :
|
||||
* @Method 설명 : SMS 발송 화면이동
|
||||
*/
|
||||
@RequestMapping(value = "/kccadr/sendMgr/smsSendMgr.do")
|
||||
public String smsSendMgrPage() {
|
||||
|
||||
return "/kccadr/sendMgr/smsSendMgr";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Method Name : smsSendMgrAjax
|
||||
* @작성일 : 2023. 9. 13.
|
||||
* @작성자 : WYH
|
||||
* @변경이력 :
|
||||
* @Method 설명 : SMS 발송
|
||||
*/
|
||||
@RequestMapping(value = "/kccadr/sendMgr/smsSendMgrAjax.do")
|
||||
public ModelAndView smsSendMgrAjax(
|
||||
@ModelAttribute("adjReqMgrVO") AdjReqMgrVO adjReqMgrVO
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
try {
|
||||
String result = "";
|
||||
for(int i=0; i < adjReqMgrVO.getPhoneList().length; i++) {
|
||||
adjReqMgrVO.setSendTelNo(adjReqMgrVO.getPhoneList()[i]);
|
||||
result = sMSOracleService.insertSmsCustomSend(adjReqMgrVO);
|
||||
}
|
||||
modelAndView.addObject("result", result);
|
||||
}catch (Exception e) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("message", "문자발송 요청에 실패했습니다.");
|
||||
}
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
}
|
||||
@ -4,6 +4,7 @@
|
||||
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
|
||||
<typeAlias alias="MsgMgrVO" type="kcc.kccadr.msg.service.MsgMgrVO"/>
|
||||
<typeAlias alias="SmsMgrVO" type="kcc.kccadr.msg.service.SmsMgrVO"/>
|
||||
<typeAlias alias="EmailMgrVO" type="kcc.kccadr.msg.service.EmailMgrVO"/>
|
||||
<typeAlias alias="AdjReqMgrVO" type="kcc.kccadr.adjreqmgr.service.AdjReqMgrVO"/>
|
||||
|
||||
<!-- 발송문구 갯수 -->
|
||||
@ -299,4 +300,77 @@
|
||||
</isEqual>
|
||||
</update>
|
||||
|
||||
<insert id="MsgMgrDAO.insertAdrEmailLog" parameterClass="AdjReqMgrVO">
|
||||
INSERT INTO ADR_EMAIL_LOG (
|
||||
EMAIL_TIT
|
||||
, EMAIL_CN
|
||||
, EMAIL_TY
|
||||
, EMAIL_TO
|
||||
, EMAIL_FROM
|
||||
, ADR_SEQ
|
||||
, EMAIL_SEND_PNTTM
|
||||
, FRST_REGIST_PNTTM
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#emailTitle#
|
||||
, #emailContent#
|
||||
, #emailTy#
|
||||
, #emailTo#
|
||||
, #emailFrom#
|
||||
, #adrSeq#
|
||||
, now()
|
||||
, now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="MsgMgrDAO.emailMgrListCount" parameterClass="EmailMgrVO" resultClass="Integer">
|
||||
SELECT
|
||||
COUNT(email_seq)
|
||||
FROM
|
||||
ADR_EMAIL_LOG
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="1">
|
||||
EMAIL_CN LIKE CONCAT('%' , #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="2">
|
||||
EMAIL_TO = #searchKeyword#
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
ORDER BY EMAIL_SEND_PNTTM DESC
|
||||
|
||||
</select>
|
||||
|
||||
<select id="MsgMgrDAO.emailMgrList" parameterClass="EmailMgrVO" resultClass="EmailMgrVO">
|
||||
SELECT
|
||||
EMAIL_SEQ AS emailSeq
|
||||
, EMAIL_TIT AS emailTitle
|
||||
, EMAIL_CN AS emailContent
|
||||
, EMAIL_TY AS emailTy
|
||||
, EMAIL_TO AS emailTo
|
||||
, EMAIL_FROM AS emailFrom
|
||||
, ADR_SEQ AS adrSeq
|
||||
, TO_CHAR ( EMAIL_SEND_PNTTM, 'YYYY/MM/DD' ) AS emailSendPnttm
|
||||
, TO_CHAR ( FRST_REGIST_PNTTM, 'YYYY/MM/DD' ) AS frstRegistPnttm
|
||||
FROM ADR_EMAIL_LOG
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="1">
|
||||
EMAIL_CN LIKE CONCAT('%' , #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual prepend="AND" property="searchCondition" compareValue="2">
|
||||
EMAIL_TO = #searchKeyword#
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
ORDER BY 1=1
|
||||
<isNotEmpty property="searchSortCnd">
|
||||
,$searchSortCnd$
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSortOrd">
|
||||
$searchSortOrd$
|
||||
</isNotEmpty>
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
|
||||
</select>
|
||||
</sqlMap>
|
||||
175
src/main/webapp/WEB-INF/jsp/kccadr/msg/sendEmailMgrList.jsp
Normal file
175
src/main/webapp/WEB-INF/jsp/kccadr/msg/sendEmailMgrList.jsp
Normal file
@ -0,0 +1,175 @@
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : sendMsgMgrList.jsp
|
||||
* @Description : 발송문자 리스트
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2021.12.30 우영두 최초 생성
|
||||
* @author 우영두
|
||||
* @since 2021.12.30
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
%>
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.searchCondition.value = $('#searchCondition').val();
|
||||
listForm.searchKeyword.value = $('#searchKeyword').val();
|
||||
listForm.action = "<c:url value='/kccadr/msg/sendEmailMgrList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
//발송문구 관리 리스트화면으로 이동
|
||||
function fncMsgMgrReg(msgSeq) {
|
||||
|
||||
location.href="<c:url value='/kccadr/msg/msgMgrList.do'/>";
|
||||
|
||||
}
|
||||
</script>
|
||||
<title>발송 Email 목록</title>
|
||||
<form id="listForm" name="listForm" method="post">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${msgMgrVO.pageIndex}' default='1' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${msgMgrVO.searchSortCnd}" />" />
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${msgMgrVO.searchSortOrd}" />" />
|
||||
<input type="hidden" id="smsSeq" name="smsSeq" value=""/>
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>발송 Email 목록</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home">
|
||||
<a href="/">
|
||||
<i></i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<p>발송 관리</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>발송email 관리</p>
|
||||
</li>
|
||||
<li>
|
||||
<span class="cur_nav">발송email 목록</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
|
||||
<div class="cont">
|
||||
<!-- list_top -->
|
||||
<div class="list_top">
|
||||
<div class="list_util">
|
||||
<div class="detail_search">
|
||||
<ul>
|
||||
<li>
|
||||
<p class="tit_text">구분</p>
|
||||
<select name="searchCondition" id="searchCondition">
|
||||
<%-- <option value="" ${msgMgrVO.searchCondition eq '' ? 'selected' : '' }>전체</option> --%>
|
||||
<option value="1" ${msgMgrVO.searchCondition eq '1' ? 'selected' : '' }>발송내용</option>
|
||||
<option value="2" ${msgMgrVO.searchCondition eq '2' ? 'selected' : '' }>수신자</option>
|
||||
</select>
|
||||
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${smsMgrVO.searchKeyword}'/>">
|
||||
<button class="btn_search" onclick="fncGoList(); return false;">검색</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //list_top -->
|
||||
|
||||
<!-- list -->
|
||||
<div class="list tbType01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: auto">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>번호<button class="sort btn_sort" id="sort_msgSeq"></button></th>
|
||||
<th>발송유형<button type="button" class="sort sortBtn" id="sort_emailTy"></button></th>
|
||||
<th>발송내용<button type="button" class="sort sortBtn" id="sort_emailContent"></button></th>
|
||||
<th>조정번호<button type="button" class="sort sortBtn" id="sort_adrSeq"></button></th>
|
||||
<th>받는사람<button type="button" class="sort sortBtn" id="sort_emailTo"></button></th>
|
||||
<th>보내는사람<button type="button" class="sort sortBtn" id="sort_emailFrom"></button></th>
|
||||
<th>발송일자<button type="button" class="sort sortBtn" id="sort_emailSendPnttm"></button></th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr onclick="fnAcptDetail('${list.emailSeq}');" style="cursor:pointer;">
|
||||
<td>
|
||||
<c:if test="${smsMgrVO.searchSortOrd eq 'desc' }">
|
||||
<c:out value="${ ( paginationInfo.totalRecordCount - ((smsMgrVO.pageIndex -1)*smsMgrVO.pageUnit) ) - status.index }"/>
|
||||
</c:if>
|
||||
<c:if test="${smsMgrVO.searchSortOrd eq 'asc' }">
|
||||
<c:out value="${(smsMgrVO.pageIndex - 1) * smsMgrVO.pageUnit + status.count}"/>
|
||||
</c:if>
|
||||
</td>
|
||||
<td><kc:code codeId="CC050" code="${list.emailTy}"/></td>
|
||||
<td>
|
||||
<c:out value="${list.emailContent}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.adrSeq}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.emailTo}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.emailFrom}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.emailSendPnttm}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list -->
|
||||
<div class="btn_wrap btn_layout02">
|
||||
<button class="btnType02" onclick="fncMsgMgrReg(); return false;">발송문구 관리</button>
|
||||
</div>
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
<!-- //page -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
170
src/main/webapp/WEB-INF/jsp/kccadr/sendMgr/emailSendMgr.jsp
Normal file
170
src/main/webapp/WEB-INF/jsp/kccadr/sendMgr/emailSendMgr.jsp
Normal file
@ -0,0 +1,170 @@
|
||||
<!DOCTYPE html>
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : emailSendMgr.do
|
||||
* @Description : email 발송 화면
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2023.09.13 원영현 최초 생성
|
||||
* @author 원영현
|
||||
* @since 2023.09.13
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
function inputAddEamil(ty){
|
||||
var inputEmail = $("#callTo").val();
|
||||
|
||||
if(inputEmail == "" || inputEmail == null){
|
||||
alert("메일주소를 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
|
||||
var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
||||
if(taxExptext.test(inputEmail)==false){
|
||||
alert("이메일주소 형식이 올바르지 않습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
inputAddLine(ty);
|
||||
}
|
||||
|
||||
function fnEmailSend(){
|
||||
|
||||
var sendLength = $("input[name=inputAdd]").length;
|
||||
var emailSubject = $("#emailSubject").val();
|
||||
var emailContent = $("#emailContent").val();
|
||||
|
||||
|
||||
if(sendLength == 0){
|
||||
alert("수신 메일주소를 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
if(emailSubject == ""){
|
||||
alert("발송제목을 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
if(emailContent == ""){
|
||||
alert("발송내용을 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//전송 메일주소 배열 생성
|
||||
var emailArr = new Array(sendLength);
|
||||
for(var i=0; i < sendLength; i++){
|
||||
emailArr[i] = $("input[name=inputAdd]").eq(i).val();
|
||||
}
|
||||
$("#emailList").val(emailArr);
|
||||
|
||||
var data = new FormData(document.emailForm);
|
||||
$.ajax({
|
||||
type: "POST"
|
||||
, url: "/kccadr/sendMgr/emailSendMgrAjax.do"
|
||||
, data: data
|
||||
, dataType:'json'
|
||||
, async: false
|
||||
, processData: false
|
||||
, contentType: false
|
||||
, cache: false
|
||||
, success: function (returnData, status) {
|
||||
console.log(returnData.result);
|
||||
if(returnData.result == 'SUCCESS'){
|
||||
alert("email전송에 성공하였습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(returnData.message);
|
||||
}
|
||||
}
|
||||
,error: function (e) {
|
||||
alert("요청에 실패하였습니다.");
|
||||
console.log("ERROR : ", e);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
<form id="emailForm" name="emailForm" method="post">
|
||||
<input type="hidden" id="emailList" name="emailList"/>
|
||||
<!-- cont -->
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>이메일 발송</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>발송 관리</p>
|
||||
</li>
|
||||
<li>
|
||||
<span class="cur_nav">이메일 발송</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
|
||||
<div class="cont">
|
||||
<!-- list_상세 -->
|
||||
<div class="tbType02">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>수신메일주소</th>
|
||||
<td>
|
||||
<div class="input_form">
|
||||
<input type="text" class="write_info" id="callTo" name="callTo" placeholder="email주소를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='email주소를 입력하세요'">
|
||||
<button type="button" class="btnType01" onclick="inputAddEamil(this);">메일추가</button>
|
||||
<div class="input_form_add_wrap">
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>발송제목</th>
|
||||
<td>
|
||||
<input type="text" size="100" id="emailTitle" name="emailTitle">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>발송내용</th>
|
||||
<td>
|
||||
<textarea name="emailContent" id="emailContent" cols="30" rows="10"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list_상세 -->
|
||||
|
||||
<!-- btn_wrap -->
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="area_left">
|
||||
</div>
|
||||
<div class="area_right">
|
||||
<button class="btnType02" onclick="fnEmailSend(); return false;">발송</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //btn_wrap -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //cont -->
|
||||
</form>
|
||||
154
src/main/webapp/WEB-INF/jsp/kccadr/sendMgr/smsSendMgr.jsp
Normal file
154
src/main/webapp/WEB-INF/jsp/kccadr/sendMgr/smsSendMgr.jsp
Normal file
@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html>
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : smsSendMgr.do
|
||||
* @Description : SMS 발송 화면
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2023.09.13 원영현 최초 생성
|
||||
* @author 원영현
|
||||
* @since 2023.09.13
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
function inputAddPhone(ty){
|
||||
var inputPhone = $("#callTo").val();
|
||||
|
||||
if(inputPhone == "" || inputPhone == null){
|
||||
alert("수신번호를 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
|
||||
inputAddLine(ty);
|
||||
}
|
||||
|
||||
function fnSmsSend(){
|
||||
|
||||
|
||||
var sendLength = $("input[name=inputAdd]").length;
|
||||
var sendMsg = $("#sendMsg").val();
|
||||
|
||||
|
||||
if(sendLength == 0){
|
||||
alert("수신번호를 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
if(sendMsg == ""){
|
||||
alert("발송내용을 입력해 주세요");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//배열 생성
|
||||
var phoneArr = new Array(sendLength);
|
||||
for(var i=0; i < sendLength; i++){
|
||||
phoneArr[i] = $("input[name=inputAdd]").eq(i).val();
|
||||
}
|
||||
$("#phoneList").val(phoneArr);
|
||||
|
||||
|
||||
var data = new FormData(document.smsForm);
|
||||
$.ajax({
|
||||
type: "POST"
|
||||
, url: "/kccadr/sendMgr/smsSendMgrAjax.do"
|
||||
, data: data
|
||||
, dataType:'json'
|
||||
, async: false
|
||||
, processData: false
|
||||
, contentType: false
|
||||
, cache: false
|
||||
, success: function (returnData, status) {
|
||||
console.log(returnData.result);
|
||||
if(returnData.result == 'SUCCESS'){
|
||||
alert("문자발송요청에 성공하였습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(returnData.message);
|
||||
}
|
||||
}
|
||||
,error: function (e) {
|
||||
alert("요청에 실패하였습니다.");
|
||||
console.log("ERROR : ", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<form id="smsForm" name="smsForm" method="post">
|
||||
<input type="hidden" id="phoneList" name="phoneList"/>
|
||||
<!-- cont -->
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>SMS 발송</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>발송 관리</p>
|
||||
</li>
|
||||
<li>
|
||||
<span class="cur_nav">SMS 발송</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
|
||||
<div class="cont">
|
||||
<!-- list_상세 -->
|
||||
<div class="tbType02">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>수신번호</th>
|
||||
<td>
|
||||
<div class="input_form">
|
||||
<input type="text" class="write_info" id="callTo" name="callTo" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" placeholder="번호를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'">
|
||||
<button type="button" class="btnType01" onclick="inputAddPhone(this);">번호추가</button>
|
||||
<ul class="input_form_add_wrap">
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>발송내용</th>
|
||||
<td>
|
||||
<textarea name="sendMsg" id="sendMsg" cols="30" rows="10"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list_상세 -->
|
||||
|
||||
<!-- btn_wrap -->
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="area_left">
|
||||
</div>
|
||||
<div class="area_right">
|
||||
<button class="btnType02" onclick="fnSmsSend(); return false;">발송</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //btn_wrap -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //cont -->
|
||||
</form>
|
||||
@ -172,7 +172,11 @@ function inputAddLine(itm){
|
||||
var inputLineNum = $(itm).siblings(".input_form_add_wrap").find("li").length;
|
||||
inputLineNum+=1;
|
||||
console.log(inputLineNum);
|
||||
var inputLineText = '<li><p></p>'+inputValue+'<button type="button" onclick="inputDeleteLine(this);"><img src="/kccadrPb/adm/image/close-orange.png" alt=""></button></li>';
|
||||
$("#callTo").val("");
|
||||
var inputLineText = '<li><p></p><input type="hidden" name="inputAdd" value="'+inputValue+'"/>'
|
||||
+inputValue
|
||||
+'<button type="button" onclick="inputDeleteLine(this);"><img src="/kccadrPb/adm/image/close-orange.png" alt=""></button></li>';
|
||||
|
||||
$(itm).siblings(".input_form_add_wrap").append(inputLineText);
|
||||
lineNumber();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user