이호영 이호영 2024-12-26
사용자 알림 설정에 따른 즉시 발송
@3e88ee9889e5bc46a23dc162b91ff51e7318fe6a
src/main/java/itn/com/cmm/util/MsgSendUtils.java
--- src/main/java/itn/com/cmm/util/MsgSendUtils.java
+++ src/main/java/itn/com/cmm/util/MsgSendUtils.java
@@ -198,12 +198,13 @@
 	 * @param statusResponse
 	 * @param agentSendCounts 
 	 * @param sendRateList 
+	 * @param isNotified 
 	 * @return call by reference
 	 * @throws Exception 
 	 */
 	public static Boolean populateSendLists(MjonMsgVO mjonMsgVO, List<MjonMsgSendVO> mjonMsgSendListVO
 			, StatusResponse statusResponse, List<String> resultSpamTxt
-			, Map<String, Integer> agentSendCounts, List<MjonMsgVO> sendRateList) throws Exception{
+			, Map<String, Integer> agentSendCounts, List<MjonMsgVO> sendRateList, boolean isNotified) throws Exception{
 		
 		log.info(" :: populateSendLists :: ");
 		
@@ -299,7 +300,7 @@
 			if (!replaceYN) {
 				// 스팸 체크와 메시지 타입 체크 각각 한 번만 수행
 				if (!hasPerformedSpamCheck) {
-					checkSpamAndSetStatus(mjonMsgVO, smsSpamChkTxt, resultSpamTxt);
+					checkSpamAndSetStatus(mjonMsgVO, smsSpamChkTxt, resultSpamTxt, isNotified);
 					hasPerformedSpamCheck = true;
 				}
 				if (!hasPerformedMsgType) {
@@ -315,7 +316,7 @@
 			{// 치환 문자인 경우
 				// 스팸 체크는 `spamChkSize`만큼 반복 수행
 				if (sampleCounter < spamChkSize && !"Y".equals(mjonMsgVO.getSpamStatus())) {
-					checkSpamAndSetStatus(mjonMsgVO, smsSpamChkTxt, resultSpamTxt);
+					checkSpamAndSetStatus(mjonMsgVO, smsSpamChkTxt, resultSpamTxt, isNotified);
 					sampleCounter++;
 				}
 
@@ -419,7 +420,10 @@
 		sendVO.setFileCnt(mjonMsgVO.getFileCnt());
 	}
 
-	private static void checkSpamAndSetStatus(MjonMsgVO mjonMsgVO, String personalizedSmsTxt, List<String> resultSpamTxt) throws Exception {
+	private static void checkSpamAndSetStatus(MjonMsgVO mjonMsgVO, String personalizedSmsTxt, List<String> resultSpamTxt, boolean isNotified) throws Exception {
+		
+
+		mjonMsgVO.setSpamStatus("N");
 		
 		if(StringUtils.isNotEmpty(personalizedSmsTxt)) {
 			
@@ -442,21 +446,12 @@
 					spmFilterTxt = StringUtil.getWordLeft(spmFilterTxt.trim(), 1); 	
 					
 				}
-				log.info(" + spmFilterTxt :: [{}]", spmFilterTxt);
-				log.info(" + resultParser :: [{}]", resultParser);
 				
-	//			mjonMsgVO.setSpamKeyword(spmFilterTxt);
 				mjonMsgVO.setSpamStatus("Y");
-				mjonMsgVO.setDelayYn("Y");
+				if(isNotified) {
+					mjonMsgVO.setDelayYn("Y");
+				}
 			}
-			else 
-			{
-				mjonMsgVO.setSpamStatus("N");
-			}
-			
-		}else {
-			mjonMsgVO.setSpamStatus("N");
-			
 		}
 	}
 
src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
@@ -545,7 +545,7 @@
 
 		// 알림 발송
 		if (!isNotificationAllowed) {
-			getAdminSandSlack(mjonMsgVO);
+//			getAdminSandSlack(mjonMsgVO);
 			return true; // 알림 발송 성공
 		}
 
@@ -562,6 +562,7 @@
 		MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
 		msgAlarmSetVO.setUseYn("Y");
 		msgAlarmSetVO.setFirstIndex(0);
+		msgAlarmSetVO.setRecordCountPerPage(10000);
 		return msgHolidayService.selectAlarmSettingList(msgAlarmSetVO);
 	}
 
@@ -572,7 +573,7 @@
 
 		MsgHolidayVO msgHolidayVO = new MsgHolidayVO();
 		msgHolidayVO.setFirstIndex(0);
-		msgHolidayVO.setRecordCountPerPage(100);
+		msgHolidayVO.setRecordCountPerPage(10000);
 		msgHolidayVO.setSearchHoliYear(Integer.toString(year));
 		return msgHolidayService.selectMsgHolidayList(msgHolidayVO);
 	}
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
@@ -20,6 +20,7 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
@@ -1280,7 +1281,7 @@
 			searchVO.setSearchSortCnd("FRST_REGIST_PNTTM");
 			searchVO.setSearchSortOrd("desc");
 		}
-		
+		System.out.println("searchVO.getCancelResultYn() :: "+ searchVO.getCancelResultYn());
 		
 		/*
 		 * 2024.01.26 우영두 변경
@@ -1293,6 +1294,13 @@
 	   		searchVO.setNtceBgnde(beforeMonthDay);
 	   		searchVO.setNtceEndde(toDay); 
 	   	}		
+	   	
+	   	
+	   	// 조건 값이 없을때 미처리 상태 노출
+	   	if(StringUtils.isEmpty(searchVO.getCancelResultYn())) {
+	   		searchVO.setCancelResultYn("N");
+	   	}
+	   	
 
 	   	List<MjonMsgVO> resultList = new ArrayList<MjonMsgVO>();
 		resultList = mjonMsgService.selectMjonHoliMsgList(searchVO);
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
@@ -4054,9 +4054,15 @@
 //		UserManageVO userManageVO = MjonCommon.getUserManageInfo(userId);
 		
 		
+		
+
+		// 스팸 및 스미싱 의심이면 slack 알림
+		boolean isNotified = mjonCommon.processUserAndCheckSms(mjonMsgVO, userId);
+		
+		
 		// 스팸관련 키워드 select
 		List<String> resultSpamTxt = mjonMsgDataService.selectSpamKeywordList();
-
+		
 		/**
 		 * @methodName : populateReplacementLists
 		 * @author : 이호영
@@ -4066,7 +4072,7 @@
 		 *              전송사 코드 셋팅
 		 */
 		if (!MsgSendUtils.populateSendLists(mjonMsgVO, mjonMsgSendVOList, statusResponse, resultSpamTxt,
-				agentSendCounts, sendRateList)) {
+				agentSendCounts, sendRateList, isNotified)) {
 			;
 			// 문자 치환 후 전송 문자 길이를 초과하였습니다.
 			// 문자 치환 중 오류가 발생하였습니다.
@@ -4153,13 +4159,13 @@
 		log.debug("총 단가 합계: [{}]", mjonMsgVO.getTotPrice());
 //		
 
-		// 스팸 및 스미싱 의심이면 slack 알림
-		boolean isNotified = mjonCommon.processUserAndCheckSms(mjonMsgVO, userId);
 
 		if (isNotified) {
 			System.out.println("스미싱 알림이 처리되었습니다.");
-		} else {
+			mjonCommon.getAdminSandSlack(mjonMsgVO);
+		} else if("Y".equalsIgnoreCase(mjonMsgVO.getSpamStatus())){
 			System.out.println("알림 조건을 충족하지 않았습니다.");
+			mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
 		}
 
 		statusResponse.setStatus(HttpStatus.OK);
@@ -4191,6 +4197,11 @@
 
 		mjonMsgVO.setMsgGroupId(mjonMsgSendVO.getMsgGroupId());
 		mjonMsgVO.setMsgType(mjonMsgSendVO.getMsgType());
+		
+		
+		//test - 스미싱의심 [발송승인, 발송취소] 조건
+		// mjonMsgVO.setDelayYn("N");
+		
 		mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
 
 	}
Add a comment
List