발송결과 문자 휴대폰 대쉬 함수 관련 속도저하 수정

This commit is contained in:
itn 2023-10-23 12:31:15 +09:00
parent 6599d71b7f
commit eb5636017c
2 changed files with 779 additions and 649 deletions

View File

@ -194,163 +194,188 @@
</select> </select>
<select id="MjonReservMsgDAO.selectAllResvMsgList" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO"> <select id="MjonReservMsgDAO.selectAllResvMsgList" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO">
SELECT M2.totMsgCnt,
SELECT COUNT(USER_ID) OVER() AS totMsgCnt, M2.userId,
USER_ID AS userId, M2.msgGroupId,
MSG_GROUP_ID AS msgGroupId, M2.msgGroupCnt,
MSG_GROUP_CNT AS msgGroupCnt, M2.smsTxt,
SMS_TXT AS smsTxt, M2.subject,
SUBJECT AS subject, M2.regdate,
DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regdate, M2.reqdate,
DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqdate, M2.diffMin,
TIMESTAMPDIFF(MINUTE,DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) AS diffMin, M2.callFrom,
CALL_FROM AS callFrom, FN_GETHYPHEN(M2.callFrom) AS callFromComma,
FN_GETHYPHEN(CALL_FROM) AS callFromComma, M2.totPrice,
TOT_PRICE AS totPrice, M2.eachPrice,
EACH_PRICE AS eachPrice, M2.curState,
CUR_STATE AS curState, M2.rsltCode,
RSLT_CODE AS rsltCode, M2.rsltCode2,
RSLT_CODE2 AS rsltCode2, M2.delFlag,
DEL_FLAG AS delFlag, M2.msgType,
MSG_TYPE AS msgType, M2.fileCnt,
FILE_CNT AS fileCnt, M2.agentCode,
AGENT_CODE AS agentCode, M2.reserveCYn,
RESERVE_C_YN AS reserveCYn, M2.cancelDate,
CANCELDATE AS cancelDate, M2.sendKind,
SEND_KIND as sendKind, M2.shipmentStatus,
CASE M2.orderByCode
WHEN RESERVE_C_YN = 'Y' FROM (
THEN '예약취소' SELECT COUNT(USER_ID) OVER() AS totMsgCnt,
WHEN CUR_STATE = '0' USER_ID AS userId,
THEN '발송대기' MSG_GROUP_ID AS msgGroupId,
WHEN CUR_STATE = '1' MSG_GROUP_CNT AS msgGroupCnt,
THEN '발송중' SMS_TXT AS smsTxt,
WHEN CUR_STATE = '2' SUBJECT AS subject,
THEN '결과대기' DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regdate,
WHEN CUR_STATE = '3' DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqdate,
THEN '발송완료' TIMESTAMPDIFF(MINUTE,DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) AS diffMin,
ELSE '' CALL_FROM AS callFrom,
END shipmentStatus, TOT_PRICE AS totPrice,
CASE EACH_PRICE AS eachPrice,
WHEN A.MSG_TYPE = '6' AND A.FILE_CNT > 0 CUR_STATE AS curState,
THEN '3' RSLT_CODE AS rsltCode,
WHEN A.MSG_TYPE = '6' AND A.FILE_CNT = 0 RSLT_CODE2 AS rsltCode2,
THEN '2' DEL_FLAG AS delFlag,
ELSE '1' MSG_TYPE AS msgType,
END orderByCode FILE_CNT AS fileCnt,
FROM ( SELECT AGENT_CODE AS agentCode,
MGD.USER_ID, RESERVE_C_YN AS reserveCYn,
MGD.MSG_GROUP_ID, CANCELDATE AS cancelDate,
MGD.MSG_GROUP_CNT, SEND_KIND as sendKind,
MD.SMS_TXT, CASE
MGD.SUBJECT, WHEN RESERVE_C_YN = 'Y'
MGD.REGDATE, THEN '예약취소'
MGD.REQ_DATE, WHEN CUR_STATE = '0'
MGD.CALL_FROM, THEN '발송대기'
MGD.TOT_PRICE, WHEN CUR_STATE = '1'
MGD.EACH_PRICE, THEN '발송중'
MGD.DEL_FLAG, WHEN CUR_STATE = '2'
MGD.MSG_TYPE, THEN '결과대기'
MGD.FILE_CNT, WHEN CUR_STATE = '3'
MGD.AGENT_CODE, THEN '발송완료'
MGD.RESERVE_C_YN, ELSE ''
MGD.CANCELDATE, END shipmentStatus,
MD.CUR_STATE, CASE
MD.RSLT_CODE, WHEN A.MSG_TYPE = '6' AND A.FILE_CNT > 0
MD.RSLT_CODE2, THEN '3'
MGD.SEND_KIND WHEN A.MSG_TYPE = '6' AND A.FILE_CNT = 0
FROM mj_msg_data MD THEN '2'
INNER JOIN MJ_MSG_GROUP_DATA MGD ELSE '1'
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID END orderByCode
AND MGD.USER_ID = #userId# FROM ( SELECT
AND MGD.RESERVE_YN ='Y' MGD.USER_ID,
AND MGD.DEL_FLAG ='N' MGD.MSG_GROUP_ID,
WHERE MD.USER_ID = #userId# MGD.MSG_GROUP_CNT,
) MD.SMS_TXT,
A MGD.SUBJECT,
WHERE 1=1 MGD.REGDATE,
<isNotEmpty property="stateType"> MGD.REQ_DATE,
<isEqual property="stateType" compareValue="all"> MGD.CALL_FROM,
AND CUR_STATE IN ('0','1','2','3') MGD.TOT_PRICE,
</isEqual> MGD.EACH_PRICE,
<isEqual property="stateType" compareValue="ready"> MGD.DEL_FLAG,
AND CUR_STATE = '0' MGD.MSG_TYPE,
AND RESERVE_C_YN = 'N' MGD.FILE_CNT,
</isEqual> MGD.AGENT_CODE,
<isEqual property="stateType" compareValue="complete"> MGD.RESERVE_C_YN,
AND CUR_STATE IN ('2','3') MGD.CANCELDATE,
AND RESERVE_C_YN = 'N' MD.CUR_STATE,
</isEqual> MD.RSLT_CODE,
<isEqual property="stateType" compareValue="cancel"> MD.RSLT_CODE2,
AND RESERVE_C_YN = 'Y' MGD.SEND_KIND
</isEqual> FROM mj_msg_data MD
</isNotEmpty> INNER JOIN MJ_MSG_GROUP_DATA MGD
<isNotEmpty property="searchMsgType"> ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
<isEqual property="searchMsgType" compareValue="S"> AND MGD.USER_ID = #userId#
AND MSG_TYPE = '4' AND MGD.RESERVE_YN ='Y'
</isEqual> AND MGD.DEL_FLAG ='N'
<isEqual property="searchMsgType" compareValue="L"> WHERE MD.USER_ID = #userId#
AND MSG_TYPE = '6' )
AND FILE_CNT = '0' A
</isEqual> WHERE 1=1
<isEqual property="searchMsgType" compareValue="M"> <isNotEmpty property="stateType">
<![CDATA[ <isEqual property="stateType" compareValue="all">
AND CUR_STATE IN ('0','1','2','3')
</isEqual>
<isEqual property="stateType" compareValue="ready">
AND CUR_STATE = '0'
AND RESERVE_C_YN = 'N'
</isEqual>
<isEqual property="stateType" compareValue="complete">
AND CUR_STATE IN ('2','3')
AND RESERVE_C_YN = 'N'
</isEqual>
<isEqual property="stateType" compareValue="cancel">
AND RESERVE_C_YN = 'Y'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchMsgType">
<isEqual property="searchMsgType" compareValue="S">
AND MSG_TYPE = '4'
</isEqual>
<isEqual property="searchMsgType" compareValue="L">
AND MSG_TYPE = '6' AND MSG_TYPE = '6'
AND FILE_CNT > '0' AND FILE_CNT = '0'
]]> </isEqual>
</isEqual> <isEqual property="searchMsgType" compareValue="M">
</isNotEmpty> <![CDATA[
<isNotEmpty property="tabType"> AND MSG_TYPE = '6'
<isEqual property="tabType" compareValue="S"> AND FILE_CNT > '0'
AND MSG_TYPE = '4' ]]>
</isEqual> </isEqual>
<isEqual property="tabType" compareValue="L"> </isNotEmpty>
AND MSG_TYPE = '6' <isNotEmpty property="tabType">
AND FILE_CNT = '0' <isEqual property="tabType" compareValue="S">
</isEqual> AND MSG_TYPE = '4'
<isEqual property="tabType" compareValue="M"> </isEqual>
<![CDATA[ <isEqual property="tabType" compareValue="L">
AND MSG_TYPE = '6' AND MSG_TYPE = '6'
AND FILE_CNT > '0' AND FILE_CNT = '0'
]]> </isEqual>
</isEqual> <isEqual property="tabType" compareValue="M">
<isEqual property="tabType" compareValue="all"> <![CDATA[
AND NOT MSG_TYPE IN ('8', '9') AND MSG_TYPE = '6'
</isEqual> AND FILE_CNT > '0'
</isNotEmpty> ]]>
</isEqual>
<isEqual property="tabType" compareValue="all">
AND NOT MSG_TYPE IN ('8', '9')
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchKeyword"> <isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="1" > <isEqual property="searchCondition" compareValue="1" >
AND SUBJECT LIKE CONCAT('%', #searchKeyword#, '%') AND SUBJECT LIKE CONCAT('%', #searchKeyword#, '%')
</isEqual> </isEqual>
<isEqual property="searchCondition" compareValue="2" > <isEqual property="searchCondition" compareValue="2" >
AND CALL_FROM = #searchKeyword# AND CALL_FROM = #searchKeyword#
</isEqual> </isEqual>
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="searchCondition_01"> <isNotEmpty property="searchCondition_01">
AND SEND_KIND = #searchCondition_01# AND SEND_KIND = #searchCondition_01#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="startDate"> <isNotEmpty property="startDate">
<![CDATA[ <![CDATA[
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d') AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d')
]]> ]]>
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="endDate"> <isNotEmpty property="endDate">
<![CDATA[ <![CDATA[
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d') AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d')
]]> ]]>
</isNotEmpty> </isNotEmpty>
GROUP BY MSG_TYPE, GROUP BY MSG_TYPE,
A.MSG_GROUP_ID, A.MSG_GROUP_ID,
A.FILE_CNT A.FILE_CNT
ORDER BY 1=1 ORDER BY 1=1
<isNotEmpty property="searchSortCnd"> <isNotEmpty property="searchSortCnd">
,$searchSortCnd$ ,$searchSortCnd$
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="searchSortOrd"> <isNotEmpty property="searchSortOrd">
$searchSortOrd$ $searchSortOrd$
</isNotEmpty> </isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT #recordCountPerPage# OFFSET #firstIndex#
) M2
</select> </select>