알림톡 예약관리 쿼리 개선

This commit is contained in:
itn 2023-06-19 10:54:06 +09:00
parent 1dac2a491a
commit 81c999966c
3 changed files with 263 additions and 224 deletions

View File

@ -20,6 +20,7 @@ import itn.com.cmm.ComDefaultCodeVO;
import itn.com.cmm.LoginVO; import itn.com.cmm.LoginVO;
import itn.com.cmm.service.EgovCmmUseService; import itn.com.cmm.service.EgovCmmUseService;
import itn.com.cmm.service.FileVO; import itn.com.cmm.service.FileVO;
import itn.com.cmm.util.MJUtil;
import itn.com.cmm.util.StringUtil; import itn.com.cmm.util.StringUtil;
import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO; import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATService; import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATService;
@ -231,7 +232,15 @@ public class MjonKakaoATController {
kakaoVO.setReserveCYn("N");//예약취소건은 제외하기 kakaoVO.setReserveCYn("N");//예약취소건은 제외하기
// 문자발송 완료건은 모두 보이도록 처리 // 문자발송 완료건은 모두 보이도록 처리
//kakaoVO.setMsgType("8"); //kakaoVO.setMsgType("8");
resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteList(kakaoVO);
// 기간검색 설정
String toDay = MJUtil.getTodayDate(); //오늘
String beforeMonthDay = MJUtil.getBefore1MonthDate(); //한달
if (null == kakaoVO.getNtceBgnde() || kakaoVO.getNtceBgnde().equals("")) {
kakaoVO.setNtceBgnde(beforeMonthDay);
}
resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(kakaoVO);
model.addAttribute("resultList", resultList); model.addAttribute("resultList", resultList);

View File

@ -78,7 +78,6 @@ import itn.let.cop.bbs.service.BoardVO;
import itn.let.fax.user.service.FaxGroupDataVO; import itn.let.fax.user.service.FaxGroupDataVO;
import itn.let.fax.user.service.FaxService; import itn.let.fax.user.service.FaxService;
import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO; import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATSentVO;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATService; import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATService;
import itn.let.kakao.kakaoComm.KakaoReturnVO; import itn.let.kakao.kakaoComm.KakaoReturnVO;
import itn.let.kakao.kakaoComm.KakaoVO; import itn.let.kakao.kakaoComm.KakaoVO;
@ -1168,8 +1167,8 @@ public class EgovUserManageController {
* 최근 알리톡/친구톡 전송 내역 * 최근 알리톡/친구톡 전송 내역
* */ * */
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만 //최근 발송 문자 내용 불러오기 - 최근 3개 내역만
List<MjonKakaoATSentVO> mjonKakaoATSentList = mjonKakaoATService.selectMberKakaoATSentLatestList(userId); //List<MjonKakaoATSentVO> mjonKakaoATSentList = mjonKakaoATService.selectMberKakaoATSentLatestList(userId);
model.addAttribute("mjonKakaoATSentList", mjonKakaoATSentList); //model.addAttribute("mjonKakaoATSentList", mjonKakaoATSentList);
} }
{ {

View File

@ -208,7 +208,6 @@
LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI
ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY
AND MKPI.USER_ID = M.USER_ID AND MKPI.USER_ID = M.USER_ID
AND MKPI.DELETE_YN = 'N'
LEFT JOIN LETTNGNRLMBER LTM LEFT JOIN LETTNGNRLMBER LTM
ON M.USER_ID = LTM.MBER_ID ON M.USER_ID = LTM.MBER_ID
LEFT JOIN BIZ_LOG BL LEFT JOIN BIZ_LOG BL
@ -519,7 +518,6 @@
LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI
ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY
AND MKPI.USER_ID = M.USER_ID AND MKPI.USER_ID = M.USER_ID
AND MKPI.DELETE_YN = 'N'
LEFT JOIN LETTNGNRLMBER LTM LEFT JOIN LETTNGNRLMBER LTM
ON M.USER_ID = LTM.MBER_ID ON M.USER_ID = LTM.MBER_ID
LEFT JOIN BIZ_LOG BL LEFT JOIN BIZ_LOG BL
@ -1029,50 +1027,86 @@
<select id="mjonKakaoATDAO.selectReserveMjonKakaoATGroupList" parameterClass="kakaoVO" resultClass="kakaoVO"> <select id="mjonKakaoATDAO.selectReserveMjonKakaoATGroupList" parameterClass="kakaoVO" resultClass="kakaoVO">
/* mjonKakaoATDAO.selectMjonKakaoATGroupList - 알림톡 예약조회 */ /* mjonKakaoATDAO.selectMjonKakaoATGroupList - 알림톡 예약조회 */
SELECT SELECT
COUNT(M.USER_ID) OVER() AS totCnt , M2.totCnt ,
M.USER_ID AS userId , M2.userId ,
MSG_GROUP_ID AS msgGroupId , M2.msgGroupId ,
MSG_GROUP_CNT AS msgGroupCnt , M2.msgGroupCnt ,
SMS_TXT AS smsTxt , M2.smsTxt ,
M.SUBJECT AS subject , M2.subject ,
DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate , M2.regDate ,
DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate , M2.reqDate ,
DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate , M2.rsltDate ,
CALL_FROM AS callFrom , M2.callFrom ,
CALL_TO AS callTo , M2.callTo ,
TOT_PRICE AS totPrice , M2.totPrice ,
EACH_PRICE AS eachPrice , M2.eachPrice ,
CUR_STATE AS curState , M2.curState ,
RSLT_CODE AS rsltCode , M2.rsltCode ,
RSLT_CODE2 AS rsltCode2 , M2.rsltCode2 ,
IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode , M2.orderByrsltCode ,
DEL_FLAG AS delFlag , M2.delFlag ,
M.MSG_TYPE AS msgType , M2.msgType ,
FILE_CNT AS fileCnt , M2.fileCnt ,
AGENT_CODE AS agentCode , M2.agentCode ,
RESERVE_YN AS reserveYn , M2.reserveYn ,
RESERVE_C_YN AS reserveCYn , M2.reserveCYn ,
CANCELDATE AS cancelDate , M2.cancelDate ,
msgTypeName AS msgTypeName , M2.msgTypeName ,
orderByCode AS orderByCode , M2.orderByCode ,
RESULT AS msgResult , M2.msgResult ,
MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey , M2.msgNoticetalkSenderKey ,
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , M2.msgNoticetalkTmpKey ,
MKPI.YELLOW_ID AS yellowId , M2.yellowId ,
LTM.MBER_NM AS userNm , M2.userNm ,
successCount, ( SELECT COUNT(0)
atSuccessCount, FROM MJ_MSG_DATA C
ftSuccessCount, WHERE C.DEL_FLAG = 'N'
atFailCount, AND C.RESERVE_C_YN = 'N'
ftFailCount, AND C.MSG_GROUP_ID = M2.msgGroupId
BIZ_UMID AS bizUmid, AND C.RSLT_CODE = '7000'
BL.CALL_STATUS AS callStatus, ) AS successCount ,
M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn, ( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = M2.msgGroupId
AND C.RSLT_CODE = '7000'
AND C.MSG_TYPE = '8'
) AS atSuccessCount ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = M2.msgGroupId
AND C.RSLT_CODE != '7000'
AND C.MSG_TYPE = '8'
) AS atFailCount ,
<!-- ( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = M2.msgGroupId
AND C.RSLT_CODE = '7000'
AND C.MSG_TYPE = '9'
) AS ftSuccessCount ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = M2.msgGroupId
AND C.RSLT_CODE != '7000'
AND C.MSG_TYPE = '9'
) AS ftFailCount ,-->
'0' AS ftSuccessCount,
'0' AS ftFailCount,
M2.bizUmid,
M2.callStatus,
M2.bizKakaoResendYn,
( SELECT COUNT(0) ( SELECT COUNT(0)
FROM BIZ_LOG BL1, FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1 MJ_MSG_DATA MMD1
WHERE M.BIZ_KAKAO_RESEND_YN = 'Y' WHERE M2.bizKakaoResendYn = 'Y'
AND M.MSG_GROUP_ID = MMD1.MSG_GROUP_ID AND M2.msgGroupId = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID AND MMD1.BIZ_UMID = BL1.CMID
AND ( AND (
CASE CASE
@ -1084,8 +1118,8 @@
( SELECT COUNT(0) ( SELECT COUNT(0)
FROM BIZ_LOG BL1, FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1 MJ_MSG_DATA MMD1
WHERE M.BIZ_KAKAO_RESEND_YN = 'Y' WHERE M2.bizKakaoResendYn = 'Y'
AND M.MSG_GROUP_ID = MMD1.MSG_GROUP_ID AND M2.msgGroupId = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID AND MMD1.BIZ_UMID = BL1.CMID
AND ( AND (
CASE CASE
@ -1095,144 +1129,110 @@
END ) = 'F' END ) = 'F'
) kakaoResendFailCount ) kakaoResendFailCount
FROM ( FROM (
SELECT MG.USER_ID , SELECT
MG.MSG_GROUP_ID , COUNT(M.USER_ID) OVER() AS totCnt ,
MG.MSG_GROUP_CNT , M.USER_ID AS userId ,
MG.SMS_TXT , MSG_GROUP_ID AS msgGroupId ,
MG.SUBJECT , MSG_GROUP_CNT AS msgGroupCnt ,
MG.REGDATE , SMS_TXT AS smsTxt ,
MG.REQ_DATE , M.SUBJECT AS subject ,
MD.RSLT_DATE , DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate ,
MG.CALL_FROM , DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate ,
MG.TOT_PRICE , DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate ,
MG.EACH_PRICE , CALL_FROM AS callFrom ,
MG.DEL_FLAG , CALL_TO AS callTo ,
MG.MSG_TYPE , TOT_PRICE AS totPrice ,
MG.FILE_CNT , EACH_PRICE AS eachPrice ,
MG.AGENT_CODE , CUR_STATE AS curState ,
MG.RESERVE_YN , RSLT_CODE AS rsltCode ,
MG.RESERVE_C_YN , RSLT_CODE2 AS rsltCode2 ,
MG.CANCELDATE , IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode ,
MD.MSG_SEQ , DEL_FLAG AS delFlag ,
MD.CALL_TO , M.MSG_TYPE AS msgType ,
MD.CUR_STATE , FILE_CNT AS fileCnt ,
MD.RSLT_CODE , AGENT_CODE AS agentCode ,
MD.RSLT_CODE2 , RESERVE_YN AS reserveYn ,
CASE RESERVE_C_YN AS reserveCYn ,
WHEN MG.MSG_TYPE = '8' CANCELDATE AS cancelDate ,
THEN '알림톡' msgTypeName AS msgTypeName ,
WHEN MG.MSG_TYPE = '9' orderByCode AS orderByCode ,
THEN '친구톡' RESULT AS msgResult ,
END msgTypeName , MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey ,
CASE MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey ,
WHEN MG.MSG_TYPE = '8' MKPI.YELLOW_ID AS yellowId ,
THEN '1' LTM.MBER_NM AS userNm ,
ELSE '2' BIZ_UMID AS bizUmid,
END orderByCode , BL.CALL_STATUS AS callStatus,
( M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn
FROM (
SELECT MG.USER_ID ,
MG.MSG_GROUP_ID ,
MG.MSG_GROUP_CNT ,
MG.SMS_TXT ,
MG.SUBJECT ,
MG.REGDATE ,
MG.REQ_DATE ,
MD.RSLT_DATE ,
MG.CALL_FROM ,
MG.TOT_PRICE ,
MG.EACH_PRICE ,
MG.DEL_FLAG ,
MG.MSG_TYPE ,
MG.FILE_CNT ,
MG.AGENT_CODE ,
MG.RESERVE_YN ,
MG.RESERVE_C_YN ,
MG.CANCELDATE ,
MD.MSG_SEQ ,
MD.CALL_TO ,
MD.CUR_STATE ,
MD.RSLT_CODE ,
MD.RSLT_CODE2 ,
CASE CASE
WHEN MD.RSLT_CODE = '7000' WHEN MG.MSG_TYPE = '8'
THEN 'S' THEN '알림톡'
WHEN (MD.RSLT_CODE IS NULL AND MD.SENT_DATE IS NULL AND MD.RSLT_DATE IS NULL) WHEN MG.MSG_TYPE = '9'
THEN 'W' THEN '친구톡'
ELSE 'F' END msgTypeName ,
END CASE
) AS result , WHEN MG.MSG_TYPE = '8'
( SELECT COUNT(0) THEN '1'
FROM MJ_MSG_DATA C ELSE '2'
WHERE C.DEL_FLAG = 'N' END orderByCode ,
AND C.RESERVE_C_YN = 'N' (
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID CASE
AND C.RSLT_CODE = '7000' WHEN MD.RSLT_CODE = '7000'
) AS successCount , THEN 'S'
( SELECT COUNT(0) WHEN (MD.RSLT_CODE IS NULL AND MD.SENT_DATE IS NULL AND MD.RSLT_DATE IS NULL)
FROM MJ_MSG_DATA C THEN 'W'
WHERE C.DEL_FLAG = 'N' ELSE 'F'
AND C.RESERVE_C_YN = 'N' END
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID ) AS result ,
AND C.RSLT_CODE = '7000' MSG_NOTICETALK_SENDER_KEY ,
AND C.MSG_TYPE = '8' MSG_NOTICETALK_TMP_KEY,
) AS atSuccessCount , MD.BIZ_UMID,
( SELECT COUNT(0) MD.BIZ_KAKAO_RESEND_YN
FROM MJ_MSG_DATA C FROM MJ_MSG_DATA MD ,
WHERE C.DEL_FLAG = 'N' MJ_MSG_GROUP_DATA MG
AND C.RESERVE_C_YN = 'N' WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID AND IFNULL(MG.DEL_FLAG, 'N') = 'N'
AND C.RSLT_CODE = '7000' AND MD.DEL_FLAG = 'N'
AND C.MSG_TYPE = '9' <isNotEmpty property="userId">
) AS ftSuccessCount , AND MG.USER_ID = #userId#
( SELECT COUNT(0) </isNotEmpty>
FROM MJ_MSG_DATA C AND MG.DEL_FLAG ='N'
WHERE C.DEL_FLAG = 'N' AND MG.RESERVE_C_YN = 'N'
AND C.RESERVE_C_YN = 'N' AND MG.MSG_TYPE = '8'
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID )M
AND C.RSLT_CODE != '7000' LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI
AND C.MSG_TYPE = '8' ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY
) AS atFailCount , AND MKPI.USER_ID = M.USER_ID
( SELECT COUNT(0) LEFT JOIN LETTNGNRLMBER LTM
FROM MJ_MSG_DATA C ON M.USER_ID = LTM.MBER_ID
WHERE C.DEL_FLAG = 'N' LEFT JOIN BIZ_LOG BL
AND C.RESERVE_C_YN = 'N' ON M.BIZ_UMID = BL.CMID
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID WHERE 1=1
AND C.RSLT_CODE != '7000' <isNotEmpty property="searchKeyword">
AND C.MSG_TYPE = '9'
) AS ftFailCount ,
MSG_NOTICETALK_SENDER_KEY ,
MSG_NOTICETALK_TMP_KEY,
MD.BIZ_UMID,
MD.BIZ_KAKAO_RESEND_YN
FROM MJ_MSG_DATA MD ,
MJ_MSG_GROUP_DATA MG
WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND IFNULL(MG.DEL_FLAG, 'N') = 'N'
AND MD.DEL_FLAG = 'N'
<isNotEmpty property="userId">
AND MG.USER_ID = #userId#
</isNotEmpty>
AND MG.DEL_FLAG ='N'
AND MG.RESERVE_C_YN = 'N'
AND MG.MSG_TYPE = '8'
)M
LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI
ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY
AND MKPI.USER_ID = M.USER_ID
AND MKPI.DELETE_YN = 'N'
LEFT JOIN LETTNGNRLMBER LTM
ON M.USER_ID = LTM.MBER_ID
LEFT JOIN BIZ_LOG BL
ON M.BIZ_UMID = BL.CMID
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="" >
AND (
M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
)
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual>
<isEqual property="searchCondition" compareValue="3">
AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual>
<isEqual property="searchCondition2" compareValue="" >
AND M.RESERVE_YN IN ('Y','N')
</isEqual>
<isEqual property="searchCondition2" compareValue="N">
AND M.RESERVE_YN = 'N'
</isEqual>
<isEqual property="searchCondition2" compareValue="Y">
AND M.RESERVE_YN = 'Y'
</isEqual>
</isNotEmpty>
<isEmpty property="searchKeyword">
<isNotEmpty property="searchCondition">
<isEqual property="searchCondition" compareValue="" > <isEqual property="searchCondition" compareValue="" >
AND ( AND (
M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%') M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
@ -1249,8 +1249,7 @@
<isEqual property="searchCondition" compareValue="3"> <isEqual property="searchCondition" compareValue="3">
AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%') AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual> </isEqual>
</isNotEmpty>
<isNotEmpty property="searchCondition2">
<isEqual property="searchCondition2" compareValue="" > <isEqual property="searchCondition2" compareValue="" >
AND M.RESERVE_YN IN ('Y','N') AND M.RESERVE_YN IN ('Y','N')
</isEqual> </isEqual>
@ -1261,45 +1260,77 @@
AND M.RESERVE_YN = 'Y' AND M.RESERVE_YN = 'Y'
</isEqual> </isEqual>
</isNotEmpty> </isNotEmpty>
</isEmpty>
<isEmpty property="searchKeyword">
<isNotEmpty property="searchCondition">
<isNotEmpty property="msgType"> <isEqual property="searchCondition" compareValue="" >
<isEqual property="msgType" compareValue="8"> AND (
AND M.MSG_TYPE = '8' M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
</isEqual> OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
<isEqual property="msgType" compareValue="9"> OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
AND M.MSG_TYPE = '9' )
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual>
<isEqual property="searchCondition" compareValue="3">
AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchCondition2">
<isEqual property="searchCondition2" compareValue="" >
AND M.RESERVE_YN IN ('Y','N')
</isEqual>
<isEqual property="searchCondition2" compareValue="N">
AND M.RESERVE_YN = 'N'
</isEqual>
<isEqual property="searchCondition2" compareValue="Y">
AND M.RESERVE_YN = 'Y'
</isEqual>
</isNotEmpty>
</isEmpty>
<isNotEmpty property="msgType">
<isEqual property="msgType" compareValue="8">
AND M.MSG_TYPE = '8'
</isEqual>
<isEqual property="msgType" compareValue="9">
AND M.MSG_TYPE = '9'
</isEqual>
</isNotEmpty>
<isEmpty property="msgType">
AND M.MSG_TYPE IN ('8','9')
</isEmpty>
<isNotEmpty property="ntceBgnde">
<![CDATA[
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#ntceBgnde#, '%Y-%m-%d')
]]>
</isNotEmpty>
<isNotEmpty property="ntceEndde">
<![CDATA[
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#ntceEndde#, '%Y-%m-%d')
]]>
</isNotEmpty>
GROUP BY MSG_GROUP_ID
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
<isEqual property="searchSortCnd" compareValue="curState">
, curState $searchSortOrd$
, orderByrsltCode
</isEqual> </isEqual>
<isNotEqual property="searchSortCnd" compareValue="curState">
,$searchSortCnd$
</isNotEqual>
</isNotEmpty> </isNotEmpty>
<isEmpty property="msgType"> <isNotEmpty property="searchSortOrd">
AND M.MSG_TYPE IN ('8','9') $searchSortOrd$
</isEmpty>
<isNotEmpty property="ntceBgnde">
<![CDATA[
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#ntceBgnde#, '%Y-%m-%d')
]]>
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="ntceEndde"> LIMIT #recordCountPerPage# OFFSET #firstIndex#
<![CDATA[ ) M2
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#ntceEndde#, '%Y-%m-%d')
]]>
</isNotEmpty>
GROUP BY MSG_GROUP_ID
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
<isEqual property="searchSortCnd" compareValue="curState">
, curState $searchSortOrd$
, orderByrsltCode
</isEqual>
<isNotEqual property="searchSortCnd" compareValue="curState">
,$searchSortCnd$
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select> </select>
<!-- 알림톡 상세 리스트 조회 --> <!-- 알림톡 상세 리스트 조회 -->