This commit is contained in:
name 2023-09-01 20:05:56 +09:00
commit e6f835afb3
17 changed files with 240 additions and 49 deletions

View File

@ -11,6 +11,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO; import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO;
@ -61,4 +62,31 @@ public class KakaoStatisticsController {
return "/uss/ion/kakaoat/KakaoAtSendStatistics"; return "/uss/ion/kakaoat/KakaoAtSendStatistics";
} }
// 알림톡 발송 통계
@RequestMapping(value = "/uss/ion/kakao/insertKakaoAtCountStatApiAjax.do")
public ModelAndView insertKakaoAtCountStatApiAjax(
@ModelAttribute("kakaoAtStatVO") MjonKakaoAtStatVO kakaoAtStatVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
try {
kakaoStatisticsService.insertKakaoAtCountStat(kakaoAtStatVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
} }

View File

@ -82,6 +82,9 @@ public interface MjonMsgService {
// 금일 예약발송 건수 // 금일 예약발송 건수
int selectMjonMsgGroupCntSum(MjonMsgVO mjonMsgVO) throws Exception; int selectMjonMsgGroupCntSum(MjonMsgVO mjonMsgVO) throws Exception;
// 스미싱의심 미처리
int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception;
int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception; int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception;
//전송사 문자 발송 결과 코드 정보 전체 불러오기 //전송사 문자 발송 결과 코드 정보 전체 불러오기

View File

@ -192,8 +192,14 @@ public class MjonMsgVO extends ComDefaultVO{
private int mmsGroupFWCntSum; // mms 실패대기() private int mmsGroupFWCntSum; // mms 실패대기()
private int mmsTotFWPriceSum; // mms 실패대기(금액) private int mmsTotFWPriceSum; // mms 실패대기(금액)
private String searchDelayMsgYn;
public String getSearchDelayMsgYn() {
return searchDelayMsgYn;
}
public void setSearchDelayMsgYn(String searchDelayMsgYn) {
this.searchDelayMsgYn = searchDelayMsgYn;
}
public int getSmsGroupSCntSum() { public int getSmsGroupSCntSum() {
return smsGroupSCntSum; return smsGroupSCntSum;
} }

View File

@ -198,6 +198,11 @@ public class MjonMsgDAO extends EgovAbstractDAO {
return (int) select("mjonMsgDAO.selectMjonMsgGroupCntSum", mjonMsgVO); return (int) select("mjonMsgDAO.selectMjonMsgGroupCntSum", mjonMsgVO);
} }
// 스미싱의심 미처리
public int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception{
return (int) select("mjonMsgDAO.selectMjonMsgDelayCnt", mjonMsgVO);
}
public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{ public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{
return (int) select("mjonMsgDAO.selectSendBlockPhonNumCheck", mjonMsgVO); return (int) select("mjonMsgDAO.selectSendBlockPhonNumCheck", mjonMsgVO);
} }

View File

@ -415,6 +415,12 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
return mjonMsgDAO.selectMjonMsgGroupCntSum(mjonMsgVO); return mjonMsgDAO.selectMjonMsgGroupCntSum(mjonMsgVO);
} }
// 스미싱의심 미처리
@Override
public int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception {
return mjonMsgDAO.selectMjonMsgDelayCnt(mjonMsgVO);
}
@Override @Override
public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{ public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{
return mjonMsgDAO.selectSendBlockPhonNumCheck(mjonMsgVO); return mjonMsgDAO.selectSendBlockPhonNumCheck(mjonMsgVO);

View File

@ -265,6 +265,40 @@ public class MjonMsgController {
} }
// 스미싱의심 미처리
@RequestMapping(value = "/uss/ion/msg/selectDelayMsgCountAjax.do")
public ModelAndView selectDelayMsgCountAjax(
@ModelAttribute("mjonMsgVO") MjonMsgVO mjonMsgVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
int delayMsgCnt = 0;
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String admId = loginVO == null ? "" : loginVO.getId();
try{
delayMsgCnt = mjonMsgService.selectMjonMsgDelayCnt(mjonMsgVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("delayMsgCnt", delayMsgCnt);
modelAndView.addObject("admId", admId);
return modelAndView;
}
/** /**
* 문자전송 리스트 스미싱 on off 처리 * 문자전송 리스트 스미싱 on off 처리
* @param searchVO * @param searchVO

View File

@ -322,7 +322,9 @@ public class SchedulerUtil {
} }
// AGENT별 Kakao 발송건수 통계 스케쥴러 // AGENT별 Kakao 발송건수 통계 스케쥴러
@Scheduled(cron = "0 10,40 * * * *") // 10,40분마다 실행 //@Scheduled(cron = "0 10,40 * * * *") // 10,40분마다 실행
//@Scheduled(cron = "0 47 * * * *") // 47분마다 실행
@Scheduled(cron = "0 57 23 * * *")
@SchedulerLock(name = "insertAgentKakaoCountStatByMinute", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN) @SchedulerLock(name = "insertAgentKakaoCountStatByMinute", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
public void agentKakaoCountStatByMinuteInsert() throws Exception { public void agentKakaoCountStatByMinuteInsert() throws Exception {
try { try {

View File

@ -694,7 +694,7 @@
, B.SMS_TXT , B.SMS_TXT
, B.SUBJECT , B.SUBJECT
, B.REGDATE , B.REGDATE
, B.REQ_DATE , A.REQ_DATE
, A.RSLT_DATE , A.RSLT_DATE
, B.CALL_FROM , B.CALL_FROM
, B.TOT_PRICE , B.TOT_PRICE
@ -1900,38 +1900,24 @@
) AS result , ) AS result ,
( SELECT COUNT(0) ( SELECT COUNT(0)
FROM MJ_MSG_DATA C FROM MJ_MSG_DATA C
WHERE C.RESERVE_C_YN = 'N' INNER JOIN MJ_MSG_GROUP_DATA CG
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID ON C.MSG_GROUP_ID = CG.MSG_GROUP_ID
WHERE CG.RESERVE_C_YN = 'N'
AND CG.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.RSLT_CODE = '7000' AND C.RSLT_CODE = '7000'
) AS successCount , ) AS successCount ,
( SELECT COUNT(0) ( SELECT COUNT(0)
FROM MJ_MSG_DATA C FROM MJ_MSG_DATA C
WHERE C.RESERVE_C_YN = 'N' INNER JOIN MJ_MSG_GROUP_DATA CG
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID ON C.MSG_GROUP_ID = CG.MSG_GROUP_ID
WHERE CG.RESERVE_C_YN = 'N'
AND CG.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.RSLT_CODE = '7000' AND C.RSLT_CODE = '7000'
AND C.MSG_TYPE = '8' AND CG.MSG_TYPE = '8'
) AS atSuccessCount , ) AS atSuccessCount ,
( SELECT COUNT(0) 0 AS ftSuccessCount ,
FROM MJ_MSG_DATA C 0 AS atFailCount ,
WHERE C.RESERVE_C_YN = 'N' 0 AS ftFailCount ,
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.RSLT_CODE = '7000'
AND C.MSG_TYPE = '9'
) AS ftSuccessCount ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND IFNULL(C.RSLT_CODE, '') != '7000'
AND C.MSG_TYPE = '8'
) AS atFailCount ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND IFNULL(C.RSLT_CODE, '') != '7000'
AND C.MSG_TYPE = '9'
) AS ftFailCount ,
MSG_NOTICETALK_SENDER_KEY , MSG_NOTICETALK_SENDER_KEY ,
MSG_NOTICETALK_TMP_KEY, MSG_NOTICETALK_TMP_KEY,
MD.BIZ_UMID, MD.BIZ_UMID,

View File

@ -108,10 +108,12 @@
,bkp.BIZ_KAKAO_AT_PRICE ,bkp.BIZ_KAKAO_AT_PRICE
FROM FROM
MJ_MSG_DATA md MJ_MSG_DATA md
INNER JOIN MJ_MSG_GROUP_DATA mgd
ON md.MSG_GROUP_ID = mgd.MSG_GROUP_ID
LEFT OUTER JOIN BIZ_KAKAO_PRICE bkp LEFT OUTER JOIN BIZ_KAKAO_PRICE bkp
ON md.MSG_GROUP_ID = bkp.MSG_GROUP_ID ON mgd.MSG_GROUP_ID = bkp.MSG_GROUP_ID
WHERE WHERE
md.MSG_TYPE = '8' mgd.MSG_TYPE = '8'
AND md.RESERVE_C_YN = 'N' AND md.RESERVE_C_YN = 'N'
AND md.SENT_DATE >= DATE_FORMAT(#statStartDate#, '%Y-%m-%d') AND md.SENT_DATE >= DATE_FORMAT(#statStartDate#, '%Y-%m-%d')
AND DATE_FORMAT(#statStandardDate#, '%Y-%m-%d') > md.SENT_DATE AND DATE_FORMAT(#statStandardDate#, '%Y-%m-%d') > md.SENT_DATE

View File

@ -601,6 +601,21 @@
</isNotEmpty> </isNotEmpty>
</select> </select>
<!-- 스미싱의심 미처리 -->
<select id="mjonMsgDAO.selectMjonMsgDelayCnt" parameterClass="mjonMsgVO" resultClass="int">
<![CDATA[
SELECT
COUNT(0)
FROM MJ_MSG_GROUP_DATA Y
WHERE 1=1
AND Y.REQ_DATE >= NOW()
AND Y.RESERVE_C_YN = 'N'
AND IFNULL(Y.DELAY_YN, 'N') = 'Y'
AND IFNULL(Y.DELAY_COMPLETE_YN, 'N') = 'N'
AND Y.USER_ID != 'system'
]]>
</select>
<!-- 문자발송 완료건은 모두 보이도록 처리 --> <!-- 문자발송 완료건은 모두 보이도록 처리 -->
<select id="mjonMsgDAO.selectMjonMsgGroupCompleteList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> <select id="mjonMsgDAO.selectMjonMsgGroupCompleteList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
SELECT SELECT
@ -855,6 +870,21 @@
<isNotEmpty property="searchCampaignYn"> <isNotEmpty property="searchCampaignYn">
AND MSG_KIND = 'C' AND MSG_KIND = 'C'
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="searchDelayMsgYn">
AND A.MSG_GROUP_ID IN (
SELECT
Y.MSG_GROUP_ID
FROM MJ_MSG_GROUP_DATA Y
WHERE 1=1
AND Y.REQ_DATE >= NOW()
AND Y.RESERVE_C_YN = 'N'
AND IFNULL(Y.DELAY_YN, 'N') = 'Y'
AND IFNULL(Y.DELAY_COMPLETE_YN, 'N') = 'N'
AND Y.USER_ID != 'system'
)
</isNotEmpty>
ORDER BY 1=1 ORDER BY 1=1
<isNotEmpty property="searchSortCnd"> <isNotEmpty property="searchSortCnd">
,$searchSortCnd$ ,$searchSortCnd$

View File

@ -626,7 +626,7 @@
CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS D CROSS JOIN (SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS D
) A ) A
WHERE 1=1 WHERE 1=1
AND ( DATE BETWEEN #searchBgnDe# AND #searchEndDe# ) AND (DATE BETWEEN #searchBgnDe# AND CONCAT(#searchEndDe#,' 23:59:59'))
) A ) A
CROSS JOIN CROSS JOIN
( SELECT A.MENU_NM AS menuNm, ( SELECT A.MENU_NM AS menuNm,
@ -640,6 +640,7 @@
WHERE B.URL IS NOT NULL WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' AND B.URL != ''
AND A.MENU_NM != '새메뉴'
) B ) B
) C ) C
LEFT JOIN LEFT JOIN
@ -649,6 +650,7 @@
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
WHERE 1=1 WHERE 1=1
AND (B.CREAT_DT BETWEEN #searchBgnDe# AND CONCAT(#searchEndDe#,' 23:59:59'))
GROUP BY menuNm , creatDt GROUP BY menuNm , creatDt
) D ON C.creatDt = D.creatDt ) D ON C.creatDt = D.creatDt
AND C.progrmFileNm = D.progrmFileNm AND C.progrmFileNm = D.progrmFileNm
@ -694,6 +696,7 @@
WHERE B.URL IS NOT NULL WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' AND B.URL != ''
AND A.MENU_NM != '새메뉴'
) B ) B
) C ) C
LEFT JOIN LEFT JOIN
@ -703,6 +706,7 @@
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM AND B.CREAT_DT BETWEEN #searchBgnDe# AND #searchEndDe# AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM AND B.CREAT_DT BETWEEN #searchBgnDe# AND #searchEndDe#
WHERE 1=1 WHERE 1=1
AND (B.CREAT_DT BETWEEN #searchBgnDe# AND CONCAT(#searchEndDe#,' 23:59:59'))
GROUP BY menuNm , creatDt GROUP BY menuNm , creatDt
) D ON C.creatDt = D.creatDt ) D ON C.creatDt = D.creatDt
AND C.progrmFileNm = D.progrmFileNm AND C.progrmFileNm = D.progrmFileNm
@ -750,6 +754,7 @@
WHERE B.URL IS NOT NULL WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' AND B.URL != ''
AND A.MENU_NM != '새메뉴'
) B ) B
) C ) C
LEFT JOIN LEFT JOIN
@ -759,6 +764,7 @@
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM AND B.URL != '' ) A INNER JOIN LETTNLOGINLOG B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM
WHERE 1=1 WHERE 1=1
AND (B.CREAT_DT BETWEEN #searchBgnDe# AND CONCAT(#searchEndDe#,' 23:59:59'))
GROUP BY menuNm , creatDt GROUP BY menuNm , creatDt
) D ON C.creatDt = D.creatDt ) D ON C.creatDt = D.creatDt
AND C.progrmFileNm = D.progrmFileNm AND C.progrmFileNm = D.progrmFileNm
@ -796,6 +802,7 @@
WHERE B.URL IS NOT NULL WHERE B.URL IS NOT NULL
AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS' AND C.AUTHOR_CODE = 'ROLE_ANONYMOUS'
AND B.URL != '' AND B.URL != ''
AND A.MENU_NM != '새메뉴'
<isNotEmpty prepend="AND" property="searchKeyword"> <isNotEmpty prepend="AND" property="searchKeyword">
<![CDATA[ A.MENU_NM LIKE CONCAT ('%', #searchKeyword#,'%') ]]> <![CDATA[ A.MENU_NM LIKE CONCAT ('%', #searchKeyword#,'%') ]]>
</isNotEmpty> </isNotEmpty>
@ -971,8 +978,8 @@
COUNT(0) OVER() AS totCnt COUNT(0) OVER() AS totCnt
, M.REG_DATE AS regDate , M.REG_DATE AS regDate
, M.REG_STEP_SUM AS joinUserCnt , M.REG_STEP_SUM AS joinUserCnt
, D.TDAY_U_CNT AS loginUserCnt , MAX(D.TDAY_U_CNT) AS loginUserCnt
, ROUND((D.TDAY_U_CNT / M.REG_STEP_SUM) * 100,2) AS userRatio , ROUND((MAX(D.TDAY_U_CNT) / M.REG_STEP_SUM) * 100,2) AS userRatio
FROM FROM
(SELECT (SELECT
DATE_FORMAT(L.APPROVAL_PNTTM, '%Y-%m') AS REG_DATE DATE_FORMAT(L.APPROVAL_PNTTM, '%Y-%m') AS REG_DATE

View File

@ -111,15 +111,19 @@ function fnSetCalMonth(val) {
<option value="3">3개월</option> <option value="3">3개월</option>
<option value="6">6개월</option> <option value="6">6개월</option>
</select> </select>
<input type="hidden" name="cal_url" id="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" >
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="searchBgnDeYYYMMDD" id="searchBgnDeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.searchBgnDe}" />" >
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.searchBgnDeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.searchBgnDeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="searchBgnDeYYYMMDD" id="searchBgnDeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.searchBgnDe}" />" >
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
<span class="line">&nbsp;~</span> <span class="line">&nbsp;~</span>
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.searchEndDeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="searchEndDeYYYMMDD" id="searchEndDeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="searchEndDeYYYMMDD" id="searchEndDeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.searchEndDe}" />" > value="<c:out value="${searchVO.searchEndDe}" />" >
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.searchEndDeYYYMMDD);">
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;"> <a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">

View File

@ -96,6 +96,43 @@
form.submit(); form.submit();
} }
// 오늘날짜
function getTodayDate() {
var today = new Date();
var year = today.getFullYear();
var month = ('0' + (today.getMonth() + 1)).slice(-2);
var day = ('0' + today.getDate()).slice(-2);
var dateString = year + month + day;
return dateString;
}
// 당일 데이터 업데이트
function setTodayUpdate() {
var url = "/uss/ion/kakao/insertKakaoAtCountStatApiAjax.do?statStartDate=" + getTodayDate() + "&statEndDate=" + getTodayDate();
$.ajax({
type: "POST",
url: url,
data: {},
dataType:'json',
async: true,
success: function (data) {
if (data.isSuccess) {
location.reload();
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
</script> </script>
<style type="text/css"> <style type="text/css">
.pageCont .listTop {padding:0 0 10px;font-weight:700;text-align:right;} .pageCont .listTop {padding:0 0 10px;font-weight:700;text-align:right;}
@ -166,6 +203,8 @@
<input type="button" class="btnType1" onclick="fn_list_search(); return false;" value="검색"> <input type="button" class="btnType1" onclick="fn_list_search(); return false;" value="검색">
</div> </div>
<div class="listTop"> <div class="listTop">
<input type="button" style="cursor: pointer;" onclick="setTodayUpdate();" value="Today Update">
&nbsp;
(부가세 별도) (부가세 별도)
</div> </div>
<div class="tableWrap"> <div class="tableWrap">

View File

@ -36,6 +36,13 @@
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script> <script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$( document ).ready(function() {
//스미싱의심 지연문자 미처리
//getDelayMsgCount();
});
function fn_search(){ function fn_search(){
var searchKeyword = $('input[name=searchKeyword]').val(); var searchKeyword = $('input[name=searchKeyword]').val();
$('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, "")); $('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, ""));
@ -357,6 +364,36 @@ function fnSmishingUpdate(flag) {
} }
} }
} }
// 스미싱의심 미처리
function getDelayMsgCount() {
$.ajax({
type: "POST",
url: "/uss/ion/msg/selectDelayMsgCountAjax.do",
data: {},
dataType:'json',
async: true,
success: function (data) {
if (data.isSuccess) {
$("#btnDelayMsg").show();
$("#btnDelayMsg").val("스미싱의심 미처리 " + data.delayMsgCnt + "건");
}
else {
//alert("Msg : " + data.msg);
}
},
error: function (e) {
//alert("ERROR : " + JSON.stringify(e));
}
});
}
//스미싱의심 미처리
function getDelayMsgData() {
$("#searchDelayMsgYn").val("Y");
linkPage(1);
}
</script> </script>
<style> <style>
.calBtn{ .calBtn{
@ -392,6 +429,7 @@ function fnSmishingUpdate(flag) {
<input type="hidden" name="adminSmsNoticeYn" value=""/> <input type="hidden" name="adminSmsNoticeYn" value=""/>
<input name="checkedIdForDel" type="hidden" /> <input name="checkedIdForDel" type="hidden" />
<input type="hidden" name="smishingYn" value=""/> <input type="hidden" name="smishingYn" value=""/>
<input type="hidden" name="searchDelayMsgYn" id="searchDelayMsgYn" value=""/>
<div class="contWrap"> <div class="contWrap">
<div class="pageTitle"> <div class="pageTitle">
@ -467,6 +505,7 @@ function fnSmishingUpdate(flag) {
<div class="listTop"> <div class="listTop">
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p> <p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
<div class="rightWrap"> <div class="rightWrap">
<input type="button" class="btnType2" id="btnDelayMsg" value="" onclick="javascript:getDelayMsgData();" style="display: none;">
<input type="button" class="excelBtn" onclick="javascript:sendMsgExcelDownload();"> <input type="button" class="excelBtn" onclick="javascript:sendMsgExcelDownload();">
<!-- <input type="button" class="printBtn"> --> <!-- <input type="button" class="printBtn"> -->
<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);"> <select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">

View File

@ -22,7 +22,7 @@ $(document).ready(function() {
} }
// 슬라이드 이미지 변경 // 슬라이드 이미지 변경
//setMainSlideImgChange(); setMainSlideImgChange();
//메인 팝업 호출 여부 //메인 팝업 호출 여부
var evntPopCk = fnGetCookie('layer_evntPayPop'); var evntPopCk = fnGetCookie('layer_evntPayPop');
@ -290,7 +290,7 @@ function leadingZeros(n, digits) {
// 슬라이드 이미지 변경 // 슬라이드 이미지 변경
function setMainSlideImgChange() { function setMainSlideImgChange() {
var parentsDayShow = false; var parentsDayShow = false;
var rsvDate = "2023-08-16"; var rsvDate = "2023-09-04";
var now = new Date(); var now = new Date();
now = leadingZeros(now.getFullYear(), 4) + '-' + leadingZeros(now.getMonth() + 1, 2) + '-' + leadingZeros(now.getDate(), 2); now = leadingZeros(now.getFullYear(), 4) + '-' + leadingZeros(now.getMonth() + 1, 2) + '-' + leadingZeros(now.getDate(), 2);
if (now >= rsvDate) { if (now >= rsvDate) {
@ -299,10 +299,10 @@ function setMainSlideImgChange() {
// 석가탄신일 => 현충일 이미지로 변경 // 석가탄신일 => 현충일 이미지로 변경
if (parentsDayShow == true) { if (parentsDayShow == true) {
$("#mainSlideImg_1001").attr("src", "/publish/images/main/f_visual_01_20230814.jpg"); $("#mainSlideImg_1001").attr("src", "/publish/images/main/f_visual_01_20230904.jpg");
$("#mainSlideImg_1001").attr("alt", "문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 더위보다 무서운 여름철 감기 냉방병 여름엔 역시! 시원하게 물냉면"); $("#mainSlideImg_1001").attr("alt", "문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 풍성한 한가위 되세요 풍요로움과 넉넉함이 함께하는 한가위가 되시길 기원합니다. 秋夕 행복하고 안전한 귀성길 되세요! 즐겁고 행복한 한가위 보내시고, 고향길 안전하게 다녀오시길 바랍니다.");
$("#mainSlideImg_1002").attr("src", "/publish/images/main/f_visual_03_20230814.jpg"); $("#mainSlideImg_1002").attr("src", "/publish/images/main/f_visual_03_20230904.jpg");
$("#mainSlideImg_1002").attr("alt", "다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 헬스| 스피닝| 필라테스 줌바댄스 요가 여름맞이 특가할인 헬스+스피닝+PT3회 3개월 이용권 30만원 24시 상담문의 02)000-0000 MUNJAON SUMMER EVENT 올여름은 골캉스 '항공부터 호텔, 골프까지 한번에 예약! 문자온 골캉스, 지금 예약하세요.' 항송 + 호텔 + 골프 summer is comming SUMMER BIG SALE 22.07.01 ~ 22.07.10"); $("#mainSlideImg_1002").attr("alt", "다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 밝은 보름달처럼 행복한 추석 보내세요 秋夕 우리 민족 최대의 큰 명절 추석을 맞이하여 보름달에 걱정근심 맡기고 건강과 안녕을 기원하며 가족들과 함께 뜻 깊고 따뜻한 명절이 되시기를 바랍니다. 고향 가시는 길 안전하고 편안하게 다녀오십시오 항상 웃음 가득한 날이 가득하시길 바랍니다. 감사합니다 - 문자온 일동 - 이벤트 기간 : 09월 25일부터 9월 30일까지 문자온몰에서 추석맞이 쇼핑도 하GO! 소원도 빌GO! 추석맞이 소원빌기 보름달님 제 소원을 들어주세요 제 소원은 바로 가족 모두가 건강하는거예요~~ ID : MUNJAON_USER 한가위를 맞이하여 소원빌기 이벤트를 진행합니다. 공식 SNS를 팔로우 한 후 이벤트 게시물에 자신이 바라는 소원을 댓글로 달아주세요! 추첨을 통해 푸짐한 선물을 드립니다. ▶ 당첨자 발표 : 10월 2일 Korea Thanksgiving Day 추석맞이 배송비무료 EVENT 2099.09.28 ~ 2099.09.30");
/* main visual */ /* main visual */
var mainSwiper = new Swiper('.visual_swiper', { var mainSwiper = new Swiper('.visual_swiper', {
@ -1187,15 +1187,15 @@ function fn_click_banner_add_stat(bannerMenuCode){
<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 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>
<div class="swiper-slide"> <div class="swiper-slide">
<div class="slideImg"><img src="/publish/images/main/f_visual_01_20230814.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 더위보다 무서운 여름철 감기 냉방병 여름엔 역시! 시원하게 물냉면" usemap="#image-map" /></div> <%-- <div class="slideImg"><img src="/publish/images/main/f_visual_01_20230904.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 풍성한 한가위 되세요 풍요로움과 넉넉함이 함께하는 한가위가 되시길 기원합니다. 秋夕 행복하고 안전한 귀성길 되세요! 즐겁고 행복한 한가위 보내시고, 고향길 안전하게 다녀오시길 바랍니다." usemap="#image-map" /></div> --%>
<%-- <div class="slideImg"><img id="mainSlideImg_1001" src="/publish/images/main/f_visual_01_20230808.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 대한독립만세 광복절 8.15 삼복더위 삼계탕 대신 치킨" usemap="#image-map" /></div> --%> <div class="slideImg"><img id="mainSlideImg_1001" src="/publish/images/main/f_visual_01_20230814.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 더위보다 무서운 여름철 감기 냉방병 여름엔 역시! 시원하게 물냉면" usemap="#image-map" /></div>
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백" /></div> <div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백" /></div>
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<div class="slideImg"><img src="/publish/images/main/f_visual_03_20230814.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 헬스| 스피닝| 필라테스 줌바댄스 요가 여름맞이 특가할인 헬스+스피닝+PT3회 3개월 이용권 30만원 24시 상담문의 02)000-0000 MUNJAON SUMMER EVENT 올여름은 골캉스 '항공부터 호텔, 골프까지 한번에 예약! 문자온 골캉스, 지금 예약하세요.' 항송 + 호텔 + 골프 summer is comming SUMMER BIG SALE 22.07.01 ~ 22.07.10" /></div> <%-- <div class="slideImg"><img src="/publish/images/main/f_visual_03_20230904.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 밝은 보름달처럼 행복한 추석 보내세요 秋夕 우리 민족 최대의 큰 명절 추석을 맞이하여 보름달에 걱정근심 맡기고 건강과 안녕을 기원하며 가족들과 함께 뜻 깊고 따뜻한 명절이 되시기를 바랍니다. 고향 가시는 길 안전하고 편안하게 다녀오십시오 항상 웃음 가득한 날이 가득하시길 바랍니다. 감사합니다 - 문자온 일동 - 이벤트 기간 : 09월 25일부터 9월 30일까지 문자온몰에서 추석맞이 쇼핑도 하GO! 소원도 빌GO! 추석맞이 소원빌기 보름달님 제 소원을 들어주세요 제 소원은 바로 가족 모두가 건강하는거예요~~ ID : MUNJAON_USER 한가위를 맞이하여 소원빌기 이벤트를 진행합니다. 공식 SNS를 팔로우 한 후 이벤트 게시물에 자신이 바라는 소원을 댓글로 달아주세요! 추첨을 통해 푸짐한 선물을 드립니다. ▶ 당첨자 발표 : 10월 2일 Korea Thanksgiving Day 추석맞이 배송비무료 EVENT 2099.09.28 ~ 2099.09.30" /></div> --%>
<%-- <div class="slideImg"><img id="mainSlideImg_1002" src="/publish/images/main/f_visual_03_20230808.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요.summer 여름 휴가 배송 안내 본사 여름 휴가로 인하여 배송 및 고객센터 업무가 진행되지 않는 점 양해 부탁 드립니다. 휴가가 끝나면 정상 영업합니다. 2022.08.03 ~ 08.07 SUN MON TUE WEN THU FRI SAT 24 25 26 27 28 29 30-주문마감(울릉도, 제주도, 도서산간지역) 31 1 2-오후 5시 주문마감 3 4 5 6 7 ON몰 여름휴가 8-배송시작 9 10 11 12 13 MUNJA_ON_SHOP 815 광복절 이벤트 #태극기달고 #태그 #할인쿠폰 #증정! 8·15 휴무안내 휴무안내 월 15 화 16 수 17 목 18 금 19 토 20 휴무일에는 상담&배송업무가 중단됩니다." /></div> --%> <div class="slideImg"><img id="mainSlideImg_1002" src="/publish/images/main/f_visual_03_20230814.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요. 헬스| 스피닝| 필라테스 줌바댄스 요가 여름맞이 특가할인 헬스+스피닝+PT3회 3개월 이용권 30만원 24시 상담문의 02)000-0000 MUNJAON SUMMER EVENT 올여름은 골캉스 '항공부터 호텔, 골프까지 한번에 예약! 문자온 골캉스, 지금 예약하세요.' 항송 + 호텔 + 골프 summer is comming SUMMER BIG SALE 22.07.01 ~ 22.07.10" /></div>
</div> </div>
<div class="swiper-slide"> <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 class="slideImg"><img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?" /></div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB