itn 2023-08-31
스미싱의심 미처리 건수 노출기능 추가
@2e78e0196f1e526335586d94e5df7ffa858d792b
src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
--- src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
@@ -82,6 +82,9 @@
 	// 금일 예약발송 건수
 	int selectMjonMsgGroupCntSum(MjonMsgVO mjonMsgVO) throws Exception;
 
+	// 스미싱의심 미처리
+	int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception;
+	
 	int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception;
 	
 	//전송사 문자 발송 결과 코드 정보 전체 불러오기
src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
--- src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
@@ -192,8 +192,14 @@
 	private int mmsGroupFWCntSum;		// mms 실패대기(건)
 	private int mmsTotFWPriceSum;		// mms 실패대기(금액)
 	
+	private String searchDelayMsgYn;
 	
-	
+	public String getSearchDelayMsgYn() {
+		return searchDelayMsgYn;
+	}
+	public void setSearchDelayMsgYn(String searchDelayMsgYn) {
+		this.searchDelayMsgYn = searchDelayMsgYn;
+	}
 	public int getSmsGroupSCntSum() {
 		return smsGroupSCntSum;
 	}
src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
--- src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
+++ src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
@@ -198,6 +198,11 @@
 		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{
 		return  (int) select("mjonMsgDAO.selectSendBlockPhonNumCheck", mjonMsgVO);
 	}
src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
--- src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
+++ src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
@@ -415,6 +415,12 @@
 		return mjonMsgDAO.selectMjonMsgGroupCntSum(mjonMsgVO);
 	}
 	
+	// 스미싱의심 미처리
+	@Override
+	public int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception {
+		return mjonMsgDAO.selectMjonMsgDelayCnt(mjonMsgVO);
+	}
+	
 	@Override
 	public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{
 		return mjonMsgDAO.selectSendBlockPhonNumCheck(mjonMsgVO);
src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
@@ -265,6 +265,40 @@
         
 	}
 	
+	// 스미싱의심 미처리
+	@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 처리 
      * @param searchVO
src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
@@ -601,6 +601,21 @@
 			</isNotEmpty>
 	</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 
@@ -855,6 +870,21 @@
 			<isNotEmpty property="searchCampaignYn">
 				AND MSG_KIND = 'C'
 			</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
 				<isNotEmpty property="searchSortCnd">
 					,$searchSortCnd$
src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp
@@ -36,6 +36,13 @@
 <script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
 <script type="text/javaScript" language="javascript">
 
+$( document ).ready(function() {
+
+	//스미싱의심 지연문자 미처리
+	getDelayMsgCount();
+	
+});
+
 function fn_search(){
 	var searchKeyword = $('input[name=searchKeyword]').val();
 	$('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, ""));
@@ -357,6 +364,36 @@
         }
     }
 }
+
+// 스미싱의심 미처리
+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>
 <style>
 .calBtn{
@@ -392,6 +429,7 @@
 	<input type="hidden" name="adminSmsNoticeYn" value=""/>
 	<input name="checkedIdForDel" type="hidden" />
 	<input type="hidden" name="smishingYn" value=""/>
+	<input type="hidden" name="searchDelayMsgYn" id="searchDelayMsgYn" value=""/>
 	
 	<div class="contWrap">
 		<div class="pageTitle">
@@ -467,6 +505,7 @@
 			<div class="listTop">
 				<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
 				<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="printBtn"> -->
 					<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
Add a comment
List