알림톡 관리자 발송목록, 회원상세 알림톡 발송목록 수정

This commit is contained in:
itn 2023-06-17 12:45:28 +09:00
parent 44b00cbbdf
commit 1dac2a491a
5 changed files with 350 additions and 16 deletions

View File

@ -9,6 +9,9 @@ public interface MjonKakaoATService {
//알림톡 전체 발송 리스트 //알림톡 전체 발송 리스트
List<KakaoVO> selectMjonKakaoATGroupCompleteList(KakaoVO searchVO) throws Exception; List<KakaoVO> selectMjonKakaoATGroupCompleteList(KakaoVO searchVO) throws Exception;
//알림톡 전체 발송 리스트(대시보드용)
List<KakaoVO> selectMjonKakaoATGroupCompleteByUserList(KakaoVO searchVO) throws Exception;
//알림톡 발송 상세 리스트 //알림톡 발송 상세 리스트
List<KakaoVO> selectMjonKakaoATGroupDtList(KakaoVO searchVO) throws Exception; List<KakaoVO> selectMjonKakaoATGroupDtList(KakaoVO searchVO) throws Exception;

View File

@ -17,6 +17,11 @@ public class MjonKakaoATDAO extends EgovAbstractDAO {
return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupCompleteList", p_mjonKakaoATVO); return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupCompleteList", p_mjonKakaoATVO);
} }
@SuppressWarnings("unchecked")
public List<KakaoVO> selectMjonKakaoATGroupCompleteByUserList(KakaoVO p_mjonKakaoATVO) throws Exception{
return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList", p_mjonKakaoATVO);
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public List<KakaoVO> selectMjonKakaoATGroupDtList(KakaoVO p_mjonKakaoATVO) throws Exception{ public List<KakaoVO> selectMjonKakaoATGroupDtList(KakaoVO p_mjonKakaoATVO) throws Exception{
return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupDtList", p_mjonKakaoATVO); return (List<KakaoVO>)list("mjonKakaoATDAO.selectMjonKakaoATGroupDtList", p_mjonKakaoATVO);

View File

@ -74,6 +74,23 @@ public class MjonKakaoATServiceImpl extends EgovAbstractServiceImpl implements M
return result; return result;
} }
@Override
public List<KakaoVO> selectMjonKakaoATGroupCompleteByUserList(KakaoVO p_mjonKakaoATVO) throws Exception {
List<KakaoVO> result = new ArrayList<KakaoVO>();
try {
result = mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList(p_mjonKakaoATVO);
} catch (Exception e) {
System.out.println("selectMjonKakaoATGroupCompleteByUserList ServiceImpl Error ::: " + e);
}
return result;
}
@Override @Override
public List<KakaoVO> selectMjonKakaoATGroupDtList(KakaoVO p_mjonKakaoATVO) throws Exception { public List<KakaoVO> selectMjonKakaoATGroupDtList(KakaoVO p_mjonKakaoATVO) throws Exception {

View File

@ -1376,7 +1376,7 @@ public class EgovUserManageController {
sendKakaoVO.setSearchSortOrd("desc"); sendKakaoVO.setSearchSortOrd("desc");
sendKakaoVO.setFirstIndex(0); sendKakaoVO.setFirstIndex(0);
List<KakaoVO> kakaoResultList = new ArrayList<KakaoVO>(); List<KakaoVO> kakaoResultList = new ArrayList<KakaoVO>();
kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteList(sendKakaoVO); kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(sendKakaoVO);
model.addAttribute("kakaoResultList", kakaoResultList); model.addAttribute("kakaoResultList", kakaoResultList);
@ -1905,7 +1905,7 @@ public class EgovUserManageController {
//searchVO.setReserveYn("N"); //searchVO.setReserveYn("N");
// 문자발송 완료건은 모두 보이도록 처리 // 문자발송 완료건은 모두 보이도록 처리
kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteList(searchVO); kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(searchVO);
model.addAttribute("kakaoResultList", kakaoResultList); model.addAttribute("kakaoResultList", kakaoResultList);
//카카오톡 발송 통계 정보 불러오기 //카카오톡 발송 통계 정보 불러오기

View File

@ -146,7 +146,7 @@
ELSE 'F' ELSE 'F'
END END
) AS result , ) AS result ,
<!-- ( SELECT COUNT(0) ( SELECT COUNT(0)
FROM MJ_MSG_DATA C FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N' WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N' AND C.RESERVE_C_YN = 'N'
@ -162,6 +162,14 @@
AND C.MSG_TYPE = '8' AND C.MSG_TYPE = '8'
) AS atSuccessCount , ) AS atSuccessCount ,
( SELECT COUNT(0) ( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.RSLT_CODE != '7000'
AND C.MSG_TYPE = '8'
) AS atFailCount ,
<!-- ( SELECT COUNT(0)
FROM MJ_MSG_DATA C FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N' WHERE C.DEL_FLAG = 'N'
AND C.RESERVE_C_YN = 'N' AND C.RESERVE_C_YN = 'N'
@ -169,14 +177,6 @@
AND C.RSLT_CODE = '7000' AND C.RSLT_CODE = '7000'
AND C.MSG_TYPE = '9' AND C.MSG_TYPE = '9'
) AS ftSuccessCount , ) 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 = MG.MSG_GROUP_ID
AND C.RSLT_CODE != '7000'
AND C.MSG_TYPE = '8'
) AS atFailCount ,
( SELECT COUNT(0) ( SELECT COUNT(0)
FROM MJ_MSG_DATA C FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N' WHERE C.DEL_FLAG = 'N'
@ -185,10 +185,7 @@
AND C.RSLT_CODE != '7000' AND C.RSLT_CODE != '7000'
AND C.MSG_TYPE = '9' AND C.MSG_TYPE = '9'
) AS ftFailCount , --> ) AS ftFailCount , -->
'0' AS successCount,
'0' AS atSuccessCount,
'0' AS ftSuccessCount, '0' AS ftSuccessCount,
'0' AS atFailCount,
'0' AS ftFailCount, '0' AS ftFailCount,
MSG_NOTICETALK_SENDER_KEY , MSG_NOTICETALK_SENDER_KEY ,
MSG_NOTICETALK_TMP_KEY, MSG_NOTICETALK_TMP_KEY,
@ -201,9 +198,9 @@
AND MD.DEL_FLAG = 'N' AND MD.DEL_FLAG = 'N'
<!-- JSPark 2023.03.24 알림톡 전송완료 목록은 (즉시 + 예약 발송완료) 노출 --> <!-- JSPark 2023.03.24 알림톡 전송완료 목록은 (즉시 + 예약 발송완료) 노출 -->
<![CDATA[ AND MG.REQ_DATE <= NOW() ]]> <![CDATA[ AND MG.REQ_DATE <= NOW() ]]>
<isNotEmpty property="userId"> <isNotEmpty property="userId">
AND MG.USER_ID = #userId# AND MG.USER_ID = #userId#
</isNotEmpty> </isNotEmpty>
AND MG.DEL_FLAG ='N' AND MG.DEL_FLAG ='N'
AND MG.RESERVE_C_YN = 'N' AND MG.RESERVE_C_YN = 'N'
AND MG.MSG_TYPE = '8' AND MG.MSG_TYPE = '8'
@ -318,6 +315,318 @@
</select> </select>
<select id="mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList" parameterClass="kakaoVO" resultClass="kakaoVO">
SELECT
M2.totCnt ,
M2.userId ,
M2.msgGroupId ,
M2.msgGroupCnt ,
M2.smsTxt ,
M2.subject ,
M2.regDate ,
M2.reqDate ,
M2.rsltDate ,
M2.callFrom ,
M2.callTo ,
M2.totPrice ,
M2.eachPrice ,
M2.curState ,
M2.rsltCode ,
M2.rsltCode2 ,
M2.orderByrsltCode ,
M2.delFlag ,
M2.msgType ,
M2.fileCnt ,
M2.agentCode ,
M2.reserveYn ,
M2.reserveCYn ,
M2.cancelDate ,
M2.msgTypeName ,
M2.orderByCode ,
M2.msgResult ,
M2.msgNoticetalkSenderKey ,
M2.msgNoticetalkTmpKey ,
M2.yellowId ,
M2.userNm ,
( 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'
) AS successCount ,
( 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 = MG.MSG_GROUP_ID
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 = MG.MSG_GROUP_ID
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)
FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1
WHERE M2.bizKakaoResendYn = 'Y'
AND M2.msgGroupId = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID
AND (
CASE
WHEN BL1.CALL_STATUS in ('6600','4100')
THEN 'S'
ELSE 'F'
END ) = 'S'
) kakaoResendSuccCount,
( SELECT COUNT(0)
FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1
WHERE M2.bizKakaoResendYn = 'Y'
AND M2.msgGroupId = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID
AND (
CASE
WHEN BL1.CALL_STATUS in ('6600','4100')
THEN 'S'
ELSE 'F'
END ) = 'F'
) kakaoResendFailCount
FROM (
SELECT
COUNT(M.USER_ID) OVER() AS totCnt ,
M.USER_ID AS userId ,
MSG_GROUP_ID AS msgGroupId ,
MSG_GROUP_CNT AS msgGroupCnt ,
SMS_TXT AS smsTxt ,
M.SUBJECT AS subject ,
DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate ,
DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate ,
DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate ,
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 ,
IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode ,
DEL_FLAG AS delFlag ,
M.MSG_TYPE AS msgType ,
FILE_CNT AS fileCnt ,
AGENT_CODE AS agentCode ,
RESERVE_YN AS reserveYn ,
RESERVE_C_YN AS reserveCYn ,
CANCELDATE AS cancelDate ,
msgTypeName AS msgTypeName ,
orderByCode AS orderByCode ,
RESULT AS msgResult ,
MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey ,
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey ,
MKPI.YELLOW_ID AS yellowId ,
LTM.MBER_NM AS userNm ,
BIZ_UMID AS bizUmid,
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
WHEN MG.MSG_TYPE = '8'
THEN '알림톡'
WHEN MG.MSG_TYPE = '9'
THEN '친구톡'
END msgTypeName ,
CASE
WHEN MG.MSG_TYPE = '8'
THEN '1'
ELSE '2'
END orderByCode ,
(
CASE
WHEN MD.RSLT_CODE = '7000'
THEN 'S'
WHEN (MD.RSLT_CODE IS NULL AND MD.SENT_DATE IS NULL AND MD.RSLT_DATE IS NULL)
THEN 'W'
ELSE 'F'
END
) AS result ,
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'
<!-- JSPark 2023.03.24 알림톡 전송완료 목록은 (즉시 + 예약 발송완료) 노출 -->
<![CDATA[ AND MG.REQ_DATE <= NOW() ]]>
<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="" >
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>
</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>
<isNotEqual property="searchSortCnd" compareValue="curState">
,$searchSortCnd$
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
) M2
</select>
<!-- 알림톡 상세 리스트 조회 --> <!-- 알림톡 상세 리스트 조회 -->
<select id="mjonKakaoATDAO.selectMjonKakaoATGroupDtList" parameterClass="kakaoVO" resultClass="kakaoVO"> <select id="mjonKakaoATDAO.selectMjonKakaoATGroupDtList" parameterClass="kakaoVO" resultClass="kakaoVO">
/* mjonKakaoATDAO.selectMjonKakaoATGroupDtList - 알림톡 전송 개별 리스트 */ /* mjonKakaoATDAO.selectMjonKakaoATGroupDtList - 알림톡 전송 개별 리스트 */