wyh 2024-11-06
문자발송 실패건에 대한 환불 대상 리스트 스케줄 쿼리 추가
@3cc2f03f16e630fd46dc289254d66d186b273ebe
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
@@ -260,11 +260,17 @@
 	
 	//문자검색 전송 실패 리스트 불러오기
 	@SuppressWarnings("unchecked")
-	public List<MjonMsgVO> selectMsgSentFailList(MjonMsgVO mjonMsgVO)throws Exception{
+	public List<MjonMsgVO> selectMsgSentFailList()throws Exception{
 
-		return (List<MjonMsgVO>) list("MjonMsgDataDAO.selectMsgSentFailList", mjonMsgVO);
+		return (List<MjonMsgVO>) list("MjonMsgDataDAO.selectMsgSentFailList");
 	}
+	
+	@SuppressWarnings("unchecked")
+	public List<MjonMsgVO> selectMsgSentFailSchedulerList(MjonMsgVO mjonMsgVO)throws Exception{
 
+		return (List<MjonMsgVO>) list("MjonMsgDataDAO.selectMsgSentFailSchedulerList", mjonMsgVO);
+	}
+	
 	@SuppressWarnings("unchecked")
 	public List<MjonMsgVO> selectMsgSentFailListOneByDay()throws Exception{
 
src/main/java/itn/let/schdlr/service/SchedulerUtil.java
--- src/main/java/itn/let/schdlr/service/SchedulerUtil.java
+++ src/main/java/itn/let/schdlr/service/SchedulerUtil.java
@@ -486,7 +486,7 @@
 			//schdlrManageService.msgFailPayBack();
 			MjonMsgVO mjonMsgVO = new MjonMsgVO();
 			mjonMsgVO.setRecordCountPerPage(1000);
-			List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailList(mjonMsgVO); 
+			List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailSchedulerList(mjonMsgVO); 
 			long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
 	        int batchSize = 300;
 	        int totalSize = msgFailList.size();
src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
--- src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
+++ src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
@@ -439,7 +439,7 @@
 			MjonMsgVO mjonMsgVO = new MjonMsgVO();
 			mjonMsgVO.setRecordCountPerPage(limitCout);
 			
-			List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailList(mjonMsgVO); 
+			List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailSchedulerList(mjonMsgVO); 
 			long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
 	        int batchSize = 300;
 	        int totalSize = msgFailList.size();
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
@@ -3900,9 +3900,60 @@
 		WHERE SEARCH_WORD = #searchKeyword#
 	
 	</update>
+	<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들 -->
+	<select id="MjonMsgDataDAO.selectMsgSentFailList">
+		
+		SELECT USER_ID                              AS userId,
+		         MSG_GROUP_ID                         AS msgGroupId,
+		         MSG_SEQ                              AS msgSeq,
+		         USERDATA                             AS userData,
+		         REFUND_YN                            AS refundYn,
+		         RSLT_CODE                            AS rsltCode,
+		         RSLT_CODE2                           AS rsltCode2,
+		         AGENT_CODE                           AS agentCode,
+		         DATE_FORMAT(SENT_DATE,'%Y-%m-%d %T') AS sentDate,
+		         DATE_FORMAT(RSLT_DATE,'%Y-%m-%d %T') AS rsltDate
+		  FROM   MJ_MSG_DATA MMD
+		         INNER JOIN LETTNGNRLMBER MB
+		         ON     MMD.USER_ID = MB.MBER_ID
+		  WHERE  1=1	  
+		  AND	 MMD.SENT_DATE > date_add(now(), interval -7 day)
+		  AND	 MMD.CUR_STATE          = '3'
+		  AND    MMD.REFUND_YN          = 'N'
+		  AND    MMD.RESERVE_C_YN       = 'N'
+		  AND    MMD.MSG_TYPE IN ('4','6')
+		  AND 	 MMD.USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
+		  AND
+			(CASE
+				WHEN MMD.AGENT_CODE = '01' AND ( MMD.RSLT_CODE = '100' AND (MMD.RSLT_CODE2 = '0'))
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '02' AND (MMD.RSLT_CODE = '0')
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '03' AND (MMD.RSLT_CODE = '100' OR MMD.RSLT_CODE = '101' OR MMD.RSLT_CODE = '110' OR MMD.RSLT_CODE = '800')
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '04' AND (MMD.RSLT_CODE = '4100' OR MMD.RSLT_CODE = '6600')
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '05' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '07' AND (MMD.RSLT_CODE = '6' OR MMD.RSLT_CODE = '1000')
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '08' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
+				THEN 'S'
+				WHEN MMD.AGENT_CODE = '09' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
+				THEN 'S'
+				WHEN (
+					MMD.RSLT_CODE IS NULL
+					AND MMD.RSLT_CODE2	IS NULL
+					AND MMD.SENT_DATE 	IS NULL
+					AND MMD.RSLT_DATE	IS NULL
+				)
+				THEN 'W'
+				ELSE 'F'
+			END) IN ('F')
+	</select>
 	
 	<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들 -->
-	<select id="MjonMsgDataDAO.selectMsgSentFailList" resultClass="mjonMsgVO">
+	<select id="MjonMsgDataDAO.selectMsgSentFailSchedulerList" resultClass="mjonMsgVO">
 		
 		SELECT USER_ID                              AS userId,
 		         MSG_GROUP_ID                         AS msgGroupId,
Add a comment
List