481 lines
22 KiB
XML
481 lines
22 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
|
<mapper namespace="com.itn.mjonApi.mjon.api.inqry.mapper.HstryMapper">
|
|
|
|
<select id="selectApiInqryHstry"
|
|
resultType="hashmap"
|
|
>
|
|
|
|
/* 문자온 발송결과 페이지 쿼리를 그대로 사용함 - http://localhost:9080/web/mjon/msgsent/selectMsgSentView.do */
|
|
SELECT
|
|
AAA.totMsgCnt
|
|
, AAA.userId
|
|
, AAA.msgGroupId
|
|
, AAA.msgGroupCnt
|
|
, AAA.smsTxt
|
|
, AAA.subject
|
|
, AAA.regdate
|
|
, AAA.reqdate
|
|
, AAA.curState
|
|
, AAA.msgType
|
|
, AAA.reserveCYn
|
|
, AAA.msgTypeName
|
|
, AAA.msgResult
|
|
|
|
, SUM(if(bbb.msgresultSts='W',bbb.msgResultCnt, 0)) w_cnt
|
|
, SUM(if(bbb.msgresultSts='S',bbb.msgResultCnt, 0)) s_cnt
|
|
, SUM(if(bbb.msgresultSts='F',bbb.msgResultCnt, 0)) f_cnt
|
|
|
|
, SUM(if(bbb.msgresultSts='W',bbb.msgResultCnt, 0))
|
|
+ SUM(if(bbb.msgresultSts='S',bbb.msgResultCnt, 0))
|
|
+ SUM(if(bbb.msgresultSts='F',bbb.msgResultCnt, 0)) ttl_cnt
|
|
|
|
FROM (
|
|
SELECT COUNT(USER_ID) OVER() AS totMsgCnt ,
|
|
USER_ID AS userId ,
|
|
MSG_GROUP_ID AS msgGroupId ,
|
|
MSG_GROUP_CNT AS msgGroupCnt ,
|
|
SMS_TXT AS smsTxt ,
|
|
SUBJECT AS subject ,
|
|
DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regdate ,
|
|
DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqdate ,
|
|
/*
|
|
CALL_FROM AS callFrom ,
|
|
CALL_TO AS callTo ,
|
|
IFNULL(ADDR_NM, '-') AS addrNm ,
|
|
TOT_PRICE AS totPrice ,
|
|
EACH_PRICE AS eachPrice ,
|
|
*/
|
|
CUR_STATE AS curState ,
|
|
/*
|
|
RSLT_CODE AS rsltCode ,
|
|
RSLT_CODE2 AS rsltCode2 ,
|
|
IF( (RSLT_CODE != '0'
|
|
AND RSLT_CODE != '100'
|
|
AND RSLT_CODE != '101'
|
|
AND RSLT_CODE != '110'
|
|
AND RSLT_CODE != '800'
|
|
AND RSLT_CODE != '4100'
|
|
AND RSLT_CODE != '6600'
|
|
AND RSLT_CODE != '1000'
|
|
AND RSLT_CODE != '1001' OR RSLT_CODE2 != '0' ) , '1' ,'0') AS orderByrsltCode ,
|
|
DEL_FLAG AS delFlag ,
|
|
*/
|
|
MSG_TYPE AS msgType ,
|
|
/*
|
|
FILE_CNT AS fileCnt ,
|
|
AGENT_CODE AS agentCode ,
|
|
*/
|
|
RESERVE_C_YN AS reserveCYn ,
|
|
/*
|
|
CANCELDATE AS cancelDate ,
|
|
'' AS msgId ,
|
|
*/
|
|
msgTypeName AS msgTypeName ,
|
|
/*
|
|
orderByCode AS orderByCode ,
|
|
*/
|
|
RESULT AS msgResult
|
|
FROM ( SELECT B.USER_ID ,
|
|
B.MSG_GROUP_ID ,
|
|
B.MSG_GROUP_CNT ,
|
|
B.SMS_TXT ,
|
|
B.SUBJECT ,
|
|
B.REGDATE ,
|
|
B.REQ_DATE ,
|
|
B.CALL_FROM ,
|
|
B.TOT_PRICE ,
|
|
B.EACH_PRICE ,
|
|
B.DEL_FLAG ,
|
|
B.MSG_TYPE ,
|
|
B.FILE_CNT ,
|
|
B.AGENT_CODE ,
|
|
B.RESERVE_C_YN ,
|
|
B.CANCELDATE ,
|
|
A.MSG_SEQ ,
|
|
A.CALL_TO ,
|
|
A.CUR_STATE ,
|
|
A.RSLT_CODE ,
|
|
A.RSLT_CODE2 ,
|
|
CASE
|
|
WHEN B.MSG_TYPE = '6'
|
|
AND B.FILE_CNT > 0
|
|
THEN '그림(MMS)'
|
|
WHEN B.MSG_TYPE = '6'
|
|
AND B.FILE_CNT = 0
|
|
THEN '장문(LMS)'
|
|
ELSE '단문(SMS)'
|
|
END msgTypeName ,
|
|
CASE
|
|
WHEN B.MSG_TYPE = '6'
|
|
AND B.FILE_CNT > 0
|
|
THEN '3'
|
|
WHEN B.MSG_TYPE = '6'
|
|
AND B.FILE_CNT = 0
|
|
THEN '2'
|
|
ELSE '1'
|
|
END orderByCode , (
|
|
CASE
|
|
WHEN A.AGENT_CODE = '01'
|
|
AND
|
|
(
|
|
A.RSLT_CODE = '100'
|
|
AND
|
|
(
|
|
A.RSLT_CODE2 = '0'
|
|
)
|
|
)
|
|
THEN 'S'
|
|
WHEN A.AGENT_CODE = '02'
|
|
AND
|
|
(
|
|
A.RSLT_CODE = '0'
|
|
)
|
|
THEN 'S'
|
|
WHEN A.AGENT_CODE = '03'
|
|
AND
|
|
(
|
|
A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800'
|
|
)
|
|
THEN 'S'
|
|
WHEN A.AGENT_CODE = '04'
|
|
AND
|
|
(
|
|
A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600' OR A.RSLT_CODE = '7000'
|
|
)
|
|
THEN 'S'
|
|
WHEN A.AGENT_CODE = '05'
|
|
AND
|
|
(
|
|
A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001'
|
|
)
|
|
THEN 'S'
|
|
WHEN A.AGENT_CODE = '07'
|
|
AND
|
|
(
|
|
A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000'
|
|
)
|
|
THEN 'S'
|
|
WHEN
|
|
(
|
|
A.RSLT_CODE IS NULL
|
|
AND A.RSLT_CODE2 IS NULL
|
|
AND A.SENT_DATE IS NULL
|
|
AND A.RSLT_DATE IS NULL
|
|
)
|
|
THEN 'W'
|
|
ELSE 'F'
|
|
END ) AS RESULT
|
|
/* common query */
|
|
FROM MJ_MSG_DATA A ,
|
|
MJ_MSG_GROUP_DATA B
|
|
WHERE A.MSG_GROUP_ID = B.MSG_GROUP_ID
|
|
AND IFNULL(B.DEL_FLAG,'N') = 'N'
|
|
AND A.DEL_FLAG = 'N'
|
|
AND B.USER_ID = #{mberId}
|
|
AND B.DEL_FLAG ='N'
|
|
AND B.RESERVE_C_YN = 'N'
|
|
AND DATE_ADD(NOW(), INTERVAL 60 MINUTE) >= B.REQ_DATE
|
|
|
|
<if test="startDate != null and startDate != ''">
|
|
AND b.regdate >= STR_TO_DATE(CONCAT(#{startDate}, '000000'), '%Y%m%d%H%i%s')
|
|
</if>
|
|
<if test="startDate == null or startDate == ''">
|
|
AND b.regdate >= STR_TO_DATE(date_format(now(),'%Y%m%d000000'), '%Y%m%d%H%i%s')
|
|
</if>
|
|
|
|
<if test="endDate != null and endDate != ''">
|
|
AND STR_TO_DATE(CONCAT(#{endDate}, '235959'), '%Y%m%d%H%i%s') >= b.regdate
|
|
</if>
|
|
<if test="startDate == null or startDate == ''">
|
|
AND STR_TO_DATE(date_format(DATE_ADD(NOW(), INTERVAL 1 day),'%Y%m%d000000'), '%Y%m%d%H%i%s') >= b.regdate
|
|
|
|
</if>
|
|
|
|
)
|
|
M
|
|
LEFT JOIN
|
|
( SELECT ADDR_PHONE_NO ,
|
|
ADDR_NM
|
|
FROM MJ_ADDR
|
|
WHERE 1 =1
|
|
AND MBER_ID = #{mberId}
|
|
GROUP BY ADDR_PHONE_NO
|
|
)
|
|
MA
|
|
ON M.CALL_TO = MA.ADDR_PHONE_NO
|
|
WHERE 1 =1
|
|
AND CUR_STATE IN ('0',
|
|
'1',
|
|
'2',
|
|
'3')
|
|
AND MSG_TYPE IN ('4',
|
|
'6')
|
|
GROUP BY MSG_GROUP_ID
|
|
/*
|
|
ORDER BY 1=1,
|
|
MSG_GROUP_ID DESC ,
|
|
regdate DESC
|
|
*/
|
|
LIMIT ${pageSize}
|
|
OFFSET ${page}
|
|
)AAA
|
|
,(
|
|
|
|
|
|
SELECT A.MSG_GROUP_ID AS msgGroupId ,
|
|
A.USERDATA AS msgSeq ,
|
|
COUNT(RESULT) AS msgResultCnt ,
|
|
RESULT AS msgResultSts ,
|
|
A.RSLT_CODE AS rsltCode ,
|
|
A.RSLT_CODE2 AS rsltCode2 ,
|
|
A.AGENT_CODE AS agentCode ,
|
|
A.EACH_PRICE AS eachPrice
|
|
FROM (SELECT MD.MSG_ID ,
|
|
MD.MSG_GROUP_ID ,
|
|
MD.USERDATA ,
|
|
MD.CUR_STATE ,
|
|
MD.SENT_DATE , (
|
|
CASE
|
|
WHEN MD.AGENT_CODE = '01'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '100'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE2 = '0'
|
|
)
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '02'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '0'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '03'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '100' OR MD.RSLT_CODE = '101' OR MD.RSLT_CODE = '110' OR MD.RSLT_CODE = '800'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '04'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '4100' OR MD.RSLT_CODE = '6600'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '05'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '1000' OR MD.RSLT_CODE = '1001'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '07'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '6' OR MD.RSLT_CODE = '1000'
|
|
)
|
|
THEN 'S'
|
|
WHEN
|
|
(
|
|
MD.RSLT_CODE IS NULL
|
|
AND MD.RSLT_CODE2 IS NULL
|
|
AND MD.SENT_DATE IS NULL
|
|
AND MD.RSLT_DATE IS NULL
|
|
)
|
|
THEN 'W'
|
|
ELSE 'F'
|
|
END ) AS RESULT ,
|
|
MD.RSLT_CODE ,
|
|
MD.RSLT_CODE2 ,
|
|
MD.AGENT_CODE ,
|
|
MG.EACH_PRICE
|
|
FROM MJ_MSG_DATA MD
|
|
LEFT JOIN MJ_MSG_GROUP_DATA MG
|
|
ON MD.MSG_GROUP_ID = MG.MSG_GROUP_ID
|
|
WHERE 1 =1
|
|
AND MD.DEL_FLAG = 'N'
|
|
AND MD.MSG_TYPE IN ('4',
|
|
'6')
|
|
)
|
|
A
|
|
GROUP BY A.MSG_GROUP_ID,
|
|
RESULT
|
|
ORDER BY A.MSG_GROUP_ID DESC
|
|
|
|
|
|
|
|
)BBB
|
|
|
|
WHERE aaa.msgGroupId=bbb.msgGroupId
|
|
GROUP BY
|
|
AAA.totMsgCnt
|
|
, AAA.userId
|
|
, AAA.msgGroupId
|
|
, AAA.msgGroupCnt
|
|
, AAA.smsTxt
|
|
, AAA.subject
|
|
, AAA.regdate
|
|
, AAA.reqdate
|
|
, AAA.curState
|
|
, AAA.msgType
|
|
, AAA.reserveCYn
|
|
, AAA.msgTypeName
|
|
, AAA.msgResult
|
|
|
|
ORDER BY 1=1,
|
|
AAA.msgGroupId DESC ,
|
|
AAA.regdate DESC
|
|
|
|
</select>
|
|
|
|
|
|
<select id="selectApiInqryHstryDetail"
|
|
resultType="hashmap"
|
|
>
|
|
|
|
/* 문자온 발송결과 페이지 실패 건수 팝업을 변형해서 사용함 - http://localhost:9080/web/mjon/msgsent/selectMsgSFDetailListAjax.do */
|
|
|
|
SELECT COUNT(USER_ID) OVER() AS totMsgCnt ,
|
|
/*
|
|
USER_ID AS userId ,
|
|
IFNULL(ADDR_NM, '-') AS addrNm ,
|
|
*/
|
|
MSG_GROUP_ID AS msgGroupId ,
|
|
'1' AS msgGroupCnt ,
|
|
SMS_TXT AS smsTxt ,
|
|
SUBJECT AS subject ,
|
|
DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regdate ,
|
|
DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqdate ,
|
|
CALL_FROM AS callFrom ,
|
|
CALL_TO AS callTo ,
|
|
/*
|
|
TOT_PRICE AS totPrice ,
|
|
EACH_PRICE AS eachPrice ,
|
|
*/
|
|
CUR_STATE AS curState ,
|
|
/*
|
|
RSLT_CODE AS rsltCode ,
|
|
RSLT_CODE2 AS rsltCode2 ,
|
|
DEL_FLAG AS delFlag ,
|
|
*/
|
|
MSG_TYPE AS msgType ,
|
|
/*
|
|
FILE_CNT AS fileCnt ,
|
|
AGENT_CODE AS agentCode ,
|
|
*/
|
|
RESERVE_C_YN AS reserveCYn ,
|
|
/*
|
|
CANCELDATE AS cancelDate ,
|
|
MSG_ID AS msgId ,
|
|
MSG_SEQ AS msgSeq ,
|
|
*/
|
|
RESULT AS msgResult
|
|
FROM (SELECT MGD.USER_ID ,
|
|
MGD.MSG_GROUP_ID ,
|
|
MGD.MSG_GROUP_CNT ,
|
|
MGD.SMS_TXT ,
|
|
MGD.SUBJECT ,
|
|
MGD.REGDATE ,
|
|
MGD.REQ_DATE ,
|
|
MGD.CALL_FROM ,
|
|
MGD.TOT_PRICE ,
|
|
MGD.EACH_PRICE ,
|
|
MGD.DEL_FLAG ,
|
|
MGD.MSG_TYPE ,
|
|
MGD.FILE_CNT ,
|
|
MGD.AGENT_CODE ,
|
|
MGD.RESERVE_C_YN ,
|
|
MGD.CANCELDATE ,
|
|
MD.MSG_ID ,
|
|
MD.MSG_SEQ ,
|
|
MD.USERDATA ,
|
|
MD.CALL_TO ,
|
|
MD.CUR_STATE ,
|
|
MD.RSLT_CODE ,
|
|
MD.RSLT_CODE2 , (
|
|
CASE
|
|
WHEN MD.AGENT_CODE = '01'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '100'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE2 = '0'
|
|
)
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '02'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '0'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '03'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '100' OR MD.RSLT_CODE = '101' OR MD.RSLT_CODE = '110' OR MD.RSLT_CODE = '800'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '04'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '4100' OR MD.RSLT_CODE = '6600'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '05'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '1000' OR MD.RSLT_CODE = '1001'
|
|
)
|
|
THEN 'S'
|
|
WHEN MD.AGENT_CODE = '07'
|
|
AND
|
|
(
|
|
MD.RSLT_CODE = '6' OR MD.RSLT_CODE = '1000'
|
|
)
|
|
THEN 'S'
|
|
WHEN
|
|
(
|
|
MD.RSLT_CODE IS NULL
|
|
AND MD.RSLT_CODE2 IS NULL
|
|
AND MD.SENT_DATE IS NULL
|
|
AND MD.RSLT_DATE IS NULL
|
|
)
|
|
THEN 'W'
|
|
ELSE 'F'
|
|
END ) AS RESULT
|
|
FROM MJ_MSG_DATA MD
|
|
INNER JOIN MJ_MSG_GROUP_DATA MGD
|
|
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
|
|
AND MD.MSG_GROUP_ID = #{msgGroupId}
|
|
AND MGD.USER_ID = #{mberId}
|
|
AND MGD.DEL_FLAG ='N'
|
|
)
|
|
A
|
|
LEFT JOIN
|
|
(SELECT ADDR_PHONE_NO ,
|
|
ADDR_NM
|
|
FROM MJ_ADDR
|
|
WHERE 1 =1
|
|
AND MBER_ID = #{mberId}
|
|
GROUP BY ADDR_PHONE_NO
|
|
)
|
|
MA
|
|
ON A.CALL_TO = MA.ADDR_PHONE_NO
|
|
WHERE 1 =1
|
|
/*
|
|
AND A.RESULT IN ('F',
|
|
'W')
|
|
*/
|
|
ORDER BY 1=1 ,
|
|
regdate DESC
|
|
LIMIT ${pageSize}
|
|
OFFSET ${page}
|
|
|
|
</select>
|
|
</mapper> |