Merge branch 'master' of http://yickso@vcs.iten.co.kr:9999/hylee/mjon_git
This commit is contained in:
commit
d4dc30b123
@ -43,7 +43,7 @@ public class KakaoStepInfoController {
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Method Name : selectKaKaoStepInfo
|
||||
* @Project : mjon
|
||||
@ -122,6 +122,25 @@ public class KakaoStepInfoController {
|
||||
searchVO.setBbsId(boardVO.getBbsId());
|
||||
BoardMasterVO bbsMasterInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
|
||||
|
||||
/**
|
||||
* FAQ 타이틀 및 내용에 대한 XSS 변환 태그 원복
|
||||
* faqUnscript() 를 이용하여 디비에 변환 태그로 되어있는 코드를 다시 원복 시킴
|
||||
* ret.replaceAll("<", "<").replaceAll(">", ">");
|
||||
*
|
||||
* */
|
||||
for(int i=0; i<resultList.size(); i++) {
|
||||
|
||||
String nttSj = resultList.get(i).getNttSj();
|
||||
String nttCn = resultList.get(i).getNttCn();
|
||||
|
||||
nttSj = faqUnscript(nttSj);
|
||||
nttCn = faqUnscript(nttCn);
|
||||
|
||||
resultList.get(i).setNttSj(nttSj);
|
||||
resultList.get(i).setNttCn(nttCn);
|
||||
|
||||
}
|
||||
|
||||
model.addAttribute("bbsMasterInfo", bbsMasterInfo);
|
||||
model.addAttribute("resultList", resultList);
|
||||
model.addAttribute("resultCnt", map.get("resultCnt"));
|
||||
@ -146,4 +165,51 @@ public class KakaoStepInfoController {
|
||||
|
||||
return "/web/kakao/intrd/KakaoAllimtalkIntro";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* XSS 방지 처리.
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
protected String faqUnscript(String data) {
|
||||
if (data == null || data.trim().equals("")) {
|
||||
return "";
|
||||
}
|
||||
|
||||
String ret = data;
|
||||
|
||||
ret = ret.replaceAll("<(S|s)(C|c)(R|r)(I|i)(P|p)(T|t)", "<script");
|
||||
ret = ret.replaceAll("</(S|s)(C|c)(R|r)(I|i)(P|p)(T|t)", "</script");
|
||||
|
||||
ret = ret.replaceAll("<(O|o)(B|b)(J|j)(E|e)(C|c)(T|t)", "<object");
|
||||
ret = ret.replaceAll("</(O|o)(B|b)(J|j)(E|e)(C|c)(T|t)", "</object");
|
||||
|
||||
ret = ret.replaceAll("<(A|a)(P|p)(P|p)(L|l)(E|e)(T|t)", "<applet");
|
||||
ret = ret.replaceAll("</(A|a)(P|p)(P|p)(L|l)(E|e)(T|t)", "</applet");
|
||||
|
||||
ret = ret.replaceAll("<(E|e)(M|m)(B|b)(E|e)(D|d)", "<embed");
|
||||
ret = ret.replaceAll("</(E|e)(M|m)(B|b)(E|e)(D|d)", "<embed");
|
||||
|
||||
ret = ret.replaceAll("<(F|f)(O|o)(R|r)(M|m)", "<form");
|
||||
ret = ret.replaceAll("</(F|f)(O|o)(R|r)(M|m)", "<form");
|
||||
|
||||
//ret = ret.replaceAll("<", "<");
|
||||
//ret = ret.replaceAll(">", ">");
|
||||
ret = ret.replaceAll("alert", "");
|
||||
ret = ret.replaceAll("iframe", "");
|
||||
|
||||
ret = ret.replaceAll("<", "<").replaceAll(">", ">");
|
||||
ret = ret.replaceAll("(", "\\(").replaceAll(")", "\\)");
|
||||
ret = ret.replaceAll("'", "'");
|
||||
ret = ret.replaceAll("eval\\((.*)\\)", "");
|
||||
ret = ret.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
|
||||
ret = ret.replaceAll("script", "");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -283,6 +283,7 @@ public class MjonMsgCampainDataController {
|
||||
model.addAttribute("msgResendAllFlag", searchVO.getMsgResendAllFlag());
|
||||
model.addAttribute("msgResendAllGroupId", searchVO.getMsgResendAllGroupId());
|
||||
model.addAttribute("msgResendAllAdvertiseYn", searchVO.getMsgResendAllAdvertiseYn());
|
||||
model.addAttribute("msgResendAllReplaceYn", searchVO.getMsgResendAllReplaceYn());
|
||||
|
||||
return "web/msgcampain/MsgDataView";
|
||||
}
|
||||
|
||||
@ -70,8 +70,15 @@ public class MjonMsgDataVO extends UserDefaultVO{
|
||||
private String msgResendAllFlag;
|
||||
private String msgResendAllGroupId;
|
||||
private String msgResendAllAdvertiseYn;
|
||||
private String msgResendAllReplaceYn;
|
||||
private String atchFiles;
|
||||
|
||||
public String getMsgResendAllReplaceYn() {
|
||||
return msgResendAllReplaceYn;
|
||||
}
|
||||
public void setMsgResendAllReplaceYn(String msgResendAllReplaceYn) {
|
||||
this.msgResendAllReplaceYn = msgResendAllReplaceYn;
|
||||
}
|
||||
public String getAtchFiles() {
|
||||
return atchFiles;
|
||||
}
|
||||
|
||||
@ -85,6 +85,8 @@ import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||
import itn.let.mjo.msgdata.service.PhoneVO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentService;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
||||
import itn.let.mjo.pay.service.MjonPayService;
|
||||
import itn.let.mjo.pay.service.MjonPayVO;
|
||||
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
||||
@ -176,6 +178,9 @@ public class MjonMsgDataController {
|
||||
@Resource(name = "mberGrdService")
|
||||
MberGrdService mberGrdService;
|
||||
|
||||
@Resource(name = "MjonMsgSentService")
|
||||
private MjonMsgSentService mjonMsgSentService;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
|
||||
|
||||
/**
|
||||
@ -402,6 +407,7 @@ public class MjonMsgDataController {
|
||||
model.addAttribute("msgResendAllFlag", searchVO.getMsgResendAllFlag());
|
||||
model.addAttribute("msgResendAllGroupId", searchVO.getMsgResendAllGroupId());
|
||||
model.addAttribute("msgResendAllAdvertiseYn", searchVO.getMsgResendAllAdvertiseYn());
|
||||
model.addAttribute("msgResendAllReplaceYn", searchVO.getMsgResendAllReplaceYn());
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
@ -3754,6 +3760,22 @@ public class MjonMsgDataController {
|
||||
}else {// 그외 단문
|
||||
mjonMsgVO.setMsgType("4");
|
||||
}
|
||||
|
||||
if(bytes < 1) {//단문, 장문의 경우 문자 내용이 없는 경우 발송 안되도록 처리
|
||||
|
||||
System.out.println("===================================fncSendMsg======================================");
|
||||
System.out.println("+++++++++++++++++++++++++++++++++++++++++++ 입력 문자 내용이 없습니다. ::: ");
|
||||
System.out.println("===================================fncSendMsg======================================");
|
||||
|
||||
modelAndView.addObject("message", "입력 문자 내용을 확인할 수 없습니다. 문자 내용을 입력해 주세요.");
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("resultSts", "0");
|
||||
modelAndView.addObject("resultBlockSts", "0");
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
}else { //최대 문자길이 초과시
|
||||
|
||||
modelAndView.addObject("message", "문자 치환 후 전송 문자 길이를 초과하였습니다.");
|
||||
@ -5964,4 +5986,64 @@ public class MjonMsgDataController {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 문자발송 리스트 화면 불러오기
|
||||
*
|
||||
* @param MjonMsgDataVO
|
||||
* @param
|
||||
* @param sessionVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value= {"/web/mjon/msgdata/selectMjMsgSentListAjax.do"})
|
||||
public String selectMjMsgSentListAjax(
|
||||
@ModelAttribute("searchVO") MjonMsgSentVO mjonMsgSentVO,
|
||||
ModelMap model) throws Exception {
|
||||
|
||||
//로그인 권한정보 불러오기
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
List<MjonMsgSentVO> mjMsgSentList = null;
|
||||
/** pageing */
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
|
||||
if(loginVO != null) {
|
||||
mjonMsgSentVO.setStateType("all");
|
||||
mjonMsgSentVO.setListType("groupList");
|
||||
mjonMsgSentVO.setUserId(userId);
|
||||
|
||||
// 검색 리스트 불러오기
|
||||
if(mjonMsgSentVO.getPageUnit() != 10) {
|
||||
mjonMsgSentVO.setPageUnit(mjonMsgSentVO.getPageUnit());
|
||||
}
|
||||
|
||||
//기본 내림차순 정렬
|
||||
if(mjonMsgSentVO.getSearchSortOrd().equals("")) {
|
||||
mjonMsgSentVO.setSearchSortOrd("desc");
|
||||
mjonMsgSentVO.setSearchSortCnd("regdate");
|
||||
}
|
||||
|
||||
paginationInfo.setCurrentPageNo(mjonMsgSentVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(mjonMsgSentVO.getPageUnit());
|
||||
paginationInfo.setPageSize(mjonMsgSentVO.getPageSize());
|
||||
|
||||
mjonMsgSentVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
mjonMsgSentVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
mjonMsgSentVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
//전체 발송 리스트 불러오기
|
||||
mjMsgSentList = mjonMsgSentService.selectAllMsgSentSimpleList(mjonMsgSentVO);
|
||||
|
||||
paginationInfo.setTotalRecordCount( mjMsgSentList.size()> 0 ? (Integer.parseInt((mjMsgSentList.get(0)).getTotMsgCnt())) : 0);
|
||||
}
|
||||
|
||||
model.addAttribute("mjMsgSentList", mjMsgSentList);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
model.addAttribute("totalRecordCount", paginationInfo.getTotalRecordCount());
|
||||
|
||||
return "web/msgdata/MsgSentListAjax";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -16,6 +16,9 @@ public interface MjonMsgSentService {
|
||||
//발송 관리 전체 발송 리스트 불러오기
|
||||
public List<MjonMsgSentVO> selectAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
|
||||
|
||||
//발송 관리 발송 성공,실패 건수 리스트 불러오기
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSucFailList(List<MjonMsgSentVO> resultAllResList, MjonMsgSentVO mjonMsgSentVO) throws Exception;
|
||||
|
||||
|
||||
@ -81,7 +81,21 @@ public class MjonMsgSentVO extends UserDefaultVO{
|
||||
|
||||
private String callFromComma;
|
||||
private String callToComma;
|
||||
|
||||
private String msgSentType;
|
||||
private String successCount;
|
||||
|
||||
public String getSuccessCount() {
|
||||
return successCount;
|
||||
}
|
||||
public void setSuccessCount(String successCount) {
|
||||
this.successCount = successCount;
|
||||
}
|
||||
public String getMsgSentType() {
|
||||
return msgSentType;
|
||||
}
|
||||
public void setMsgSentType(String msgSentType) {
|
||||
this.msgSentType = msgSentType;
|
||||
}
|
||||
public String getCallFromComma() {
|
||||
return callFromComma;
|
||||
}
|
||||
|
||||
@ -49,12 +49,20 @@ public class MjonMsgSentDAO extends EgovAbstractDAO {
|
||||
return result;
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<MjonMsgSentVO> selectAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
|
||||
return (List<MjonMsgSentVO>) list("MjonMsgSentDAO.selectAllMsgSentList",mjonMsgSentVO);
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
|
||||
return (List<MjonMsgSentVO>) list("MjonMsgSentDAO.selectAllMsgSentSimpleList",mjonMsgSentVO);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<MjonMsgSentVO> selectAllPrivateMsgSentList(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
|
||||
|
||||
@ -84,6 +84,15 @@ public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements
|
||||
return resultList;
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
List<MjonMsgSentVO> resultList = new ArrayList<MjonMsgSentVO>();
|
||||
|
||||
resultList = mjonMsgSentDAO.selectAllMsgSentSimpleList(mjonMsgSentVO);
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
//발송 관리 발송 성공,실패 건수 리스트 불러오기
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSucFailList(List<MjonMsgSentVO> resultAllResList, MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
|
||||
|
||||
@ -677,6 +677,13 @@ public class MainController {
|
||||
List<LetterVO> mainMsgTagList = letterService.selectMainMsgTagWebList(letterMsgVO);
|
||||
model.addAttribute("mainMsgTagList", mainMsgTagList);
|
||||
|
||||
{//상단 메인배너 롤링 이미지 불러오기
|
||||
|
||||
List<MainzoneVO> resultMainzoneList = egovPopupManageService.selectMainzoneListRolling();
|
||||
model.addAttribute("mainzoneList", resultMainzoneList);
|
||||
|
||||
}
|
||||
|
||||
return "web/main/mainPage";
|
||||
}
|
||||
|
||||
|
||||
@ -267,6 +267,7 @@
|
||||
, orderByCode AS orderByCode
|
||||
, RESULT AS msgResult
|
||||
, sendKind AS sendKind
|
||||
, MSG_KIND AS msgKind
|
||||
FROM
|
||||
( SELECT
|
||||
B.USER_ID
|
||||
@ -291,6 +292,7 @@
|
||||
, A.RSLT_CODE
|
||||
, A.RSLT_CODE2
|
||||
, B.SEND_KIND as sendKind
|
||||
, B.MSG_KIND
|
||||
, CASE
|
||||
WHEN B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT > 0
|
||||
@ -412,7 +414,7 @@
|
||||
]]>
|
||||
</isNotEmpty>
|
||||
GROUP BY MSG_GROUP_ID
|
||||
ORDER BY 1=1, MSG_GROUP_ID DESC
|
||||
ORDER BY 1=1
|
||||
<isNotEmpty property="searchSortCnd">
|
||||
<isEqual property="searchSortCnd" compareValue="curState">
|
||||
, curState $searchSortOrd$
|
||||
@ -428,6 +430,148 @@
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
</select>
|
||||
|
||||
<!-- 전체 발송결과 조회 (전송사별) => 주소록 조인 제거버전-->
|
||||
<select id="MjonMsgSentDAO.selectAllMsgSentSimpleList" parameterClass="mjonMsgSentVO" resultClass="mjonMsgSentVO">
|
||||
SELECT
|
||||
M2.totMsgCnt
|
||||
, M2.userId
|
||||
, M2.msgGroupId
|
||||
, M2.msgGroupCnt
|
||||
, M2.smsTxt
|
||||
, M2.subject
|
||||
, M2.regdate
|
||||
, M2.reqdate
|
||||
, M2.callFrom
|
||||
, M2.callFromComma
|
||||
, (
|
||||
SELECT FN_GETHYPHEN(CALL_TO) FROM MJ_MSG_DATA A
|
||||
WHERE A.MSG_GROUP_ID = M2.msgGroupId
|
||||
LIMIT 1
|
||||
) AS callToComma
|
||||
, (
|
||||
SELECT
|
||||
COUNT(0)
|
||||
FROM
|
||||
MJ_MSG_DATA A
|
||||
WHERE
|
||||
A.MSG_GROUP_ID = M2.msgGroupId
|
||||
AND (CASE
|
||||
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800')
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
|
||||
THEN 'S'
|
||||
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
|
||||
THEN 'S'
|
||||
ELSE 'F'
|
||||
END) = 'S'
|
||||
) AS successCount
|
||||
, M2.addrNm
|
||||
, M2.totPrice
|
||||
, M2.eachPrice
|
||||
, M2.delFlag
|
||||
, M2.msgType
|
||||
, M2.fileCnt
|
||||
, M2.agentCode
|
||||
, M2.reserveCYn
|
||||
, M2.cancelDate
|
||||
, M2.msgId
|
||||
, M2.orderByCode
|
||||
, M2.sendKind
|
||||
, M2.msgKind
|
||||
FROM (
|
||||
SELECT
|
||||
COUNT(USER_ID) OVER() AS totMsgCnt
|
||||
, USER_ID AS userId
|
||||
, MSG_GROUP_ID AS msgGroupId
|
||||
, MSG_GROUP_CNT AS msgGroupCnt
|
||||
, SMS_TXT AS smsTxt
|
||||
, SUBJECT AS subject
|
||||
, DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regdate
|
||||
, DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqdate
|
||||
, CALL_FROM AS callFrom
|
||||
, FN_GETHYPHEN(CALL_FROM) AS callFromComma
|
||||
, '' AS addrNm
|
||||
, TOT_PRICE AS totPrice
|
||||
, EACH_PRICE AS eachPrice
|
||||
, DEL_FLAG AS delFlag
|
||||
, MSG_TYPE AS msgType
|
||||
, FILE_CNT AS fileCnt
|
||||
, AGENT_CODE AS agentCode
|
||||
, RESERVE_C_YN AS reserveCYn
|
||||
, CANCELDATE AS cancelDate
|
||||
, '' AS msgId
|
||||
, orderByCode AS orderByCode
|
||||
, sendKind AS sendKind
|
||||
, MSG_KIND AS msgKind
|
||||
FROM
|
||||
( SELECT
|
||||
B.USER_ID
|
||||
, B.MSG_GROUP_ID
|
||||
, B.MSG_GROUP_CNT
|
||||
, B.SMS_TXT
|
||||
, B.SUBJECT
|
||||
, B.REGDATE
|
||||
, B.REQ_DATE
|
||||
, B.CALL_FROM
|
||||
, B.TOT_PRICE
|
||||
, B.EACH_PRICE
|
||||
, B.DEL_FLAG
|
||||
, B.MSG_TYPE
|
||||
, B.FILE_CNT
|
||||
, B.AGENT_CODE
|
||||
, B.RESERVE_C_YN
|
||||
, B.CANCELDATE
|
||||
, B.SEND_KIND as sendKind
|
||||
, B.MSG_KIND
|
||||
, CASE
|
||||
WHEN B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT > 0
|
||||
THEN '3'
|
||||
WHEN B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT = 0
|
||||
THEN '2'
|
||||
ELSE '1'
|
||||
END orderByCode
|
||||
FROM MJ_MSG_GROUP_DATA B
|
||||
WHERE
|
||||
B.USER_ID = #userId#
|
||||
AND B.DEL_FLAG ='N'
|
||||
AND B.RESERVE_C_YN = 'N'
|
||||
AND B.MSG_TYPE IN ('4','6')
|
||||
<![CDATA[
|
||||
AND B.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE)
|
||||
]]>
|
||||
<isNotEmpty property="msgSentType">
|
||||
<isEqual property="msgSentType" compareValue="01" >
|
||||
AND B.MSG_KIND != 'C'
|
||||
</isEqual>
|
||||
<isEqual property="msgSentType" compareValue="02" >
|
||||
AND B.MSG_KIND = 'C'
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
)M
|
||||
WHERE 1=1
|
||||
ORDER BY 1=1
|
||||
<isNotEmpty property="searchSortCnd">
|
||||
,$searchSortCnd$
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSortOrd">
|
||||
$searchSortOrd$
|
||||
</isNotEmpty>
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
) M2
|
||||
</select>
|
||||
|
||||
<!-- 전체 발송결과 조회 (개인별)-->
|
||||
<select id="MjonMsgSentDAO.selectAllPrivateMsgSentList" parameterClass="mjonMsgSentVO" resultClass="mjonMsgSentVO">
|
||||
|
||||
@ -619,8 +763,6 @@
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- 건수별 상세 리스트 조회-->
|
||||
<select id="MjonMsgSentDAO.selectAllMsgSentDetailList" parameterClass="mjonMsgSentVO" resultClass="mjonMsgSentVO">
|
||||
|
||||
|
||||
@ -40,6 +40,12 @@ tbody tr td.sms_detail p {overflow:hidden;text-overflow:ellipsis;white-space:now
|
||||
tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:155px;top:1px;width:calc(100% + 230px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
||||
tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
||||
tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
|
||||
|
||||
|
||||
tbody tr td.sms_detail .kakao_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:60px;top:1px;width:calc(100% + 230px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
||||
tbody tr td.sms_detail .kakao_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
||||
tbody tr td.sms_detail:hover .kakao_detail_hover {display:-webkit-box;}
|
||||
|
||||
</style>
|
||||
|
||||
<script src="/publish/js/jquery-3.5.0.js"></script>
|
||||
@ -4566,9 +4572,13 @@ function kakaoATDelayCancel(msgGroupId){
|
||||
<c:otherwise>
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoResultList.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoResultList.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.msgGroupCnt}" type="number" /></td>
|
||||
<td><fmt:formatNumber value="${kakaoResultList.successCount}" type="number" /></td>
|
||||
@ -4704,6 +4714,9 @@ function kakaoATDelayCancel(msgGroupId){
|
||||
<c:otherwise>
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoReserveList.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoReserveList.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
@ -4833,6 +4846,9 @@ function kakaoATDelayCancel(msgGroupId){
|
||||
<c:otherwise>
|
||||
<div class="ellipsis_line">
|
||||
<c:out value="${kakaoDelayInfo.smsTxt}"/>
|
||||
<div class="kakao_detail_hover">
|
||||
<c:out value="${kakaoDelayInfo.smsTxt}"/>
|
||||
</div>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
@ -1147,9 +1147,6 @@ function actionLogin() {
|
||||
<c:when test="${fn:contains(pageContext.request.requestURL , 'web/main/mainPage.do')}">
|
||||
<div class="quickMenu main">
|
||||
</c:when>
|
||||
<c:when test="${fn:contains(pageContext.request.requestURL , 'web/main/mainPageTest.do')}">
|
||||
<div class="quickMenu main">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div class="quickMenu quickSub">
|
||||
</c:otherwise>
|
||||
|
||||
@ -1054,6 +1054,7 @@ function checkNumber(event) {
|
||||
var totCnt = divideCnt + "" + event.key;
|
||||
if(Number(totCnt) > 5000){
|
||||
alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
|
||||
$('#frmDivideCnt').val("20");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -1266,21 +1266,54 @@ function fn_click_banner_add_stat(bannerMenuCode){
|
||||
<div class="visual">
|
||||
<div class="swiper-container visual_swiper">
|
||||
<div class="swiper-wrapper" id="mainSwiperWrapperArea">
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_06_20230802.jpg" alt="문자온, 카카오 '알림톡' 서비스 오픈! 문자온 알림톡, 대한민국 최저가 선언! 조건없이 무조건 6.9원! 카카오톡 채널아이디 추가를 하지 않은 이용자에게도 카카오톡 메시지 발송이 가능한 서비스! 알림톡 바로가기 알림톡 도착 kakao 문자온에서 알림톡이 도착하였습니다! 기업전용/1,000자 이하 텍스트 & 이미지/문자 대비 65% 저렴" usemap="#allimtalk-map"></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img id="mainSlideImg_1001" src="/publish/images/main/f_visual_01_20231006.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 Halloween 즐겁고 유쾌한 할로윈데이 보내세요 가을엔 독서 같이 책읽으실래요?" usemap="#image-map" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img id="mainSlideImg_1002" src="/publish/images/main/f_visual_03_20231006.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 가을은 캠핑의 계절! 낭만캠핑 캠핑하기 좋은 계절, 가을이 돌아왔습니다. 즐거운 캠핑을 떠나고 싶으신가요? 지금 이벤트에 참여하시면, 캠핑 지원금을 드립니다. 지금 바로 참여하세요! 즐거운 캠핑 지원금 문자온에서 확인해보세요! HALLOWEEN 할로윈이벤트 이벤트에 참여하시고 무시무시한 혜택을 받아보세요 이벤트 기간 2099.10.01 10.31 이벤트 대상 10,000원 이상 구매한 모든 고객 event 01 5만원 이상 구매시 5,000원할인쿠폰 증정! event02 이벤트 기간동안 무료배송! event03 어플 설치 시 10% 추가 할인 쿠폰 증정! HALLOWEEN 할로윈 코스튬 할로윈 분위기에 맞게 코스튬을 하고 와요! 할로윈 CAKE 할로윈을 맞이하여 호박케이크를 만들어봐요! 문자온 영어학원 T.031.123.4567" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?" /></div>
|
||||
</div>
|
||||
<c:choose>
|
||||
<c:when test="${not empty mainzoneList}">
|
||||
<c:forEach var="mainzone" items="${mainzoneList}" varStatus="status">
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg">
|
||||
<c:choose>
|
||||
<c:when test="${fn:contains(mainzone.content,'알림톡')}">
|
||||
<img src="/cmm/fms/getImage.do?atchFileId=<c:out value='${mainzone.mainzoneImageFile}'/>" alt="<c:out value='${mainzone.content}'/>" usemap="#allimtalk-map">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<img src="/cmm/fms/getImage.do?atchFileId=<c:out value='${mainzone.mainzoneImageFile}'/>" alt="<c:out value='${mainzone.content}'/>">
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</div>
|
||||
</div>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<%-- 메인 배너 이미지 등록된 건이 없는 경우 기본적으로 나오는 이미지 3개 --%>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_06_20230802.jpg" alt="문자온, 카카오 '알림톡' 서비스 오픈! 문자온 알림톡, 대한민국 최저가 선언! 조건없이 무조건 6.9원! 카카오톡 채널아이디 추가를 하지 않은 이용자에게도 카카오톡 메시지 발송이 가능한 서비스! 알림톡 바로가기 알림톡 도착 kakao 문자온에서 알림톡이 도착하였습니다! 기업전용/1,000자 이하 텍스트 & 이미지/문자 대비 65% 저렴" usemap="#allimtalk-map"></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?" /></div>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<%--
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_06_20230802.jpg" alt="문자온, 카카오 '알림톡' 서비스 오픈! 문자온 알림톡, 대한민국 최저가 선언! 조건없이 무조건 6.9원! 카카오톡 채널아이디 추가를 하지 않은 이용자에게도 카카오톡 메시지 발송이 가능한 서비스! 알림톡 바로가기 알림톡 도착 kakao 문자온에서 알림톡이 도착하였습니다! 기업전용/1,000자 이하 텍스트 & 이미지/문자 대비 65% 저렴" usemap="#allimtalk-map"></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img id="mainSlideImg_1001" src="/publish/images/main/f_visual_01_20231006.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 Halloween 즐겁고 유쾌한 할로윈데이 보내세요 가을엔 독서 같이 책읽으실래요?" usemap="#image-map" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img id="mainSlideImg_1002" src="/publish/images/main/f_visual_03_20231006.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 가을은 캠핑의 계절! 낭만캠핑 캠핑하기 좋은 계절, 가을이 돌아왔습니다. 즐거운 캠핑을 떠나고 싶으신가요? 지금 이벤트에 참여하시면, 캠핑 지원금을 드립니다. 지금 바로 참여하세요! 즐거운 캠핑 지원금 문자온에서 확인해보세요! HALLOWEEN 할로윈이벤트 이벤트에 참여하시고 무시무시한 혜택을 받아보세요 이벤트 기간 2099.10.01 10.31 이벤트 대상 10,000원 이상 구매한 모든 고객 event 01 5만원 이상 구매시 5,000원할인쿠폰 증정! event02 이벤트 기간동안 무료배송! event03 어플 설치 시 10% 추가 할인 쿠폰 증정! HALLOWEEN 할로윈 코스튬 할로윈 분위기에 맞게 코스튬을 하고 와요! 할로윈 CAKE 할로윈을 맞이하여 호박케이크를 만들어봐요! 문자온 영어학원 T.031.123.4567" /></div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="slideImg"><img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?" /></div>
|
||||
</div>
|
||||
--%>
|
||||
|
||||
<map name="allimtalk-map">
|
||||
<area href="/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do" coords="299,286,514,338" shape="rect">
|
||||
</map>
|
||||
|
||||
@ -3173,6 +3173,7 @@ function checkNumber(event) {
|
||||
if(Number(totCnt) > 5000){
|
||||
|
||||
alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
|
||||
$('#divideCnt').val("20");
|
||||
return false;
|
||||
|
||||
}
|
||||
@ -3180,6 +3181,17 @@ function checkNumber(event) {
|
||||
return true;
|
||||
}
|
||||
|
||||
//문자 발송목록
|
||||
function getMjMsgSentListAll(pageNo) {
|
||||
document.sentListForm.pageIndex.value = pageNo;
|
||||
document.sentListForm.msgSentType.value = "02"; // 01:문자전송, 02:선거문자
|
||||
|
||||
var sendData= $(document.sentListForm).serializeArray();
|
||||
$("#mjMsgSentListAllLoad").load("/web/mjon/msgdata/selectMjMsgSentListAjax.do", sendData ,function(response, status, xhr){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
<div class="loading_layer">
|
||||
<div class="loading_container">
|
||||
@ -3188,6 +3200,48 @@ function checkNumber(event) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="sentListForm" name="sentListForm" method="post">
|
||||
<input type="hidden" name="pageType" value=""/>
|
||||
<input type="hidden" name="pageIndex" value=""/>
|
||||
<input type="hidden" name="msgSentType" value=""/>
|
||||
<input type="hidden" name="searchSortCnd" value="" />
|
||||
<input type="hidden" name="searchSortOrd" value="" />
|
||||
</form>
|
||||
|
||||
<!-- 2023 10 16 재전송 : 상세내용 팝업 -->
|
||||
<div class="tooltip-wrap" style="z-index:110;">
|
||||
<div class="popup-com adr_layer rev_popup01" tabindex="0" data-tooltip-con="rev_popup01"
|
||||
data-focus="rev_popup01" data-focus-prev="rev_popup01-close" style="width: 440px;">
|
||||
<div class="popup_heading">
|
||||
<p>문자내용</p>
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close"><img
|
||||
src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
</div>
|
||||
<div class="layer_in" id="msgSentDetailPopLoad" style="padding-bottom: 0px;">
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="justify-content: center; margin-bottom: 30px;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 2023 10 16 재전송 : 상세내용 팝업 -->
|
||||
|
||||
<!-- 2023 10 16 재전송 팝업 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup-com import_layer popup05" tabindex="0" data-tooltip-con="popup05" data-focus="popup05" data-focus-prev="popup05-close" style="width: 900px;">
|
||||
<div class="popup_heading">
|
||||
<p><span>전송내역</p>
|
||||
<button type="button" class="tooltip-close" data-focus="popup05-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
</div>
|
||||
<div class="layer_in" id="mjMsgSentListAllLoad" style="padding-bottom: 0px; min-height:428px;">
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="margin-bottom: 30px;">
|
||||
<button type="button" class="tooltip-close" data-focus="popup05-close" data-focus-next="popup05">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 2023 10 16 재전송 팝업 -->
|
||||
|
||||
<!-- 후보자등록 팝업 data-tooltip:candidate_popup01 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup-com candidate_layer candidate_popup01" tabindex="0" data-tooltip-con="candidate_popup01" data-focus="candidate_popup01" data-focus-prev="candidate_popup01-close" style="width: 620px;">
|
||||
@ -4024,6 +4078,9 @@ function checkNumber(event) {
|
||||
<div class="btn_popup_wrap">
|
||||
<button type="button" data-tooltip="popup03" class="btnType btnType7 tab2">자주 보내는 번호</button>
|
||||
</div>
|
||||
<div class="btn_popup_wrap">
|
||||
<button type="button" data-tooltip="popup05" class="btnType btnType7 tab2" onclick="getMjMsgSentListAll('1');">재전송</button>
|
||||
</div>
|
||||
<div class="btn_popup_wrap check_validity_wrap">
|
||||
<button type="button" class="btnType btnType7 check_validity">오류 검사 <i class="qmMark"></i></button>
|
||||
<div class="error_hover_cont send_hover_cont">
|
||||
|
||||
@ -23,6 +23,7 @@ var popCustomScrT=0; // 맞춤제작 요청 JSPark => 2023.02.21 추가
|
||||
var msgResendAllFlag = "${msgResendAllFlag}";
|
||||
var msgResendAllGroupId = "${msgResendAllGroupId}";
|
||||
var msgResendAllAdvertiseYn = "${msgResendAllAdvertiseYn}";
|
||||
var msgResendAllReplaceYn = "${msgResendAllReplaceYn}";
|
||||
|
||||
$(document).ready(function(){
|
||||
//문자 발송 화면 폼 불러오기
|
||||
@ -74,7 +75,7 @@ function getMjMsgGroupInfoByResend() {
|
||||
// 발신번호
|
||||
var reCallFrom = $.trim(removeDash($("#callFromList option:selected").val()));
|
||||
if ($.trim(removeDash(msgData.callFrom)) != reCallFrom) {
|
||||
alert("선택된 발신번호가 이전에 발송한 발신번호가 아닙니다.\n발신번호를 확인해주세요.")
|
||||
alert("발신번호가 이전에 발송한 번호가 아닙니다.\n발신번호를 확인해주세요.")
|
||||
}
|
||||
|
||||
var smsTxt = msgData.smsTxt;
|
||||
@ -133,10 +134,10 @@ function getMjMsgGroupInfoByResend() {
|
||||
myMsgImageControl(imgSrc, "edit_n", "Template", imgId);
|
||||
}
|
||||
|
||||
fnByteString(smsTxt);
|
||||
fnByteString($('#smsTxtArea').val());
|
||||
}
|
||||
else {
|
||||
fnByteString(smsTxt);
|
||||
fnByteString($('#smsTxtArea').val());
|
||||
}
|
||||
|
||||
// 문자전송 상단으로 이동
|
||||
@ -196,6 +197,11 @@ function getMjMsgListByResend() {
|
||||
});
|
||||
}
|
||||
|
||||
//문자발송 URL Move
|
||||
function goMsgUrlMove() {
|
||||
document.location.href = "/web/mjon/msgcampain/selectMsgDataView.do";
|
||||
}
|
||||
|
||||
function listMsgDataView(){
|
||||
|
||||
var sendData = $(document.searchForm).serializeArray() ;
|
||||
@ -223,8 +229,10 @@ function listMsgDataView(){
|
||||
|
||||
// 문자 재전송 New
|
||||
if (msgResendAllFlag == "Y") {
|
||||
// 문자 그룹정보 => 재전송용
|
||||
getMjMsgGroupInfoByResend();
|
||||
if (msgResendAllReplaceYn != "Y") {
|
||||
// 문자 그룹정보 => 재전송용
|
||||
getMjMsgGroupInfoByResend();
|
||||
}
|
||||
|
||||
// 문자 상세정보 => 재전송용
|
||||
getMjMsgListByResend();
|
||||
@ -1456,7 +1464,8 @@ function fn_sendMsgData(){
|
||||
}else if("statusFail" == returnData.result){
|
||||
|
||||
alert(returnData.message);
|
||||
location.reload();
|
||||
//문자발송 URL Move
|
||||
goMsgUrlMove();
|
||||
return false;
|
||||
|
||||
}else{
|
||||
@ -1705,7 +1714,8 @@ function sendMsgAjax(paramSmsCnt, paramBlockCnt){
|
||||
}else if("statusFail" == returnData.result){
|
||||
|
||||
alert(returnData.message);
|
||||
location.reload();
|
||||
//문자발송 URL Move
|
||||
goMsgUrlMove();
|
||||
return false;
|
||||
|
||||
}else{
|
||||
@ -1877,7 +1887,8 @@ function fnMyMsgSearchListOrd(){
|
||||
|
||||
function msgSuccessClose(obj){
|
||||
$(obj).closest('.pop_msg_success').attr('style','');
|
||||
location.reload(true);
|
||||
//문자발송 URL Move
|
||||
goMsgUrlMove();
|
||||
$('html').scrollTop(0);
|
||||
}
|
||||
|
||||
|
||||
@ -2817,6 +2817,7 @@ function checkNumber(event) {
|
||||
if(Number(totCnt) > 5000){
|
||||
|
||||
alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
|
||||
$('#divideCnt').val("20");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
@ -3181,6 +3181,7 @@ function checkNumber(event) {
|
||||
if(Number(totCnt) > 5000){
|
||||
|
||||
alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
|
||||
$('#divideCnt').val("20");
|
||||
return false;
|
||||
|
||||
}
|
||||
@ -3188,6 +3189,17 @@ function checkNumber(event) {
|
||||
return true;
|
||||
}
|
||||
|
||||
//문자 발송목록
|
||||
function getMjMsgSentListAll(pageNo) {
|
||||
document.sentListForm.pageIndex.value = pageNo;
|
||||
document.sentListForm.msgSentType.value = "01"; // 01:문자전송, 02:선거문자
|
||||
|
||||
var sendData= $(document.sentListForm).serializeArray();
|
||||
$("#mjMsgSentListAllLoad").load("/web/mjon/msgdata/selectMjMsgSentListAjax.do", sendData ,function(response, status, xhr){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<div class="loading_layer">
|
||||
@ -3197,6 +3209,14 @@ function checkNumber(event) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="sentListForm" name="sentListForm" method="post">
|
||||
<input type="hidden" name="pageType" value=""/>
|
||||
<input type="hidden" name="pageIndex" value=""/>
|
||||
<input type="hidden" name="msgSentType" value=""/>
|
||||
<input type="hidden" name="searchSortCnd" value="" />
|
||||
<input type="hidden" name="searchSortOrd" value="" />
|
||||
</form>
|
||||
|
||||
<!-- 2023 10 16 재전송 : 상세내용 팝업 -->
|
||||
<div class="tooltip-wrap" style="z-index:110;">
|
||||
<div class="popup-com adr_layer rev_popup01" tabindex="0" data-tooltip-con="rev_popup01"
|
||||
@ -3206,33 +3226,10 @@ function checkNumber(event) {
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close"><img
|
||||
src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
</div>
|
||||
<div class="layer_in">
|
||||
<div class="rev_pop_in">
|
||||
<div class="rev_pop_middle clearfix">
|
||||
<span>발송일시 : 2021-05-28 16:52:30</span>
|
||||
<span class="msg_com msg_photo">MMS</span>
|
||||
<!-- 장문, 단문 일때
|
||||
<span class="msg_com msg_long">LMS</span>
|
||||
<span class="msg_com msg_short">SMS</span>-->
|
||||
</div>
|
||||
<div class="rev_pop_txt">
|
||||
<ul>
|
||||
<li><img src="/publish/images/content/thumb1.jpg" alt="발송된 그림문자 미리보기"></li>
|
||||
<li><img src="/publish/images/content/thumb2.jpg" alt="발송된 그림문자 미리보기"></li>
|
||||
<li><img src="/publish/images/content/thumb3.jpg" alt="발송된 그림문자 미리보기"></li>
|
||||
</ul>
|
||||
<div>
|
||||
<p class="deny_receipt">(광고) 무료거부 080-888-8282</p>
|
||||
<p class="rev_cont">안녕하세요. 문자온미용실 입니다.<br>
|
||||
여름 맞이 이벤트 입니다.<br>
|
||||
7월부터 8월까지 모든 염색 10만원(시세이도 및 탈색은 별도)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="justify-content: center;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
<div class="layer_in" id="msgSentDetailPopLoad" style="padding-bottom: 0px;">
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="justify-content: center; margin-bottom: 30px;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -3240,99 +3237,19 @@ function checkNumber(event) {
|
||||
|
||||
<!-- 2023 10 16 재전송 팝업 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup-com import_layer popup05" tabindex="0" data-tooltip-con="popup05" data-focus="popup05" data-focus-prev="popup05-close">
|
||||
<div class="popup-com import_layer popup05" tabindex="0" data-tooltip-con="popup05" data-focus="popup05" data-focus-prev="popup05-close" style="width: 900px;">
|
||||
<div class="popup_heading">
|
||||
<p><span>전송내역</p>
|
||||
<button type="button" class="tooltip-close" data-focus="popup05-close" id="btnLatestAddPhoneClose"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
<button type="button" class="tooltip-close" data-focus="popup05-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
</div>
|
||||
<div class="layer_in">
|
||||
<!-- 전송내역 불러오기 -->
|
||||
<div class="tb_wrap" style="min-height:400px;">
|
||||
<table class="tType4">
|
||||
<colgroup>
|
||||
<col style="">
|
||||
<col style="">
|
||||
<col style="">
|
||||
<col style="">
|
||||
<col style="">
|
||||
<col style="">
|
||||
<col style="">
|
||||
<col style="">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>발송일시
|
||||
<div class="sort_wrap"><button type="button"><img src="/publish/images/sortUp.png" alt="오름차순으로 분류"></button><button type="button"><img src="/publish/images/sortDown.png" alt="내림차순으로 분류"></button></div>
|
||||
</th>
|
||||
<th>형태
|
||||
<div class="sort_wrap"><button type="button"><img src="/publish/images/sortUp.png" alt="오름차순으로 분류"></button><button type="button"><img src="/publish/images/sortDown.png" alt="내림차순으로 분류"></button></div>
|
||||
</th>
|
||||
<th>발송방식
|
||||
<div class="sort_wrap"><button type="button"><img src="/publish/images/sortUp.png" alt="오름차순으로 분류"></button><button type="button"><img src="/publish/images/sortDown.png" alt="내림차순으로 분류"></button></div>
|
||||
</th>
|
||||
<th>내용</th>
|
||||
<th>받는사람
|
||||
<div class="sort_wrap"><button type="button"><img src="/publish/images/sortUp.png" alt="오름차순으로 분류"></button><button type="button"><img src="/publish/images/sortDown.png" alt="내림차순으로 분류"></button></div>
|
||||
</th>
|
||||
<th>발신번호
|
||||
<div class="sort_wrap"><button type="button"><img src="/publish/images/sortUp.png" alt="오름차순으로 분류"></button><button type="button"><img src="/publish/images/sortDown.png" alt="내림차순으로 분류"></button></div>
|
||||
</th>
|
||||
<th>발송건수
|
||||
<div class="sort_wrap"><button type="button"><img src="/publish/images/sortUp.png" alt="오름차순으로 분류"></button><button type="button"><img src="/publish/images/sortDown.png" alt="내림차순으로 분류"></button></div>
|
||||
</th>
|
||||
<th>재전송 선택 </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>2023-06-10 17:50</td>
|
||||
<td>그림</td>
|
||||
<td>WEB</td>
|
||||
<td><button class="btnType btnType20" data-tooltip="rev_popup01" type="button">상세보기</button></td>
|
||||
<td>010-1547-5895 외 1명</td>
|
||||
<td>010-5897-7895</td>
|
||||
<td>8</td>
|
||||
<td><button class="btnType btnType24" type="button">재전송</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2023-06-10 17:50</td>
|
||||
<td>그림</td>
|
||||
<td>WEB</td>
|
||||
<td><button class="btnType btnType20" data-tooltip="rev_popup01" type="button">상세보기</button></td>
|
||||
<td>010-1547-5895 외 1명</td>
|
||||
<td>010-5897-7895</td>
|
||||
<td>8</td>
|
||||
<td><button class="btnType btnType24" type="button">재전송</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--// 전송내역 불러오기 -->
|
||||
<!-- pagination -->
|
||||
<ul class="pagination">
|
||||
<li class="page_first"><button><img src="/publish/images/content/page_first.png" alt="첫페이지"></button></li>
|
||||
<li class="page_prev"><button><img src="/publish/images/content/page_prev.png" alt=""></button></li>
|
||||
<li class="on"><button>1</button></li>
|
||||
<li><button>2</button></li>
|
||||
<li><button>3</button></li>
|
||||
<li><button>4</button></li>
|
||||
<li><button>5</button></li>
|
||||
<li><button>6</button></li>
|
||||
<li><button>7</button></li>
|
||||
<li><button>8</button></li>
|
||||
<li><button>9</button></li>
|
||||
<li><button>10</button></li>
|
||||
<li class="page_next"><button><img src="/publish/images/content/page_next.png" alt=""></button></li>
|
||||
<li class="page_last"><button><img src="/publish/images/content/page_last.png" alt="마지막페이지"></button></li>
|
||||
</ul><!-- pagination -->
|
||||
<div class="popup_btn_wrap2">
|
||||
<button type="button" class="tooltip-close" data-focus="popup05-close" data-focus-next="popup05">닫기</button>
|
||||
</div>
|
||||
<div class="layer_in" id="mjMsgSentListAllLoad" style="padding-bottom: 0px; min-height:428px;">
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="margin-bottom: 30px;">
|
||||
<button type="button" class="tooltip-close" data-focus="popup05-close" data-focus-next="popup05">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 2023 10 16 재전송 팝업 -->
|
||||
|
||||
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup-com history_layer popup03" tabindex="0" data-tooltip-con="popup03" data-focus="popup03" data-focus-prev="popup03-close">
|
||||
@ -3962,7 +3879,7 @@ function checkNumber(event) {
|
||||
<button type="button" data-tooltip="popup03" class="btnType btnType7 tab2">자주 보내는 번호</button>
|
||||
</div>
|
||||
<div class="btn_popup_wrap">
|
||||
<button type="button" data-tooltip="popup05" class="btnType btnType7 tab2">재전송</button>
|
||||
<button type="button" data-tooltip="popup05" class="btnType btnType7 tab2" onclick="getMjMsgSentListAll('1');">재전송</button>
|
||||
</div>
|
||||
<div class="btn_popup_wrap check_validity_wrap">
|
||||
<button type="button" class="btnType btnType7 check_validity">오류 검사 <i class="qmMark"></i></button>
|
||||
|
||||
@ -23,6 +23,7 @@ var popCustomScrT=0; // 맞춤제작 요청 JSPark => 2023.02.21 추가
|
||||
var msgResendAllFlag = "${msgResendAllFlag}";
|
||||
var msgResendAllGroupId = "${msgResendAllGroupId}";
|
||||
var msgResendAllAdvertiseYn = "${msgResendAllAdvertiseYn}";
|
||||
var msgResendAllReplaceYn = "${msgResendAllReplaceYn}";
|
||||
|
||||
$(document).ready(function(){
|
||||
var tsMoreSampleYn = "${moreSampleYn}";
|
||||
@ -100,7 +101,7 @@ function getMjMsgGroupInfoByResend() {
|
||||
// 발신번호
|
||||
var reCallFrom = $.trim(removeDash($("#callFromList option:selected").val()));
|
||||
if ($.trim(removeDash(msgData.callFrom)) != reCallFrom) {
|
||||
alert("선택된 발신번호가 이전에 발송한 발신번호가 아닙니다.\n발신번호를 확인해주세요.")
|
||||
alert("발신번호가 이전에 발송한 번호가 아닙니다.\n발신번호를 확인해주세요.")
|
||||
}
|
||||
|
||||
var smsTxt = msgData.smsTxt;
|
||||
@ -164,10 +165,10 @@ function getMjMsgGroupInfoByResend() {
|
||||
myMsgImageControl(imgSrc, "edit_n", "Template", imgId);
|
||||
}
|
||||
|
||||
fnByteString(smsTxt);
|
||||
fnByteString($('#smsTxtArea').val());
|
||||
}
|
||||
else {
|
||||
fnByteString(smsTxt);
|
||||
fnByteString($('#smsTxtArea').val());
|
||||
}
|
||||
|
||||
// 문자전송 상단으로 이동
|
||||
@ -227,6 +228,10 @@ function getMjMsgListByResend() {
|
||||
});
|
||||
}
|
||||
|
||||
// 문자발송 URL Move
|
||||
function goMsgUrlMove() {
|
||||
document.location.href = "/web/mjon/msgdata/selectMsgDataView.do";
|
||||
}
|
||||
|
||||
function listMsgDataView(){
|
||||
|
||||
@ -418,8 +423,10 @@ function listMsgDataView(){
|
||||
|
||||
// 문자 재전송 New
|
||||
if (msgResendAllFlag == "Y") {
|
||||
// 문자 그룹정보 => 재전송용
|
||||
getMjMsgGroupInfoByResend();
|
||||
if (msgResendAllReplaceYn != "Y") {
|
||||
// 문자 그룹정보 => 재전송용
|
||||
getMjMsgGroupInfoByResend();
|
||||
}
|
||||
|
||||
// 문자 상세정보 => 재전송용
|
||||
getMjMsgListByResend();
|
||||
@ -1665,7 +1672,8 @@ function fn_sendMsgData(){
|
||||
}else if("statusFail" == returnData.result){
|
||||
|
||||
alert(returnData.message);
|
||||
location.reload();
|
||||
//문자발송 URL Move
|
||||
goMsgUrlMove();
|
||||
return false;
|
||||
|
||||
}else{
|
||||
@ -1914,7 +1922,8 @@ function sendMsgAjax(paramSmsCnt, paramBlockCnt){
|
||||
}else if("statusFail" == returnData.result){
|
||||
|
||||
alert(returnData.message);
|
||||
location.reload();
|
||||
//문자발송 URL Move
|
||||
goMsgUrlMove();
|
||||
return false;
|
||||
|
||||
}else{
|
||||
@ -2074,7 +2083,8 @@ function fnMyMsgSearchListOrd(){
|
||||
|
||||
function msgSuccessClose(obj){
|
||||
$(obj).closest('.pop_msg_success').attr('style','');
|
||||
location.reload(true);
|
||||
//문자발송 URL Move
|
||||
goMsgUrlMove();
|
||||
$('html').scrollTop(0);
|
||||
}
|
||||
|
||||
|
||||
278
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgSentListAjax.jsp
Normal file
278
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgSentListAjax.jsp
Normal file
@ -0,0 +1,278 @@
|
||||
<%--
|
||||
Class Name : SendNumberList.jsp
|
||||
Description : 발신번호 리스트 조회 페이지
|
||||
Modification Information
|
||||
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2021.03.31 신명섭 최초 생성
|
||||
|
||||
Copyright (C) 2009 by ITN All right reserved.
|
||||
--%>
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
||||
|
||||
<script src="/publish/js/content.js"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
/* 목록 정렬 항목 아이콘 표시 */
|
||||
var searchSortCnd = "${searchVO.searchSortCnd}";
|
||||
var searchSortOrd = "${searchVO.searchSortOrd}";
|
||||
if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) {
|
||||
var $sort_div = $("#sort_"+ searchSortCnd);
|
||||
var sortClass = 'sortBtn' ;
|
||||
if (searchSortOrd == "desc") sortClass = "sortBtnDesc";
|
||||
$sort_div.replaceClass('sortBtn' , sortClass) ;
|
||||
$sort_div.attr("sortOrd", searchSortOrd);
|
||||
}
|
||||
|
||||
// 정렬 항목 이벤트
|
||||
$(".sort").click(function(e) {
|
||||
listSortOrd(this);
|
||||
});
|
||||
|
||||
//목록 정렬 항목 클릭
|
||||
function listSortOrd(obj){
|
||||
var sortOrd = $(obj).attr("sortOrd");
|
||||
var sortCnd = $(obj).attr("id");
|
||||
|
||||
sortCnd = sortCnd.substring(5); // 구분자 제거
|
||||
if (sortOrd == "desc") {
|
||||
sortOrd = "asc";
|
||||
}
|
||||
else {
|
||||
sortOrd = "desc";
|
||||
}
|
||||
|
||||
document.sentListForm.searchSortCnd.value = sortCnd;
|
||||
document.sentListForm.searchSortOrd.value = sortOrd;
|
||||
getMjMsgSentListAll('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//문자 재전송
|
||||
function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt) {
|
||||
var form = document.reSendAllForm;
|
||||
form.msgResendAllFlag.value = "Y";
|
||||
form.msgResendAllGroupId.value = msgGroupId;
|
||||
|
||||
if (replaceCnt > 0) {
|
||||
if (confirm("특정문구 일괄변환 문자(치환문자)의 경우 문자내용은 재전송할 수 없고 받는 사람 목록만 불러올 수 있습니다.\n받는사람 목록을 불러올까요?")) {
|
||||
// 광고문자
|
||||
form.msgResendAllReplaceYn.value = "Y";
|
||||
if (electionCnt > 0) {
|
||||
form.action="/web/mjon/msgcampain/selectMsgDataView.do";
|
||||
}
|
||||
else {
|
||||
if (advertisementCnt > 0) {
|
||||
// 광고문자
|
||||
form.msgResendAllAdvertiseYn.value = "Y";
|
||||
}
|
||||
form.action="/web/mjon/msgdata/selectMsgDataView.do";
|
||||
}
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
else {
|
||||
var title = "";
|
||||
if (electionCnt > 0) {
|
||||
title = "선거문자발송";
|
||||
}
|
||||
else {
|
||||
title = "문자발송";
|
||||
}
|
||||
|
||||
if (confirm("문자 재전송 하시겠습니까?\n문자내용, 받는 사람 목록 확인후 발송해주세요.")) {
|
||||
if (electionCnt > 0) {
|
||||
form.action="/web/mjon/msgcampain/selectMsgDataView.do";
|
||||
}
|
||||
else {
|
||||
if (advertisementCnt > 0) {
|
||||
// 광고문자
|
||||
form.msgResendAllAdvertiseYn.value = "Y";
|
||||
}
|
||||
form.action="/web/mjon/msgdata/selectMsgDataView.do";
|
||||
}
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//상세보기 버튼 실행
|
||||
function fnRevDetailPop(msgGroupId, msgId, fileCnt){
|
||||
document.resPopForm.msgGroupId.value = msgGroupId;
|
||||
document.resPopForm.msgId.value = msgId;
|
||||
var sendData = $(document.resPopForm).serializeArray();
|
||||
|
||||
var form = document.searchForm;
|
||||
$("#msgSentDetailPopLoad").load("/web/mjon/msgsent/selectMsgSentDetailDataAjax.do", sendData ,function(response, status, xhr){
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<form id="resPopForm" name="resPopForm" method="post">
|
||||
<input type="hidden" id="msgGroupId" name="msgGroupId" value=""/>
|
||||
<input type="hidden" id="msgId" name="msgId" value=""/>
|
||||
<input type="hidden" id="fileCnt" name="fileCnt" value=""/>
|
||||
<input type="hidden" id="resultType" name="resultType" value="S"/>
|
||||
</form>
|
||||
<form name="reSendAllForm" method="post">
|
||||
<input type="hidden" name="msgResendAllFlag" value="N"/>
|
||||
<input type="hidden" name="msgResendAllGroupId" value=""/>
|
||||
<input type="hidden" name="msgResendAllAdvertiseYn" value="N"/>
|
||||
<input type="hidden" name="msgResendAllReplaceYn" value="N"/>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- 전송내역 불러오기 -->
|
||||
<div class="tb_wrap" style="min-height:428px;">
|
||||
<table class="tType4">
|
||||
<colgroup>
|
||||
<col style="width: 17%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: *%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>발송일시
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_reqdate">
|
||||
</div>
|
||||
</th>
|
||||
<th>형태
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_orderByCode">
|
||||
</div>
|
||||
</th>
|
||||
<th>방식</th>
|
||||
<th>내용</th>
|
||||
<th>받는사람</th>
|
||||
<th>발신번호
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_callFrom">
|
||||
</div>
|
||||
</th>
|
||||
<th title="발송건수(성공률)">발송건수
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_msgGroupCnt">
|
||||
</div>
|
||||
</th>
|
||||
<th>재전송 선택 </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${not empty mjMsgSentList}">
|
||||
<c:forEach var="result" items="${mjMsgSentList}" varStatus="status">
|
||||
<c:set var="replaceCnt" value="0" />
|
||||
<c:set var="electionCnt" value="0" />
|
||||
<c:set var="advertisementCnt" value="0" />
|
||||
|
||||
<c:if test="${fn:indexOf(result.smsTxt,'[*이름*]') != -1 || fn:indexOf(result.smsTxt,'[*1*]') != -1 || fn:indexOf(result.smsTxt,'[*2*]') != -1 || fn:indexOf(result.smsTxt,'[*3*]') != -1 || fn:indexOf(result.smsTxt,'[*4*]') != -1}">
|
||||
<c:set var="replaceCnt" value="1" />
|
||||
</c:if>
|
||||
<c:if test="${fn:indexOf(result.smsTxt,'(선거운동정보)') == 0}">
|
||||
<c:set var="electionCnt" value="1" />
|
||||
</c:if>
|
||||
<c:if test="${fn:indexOf(result.smsTxt,'(광고)') == 0}">
|
||||
<c:set var="advertisementCnt" value="1" />
|
||||
</c:if>
|
||||
<tr>
|
||||
<td>
|
||||
<fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.reqdate}" />
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${result.msgType eq '6' && result.fileCnt eq 0 }">
|
||||
장문
|
||||
</c:when>
|
||||
<c:when test="${result.msgType eq '6' && result.fileCnt ne 0 }">
|
||||
그림
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
단문
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${result.sendKind eq 'H' }">
|
||||
WEB
|
||||
</c:when>
|
||||
<c:when test="${result.sendKind eq 'A'}">
|
||||
API
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${result.msgGroupId}','${result.msgId}','${result.fileCnt}'); return false;">상세보기</button>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${result.msgGroupCnt > 1}">
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${result.addrNm ne '-' and result.addrNm ne ''}">
|
||||
<c:out value="${result.addrNm}"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:out value="${result.callToComma}"/>
|
||||
</c:otherwise>
|
||||
</c:choose> 외 <fmt:formatNumber value="${result.msgGroupCnt - 1}" pattern="#,###"/>명
|
||||
</p>
|
||||
</c:when>
|
||||
<c:when test="${result.addrNm ne '-' and result.addrNm ne ''}">
|
||||
<p><c:out value="${result.addrNm}"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p><c:out value="${result.callToComma}"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${result.callFromComma}"/>
|
||||
</td>
|
||||
<td>
|
||||
<fmt:formatNumber value="${result.msgGroupCnt}" pattern="#,###" />(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
||||
</td>
|
||||
<td>
|
||||
<button class="btnType btnType24" onClick="javascript:fnMjMsgReSendAll('${result.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="8">발송 내역이 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--// 전송내역 불러오기 -->
|
||||
|
||||
<!-- pagination -->
|
||||
<c:if test="${!empty mjMsgSentList}">
|
||||
<ul class="pagination">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="imageWeb" jsFunction="getMjMsgSentListAll" />
|
||||
</ul>
|
||||
</c:if>
|
||||
<!-- pagination -->
|
||||
|
||||
|
||||
@ -2901,6 +2901,7 @@ function checkNumber(event) {
|
||||
if(Number(totCnt) > 5000){
|
||||
|
||||
alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
|
||||
$('#divideCnt').val("20");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ $(document).ready(function(){
|
||||
</th>
|
||||
<th>형태
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_msgType">
|
||||
<input type="button" class="sort sortBtn" id="sort_orderByCode">
|
||||
</div>
|
||||
</th>
|
||||
<th>발송방식
|
||||
@ -207,9 +207,7 @@ $(document).ready(function(){
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">상세보기</button>
|
||||
<%--
|
||||
<button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
|
||||
--%>
|
||||
<button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<c:choose>
|
||||
|
||||
@ -278,7 +278,9 @@ $(document).ready(function(){
|
||||
<button type="button" data-tooltip="rev_popup02" class="btnType btnType15"><i class="add_img"></i>그룹등록</button>
|
||||
<button type="button" class="btnType btnType15" onClick="javascript:fnDeleteAddrNo('${mjonMsgSentVO.listType}'); return false;"><i class="remove_img"></i>주소록에서 번호 삭제</button>
|
||||
<button type="button" class="btnType btnType15" onClick="javascript:fnAddBlockNo('${mjonMsgSentVO.listType}'); return false;"></i>수신거부번호 등록</button>
|
||||
<%--
|
||||
<button type="button" class="btnType btnType18 c_002c9a" onClick="javascript:fnReSendMsg(); return false;">문자 재전송</button>
|
||||
--%>
|
||||
</div>
|
||||
<div class="table_btn_right">
|
||||
<button type="button" class="excel_btn btnType" onClick="javascript:fnExcelDownLoad('fail','${mjonMsgSentVO.tabType}'); return false;"><i class="downroad"></i>엑셀 다운로드</button>
|
||||
|
||||
@ -95,13 +95,14 @@ function linkPage(pageNo){
|
||||
<p>문자내용</p>
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
</div>
|
||||
<div class="layer_in" id="msgSentDetailPopLoad">
|
||||
<div class="popup_btn_wrap2" style="justify-content: center;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
<div class="layer_in" id="msgSentDetailPopLoad" style="padding-bottom: 0px;">
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="justify-content: center; margin-bottom: 30px;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--// 문자내용 팝업 -->
|
||||
|
||||
<div class="tablePrint_wrap" style="width:1200px;">
|
||||
<div class="list_info">
|
||||
<p>총 <span class="c_e40000"><c:out value="${totalRecordCount}"/></span>건</p>
|
||||
|
||||
@ -4,8 +4,6 @@
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ page import="itn.com.cmm.LoginVO" %>
|
||||
<!-- <script src="/publish/js/content.js"></script> -->
|
||||
<script src="/publish/js/popupLayer.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
@ -707,8 +705,26 @@ function infoPop(pageUrl){
|
||||
|
||||
//문자 재전송
|
||||
function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt) {
|
||||
var form = document.reSendAllForm;
|
||||
form.msgResendAllFlag.value = "Y";
|
||||
form.msgResendAllGroupId.value = msgGroupId;
|
||||
|
||||
if (replaceCnt > 0) {
|
||||
alert("치환문자는 재전송 불가합니다.");
|
||||
if (confirm("특정문구 일괄변환 문자(치환문자)의 경우 문자내용은 재전송할 수 없고 받는 사람 목록만 불러올 수 있습니다.\n받는사람 목록을 불러올까요?")) {
|
||||
// 광고문자
|
||||
form.msgResendAllReplaceYn.value = "Y";
|
||||
if (electionCnt > 0) {
|
||||
form.action="/web/mjon/msgcampain/selectMsgDataView.do";
|
||||
}
|
||||
else {
|
||||
if (advertisementCnt > 0) {
|
||||
// 광고문자
|
||||
form.msgResendAllAdvertiseYn.value = "Y";
|
||||
}
|
||||
form.action="/web/mjon/msgdata/selectMsgDataView.do";
|
||||
}
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
else {
|
||||
var title = "";
|
||||
@ -719,10 +735,7 @@ function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt)
|
||||
title = "문자발송";
|
||||
}
|
||||
|
||||
if (confirm(title + " 화면으로 이동합니다.\n문자내용, 받는사람 확인후 발송해주세요.")) {
|
||||
var form = document.reSendAllForm;
|
||||
form.msgResendAllFlag.value = "Y";
|
||||
form.msgResendAllGroupId.value = msgGroupId;
|
||||
if (confirm(title + " 화면으로 이동합니다.\n문자내용, 받는 사람 목록 확인후 발송해주세요.")) {
|
||||
if (electionCnt > 0) {
|
||||
form.action="/web/mjon/msgcampain/selectMsgDataView.do";
|
||||
}
|
||||
@ -746,11 +759,11 @@ function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt)
|
||||
<p>문자내용</p>
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
|
||||
</div>
|
||||
<div class="layer_in" id="msgSentDetailPopLoad">
|
||||
<div class="popup_btn_wrap2" style="justify-content: center;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
<div class="layer_in" id="msgSentDetailPopLoad" style="padding-bottom: 0px;">
|
||||
</div>
|
||||
<div class="popup_btn_wrap2" style="justify-content: center; margin-bottom: 30px;">
|
||||
<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--// 문자내용 팝업 -->
|
||||
<!-- 그룹등록 팝업 data-tooltip:rev_popup02 -->
|
||||
@ -1084,4 +1097,5 @@ function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt)
|
||||
<input type="hidden" name="msgResendAllFlag" value="N"/>
|
||||
<input type="hidden" name="msgResendAllGroupId" value=""/>
|
||||
<input type="hidden" name="msgResendAllAdvertiseYn" value="N"/>
|
||||
<input type="hidden" name="msgResendAllReplaceYn" value="N"/>
|
||||
</form>
|
||||
@ -1,3 +1,3 @@
|
||||
àRCopyright 1990-2009 Adobe Systems Incorporated.
|
||||
All rights reserved.
|
||||
àRCopyright 1990-2009 Adobe Systems Incorporated.
|
||||
All rights reserved.
|
||||
See ./LICENSEáCNS2-H
|
||||
@ -1,3 +1,3 @@
|
||||
àRCopyright 1990-2009 Adobe Systems Incorporated.
|
||||
All rights reserved.
|
||||
àRCopyright 1990-2009 Adobe Systems Incorporated.
|
||||
All rights reserved.
|
||||
See ./LICENSEá ETen-B5-H` ^
|
||||
@ -1,4 +1,4 @@
|
||||
àRCopyright 1990-2009 Adobe Systems Incorporated.
|
||||
All rights reserved.
|
||||
See ./LICENSE!!<21>º]aX!!]`<60>21<32>> <09>p<0B>z<EFBFBD>$]‚<06>"R‚d<E2809A>-Uƒ7<C692>*„
4„%<25>+ „Z „{<7B>/…%…<<3C>9K…b<E280A6>1]†.<2E>"‡‰`]‡,<2C>"]ˆ
|
||||
àRCopyright 1990-2009 Adobe Systems Incorporated.
|
||||
All rights reserved.
|
||||
See ./LICENSE!!<21>º]aX!!]`<60>21<32>> <09>p<0B>z<EFBFBD>$]‚<06>"R‚d<E2809A>-Uƒ7<C692>*„
4„%<25>+ „Z „{<7B>/…%…<<3C>9K…b<E280A6>1]†.<2E>"‡‰`]‡,<2C>"]ˆ
|
||||
<EFBFBD>"]ˆh<CB86>"]‰F<E280B0>"]Š$<24>"]‹<02>"]‹`<60>"]Œ><3E>"]<5D><1C>"]<5D>z<EFBFBD>"]ŽX<C5BD>"]<5D>6<EFBFBD>"]<5D><14>"]<5D>r<EFBFBD>"]‘P<E28098>"]’.<2E>"]“<0C>"]“j<E2809C>"]”H<E2809D>"]•&<26>"]–<04>"]–b<E28093>"]—@<40>"]˜<1E>"]˜|<7C>"]™Z<E284A2>"]š8<C5A1>"]›<16>"]›t<E280BA>"]œR<C593>"]<5D>0<EFBFBD>"]ž<0E>"]žl<C5BE>"]ŸJ<C5B8>"] (<28>"]¡<06>"]¡d<C2A1>"]¢B<C2A2>"]£ <20>"X£~<7E>']¤W<C2A4>"]¥5<C2A5>"]¦<13>"]¦q<C2A6>"]§O<C2A7>"]¨-<2D>"]©<0B>"]©i<C2A9>"]ªG<C2AA>"]«%<25>"]¬<03>"]¬a<C2AC>"]?<3F>"]®<1D>"]®{<7B>"]¯Y<C2AF>"]°7<C2B0>"]±<15>"]±s<C2B1>"]²Q<C2B2>"]³/<2F>"]´
<0A>"]´k<C2B4>"]µI<C2B5>"]¶'<27>"]·<05>"]·c<C2B7>"]¸A<C2B8>"]¹<1F>"]¹}<7D>"]º[<5B>"]»9
|
||||
@ -44,7 +44,9 @@ function tooltip() {
|
||||
function close(t) {
|
||||
var activeTarget = $('[data-tooltip-con="' + t + '"]');
|
||||
activeTarget.hide().css('opacity','0');
|
||||
$('[data-tooltip="' + t + '"]').focus();
|
||||
if (t != "rev_popup01") {
|
||||
$('[data-tooltip="' + t + '"]').focus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 네이버 공통 스크립트 , 모든 페이지에 노출되도록 설치. 단 전환페이지 설정값보다 항상 하단에 위치해야함 -->
|
||||
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"> </script>
|
||||
<script type="text/javascript">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user