문자예약 페이지 API / WEB 전송방식 조회

This commit is contained in:
name 2023-08-02 10:07:19 +09:00
parent fc5dd8f21b
commit 23b4d250d6
8 changed files with 645 additions and 71 deletions

View File

@ -224,4 +224,8 @@ public interface MjonMsgService {
//문자 발송 횟수
List<MjonMsgVO> selectMsgSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception;
MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception;
}

View File

@ -177,7 +177,95 @@ public class MjonMsgVO extends ComDefaultVO{
private int rateSuccessCount; // 홈페이지 전송 성공율
private int rateApiSuccessCount; // API 전송 성공율
private int smsGroupSCntSum; // sms 성공()
private int smsTotSPriceSum; // sms 성공(금액)
private int smsGroupFWCntSum; // sms 실패대기()
private int smsTotFWPriceSum; // sms 실패대기(금액)
private int lmsGroupSCntSum; // lms 성공()
private int lmsTotSPriceSum; // lms 성공(금액)
private int lmsGroupFWCntSum; // lms 실패대기()
private int lmsTotFWPriceSum; // lms 실패대기(금액)
private int mmsGroupSCntSum; // mms 성공()
private int mmsTotSPriceSum; // mms 성공(금액)
private int mmsGroupFWCntSum; // mms 실패대기()
private int mmsTotFWPriceSum; // mms 실패대기(금액)
public int getSmsGroupSCntSum() {
return smsGroupSCntSum;
}
public void setSmsGroupSCntSum(int smsGroupSCntSum) {
this.smsGroupSCntSum = smsGroupSCntSum;
}
public int getSmsTotSPriceSum() {
return smsTotSPriceSum;
}
public void setSmsTotSPriceSum(int smsTotSPriceSum) {
this.smsTotSPriceSum = smsTotSPriceSum;
}
public int getSmsGroupFWCntSum() {
return smsGroupFWCntSum;
}
public void setSmsGroupFWCntSum(int smsGroupFWCntSum) {
this.smsGroupFWCntSum = smsGroupFWCntSum;
}
public int getSmsTotFWPriceSum() {
return smsTotFWPriceSum;
}
public void setSmsTotFWPriceSum(int smsTotFWPriceSum) {
this.smsTotFWPriceSum = smsTotFWPriceSum;
}
public int getLmsGroupSCntSum() {
return lmsGroupSCntSum;
}
public void setLmsGroupSCntSum(int lmsGroupSCntSum) {
this.lmsGroupSCntSum = lmsGroupSCntSum;
}
public int getLmsTotSPriceSum() {
return lmsTotSPriceSum;
}
public void setLmsTotSPriceSum(int lmsTotSPriceSum) {
this.lmsTotSPriceSum = lmsTotSPriceSum;
}
public int getLmsGroupFWCntSum() {
return lmsGroupFWCntSum;
}
public void setLmsGroupFWCntSum(int lmsGroupFWCntSum) {
this.lmsGroupFWCntSum = lmsGroupFWCntSum;
}
public int getLmsTotFWPriceSum() {
return lmsTotFWPriceSum;
}
public void setLmsTotFWPriceSum(int lmsTotFWPriceSum) {
this.lmsTotFWPriceSum = lmsTotFWPriceSum;
}
public int getMmsGroupSCntSum() {
return mmsGroupSCntSum;
}
public void setMmsGroupSCntSum(int mmsGroupSCntSum) {
this.mmsGroupSCntSum = mmsGroupSCntSum;
}
public int getMmsTotSPriceSum() {
return mmsTotSPriceSum;
}
public void setMmsTotSPriceSum(int mmsTotSPriceSum) {
this.mmsTotSPriceSum = mmsTotSPriceSum;
}
public int getMmsGroupFWCntSum() {
return mmsGroupFWCntSum;
}
public void setMmsGroupFWCntSum(int mmsGroupFWCntSum) {
this.mmsGroupFWCntSum = mmsGroupFWCntSum;
}
public int getMmsTotFWPriceSum() {
return mmsTotFWPriceSum;
}
public void setMmsTotFWPriceSum(int mmsTotFWPriceSum) {
this.mmsTotFWPriceSum = mmsTotFWPriceSum;
}
public int getRateSuccessCount() {
return rateSuccessCount;
}

View File

@ -495,4 +495,8 @@ public class MjonMsgDAO extends EgovAbstractDAO {
return (List<MjonMsgVO>) list("mjonMsgDAO.selectMsgSendTotCnt", mjonMsgVO);
}
public MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception{
return (MjonMsgVO)select("mjonMsgDAO.selectApiSttstList", mjonMsgVO);
}
}

View File

@ -1147,4 +1147,9 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
return resultSts;
}
@Override
public MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception {
return mjonMsgDAO.selectApiSttstList(mjonMsgVO);
}
}

View File

@ -1743,50 +1743,39 @@ public class EgovUserManageController {
//searchVO 원본 문자 타입 파일 갯수 저장해 놓기
String msgType = searchVO.getMsgType();
String fileCnt = searchVO.getFileCnt();
String sendKind = searchVO.getSendKind();
//전체 리스트 불러오기
List<MjonMsgVO> resultList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("");
//resultList = mjonMsgService.selectUserMsgDataListByMbrId(searchVO);
resultList = mjonMsgService.selectUserMsgDataListByMbrId2(searchVO);
model.addAttribute("resultList", resultList);
model.addAttribute("mberSttus", mberSttus); //이용자 상태값 전달
model.addAttribute("resultList", resultList);
model.addAttribute("mberSttus", mberSttus); //이용자 상태값 전달
//종합 리스트 정보 불러오기
//종합 리스트 정보 불러오기
//단문 리스트 정보 불러오기
List<MjonMsgVO> resultSmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("4");
searchVO.setFileCnt("");
resultSmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultSmsList", resultSmsList);
//단문 리스트 정보 불러오기
/*List<MjonMsgVO> resultSmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("4");
searchVO.setFileCnt("");
resultSmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultSmsList", resultSmsList);
//장문 리스트 정보 불러오기
List<MjonMsgVO> resultLmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("6");
searchVO.setFileCnt("");
resultLmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultLmsList", resultLmsList);
//장문 리스트 정보 불러오기
List<MjonMsgVO> resultLmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("6");
searchVO.setFileCnt("");
resultLmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultLmsList", resultLmsList);
//그림 리스트 정보 불러오기
List<MjonMsgVO> resultMmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("6");
searchVO.setFileCnt("0");
resultMmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultMmsList", resultMmsList);
//그림 리스트 정보 불러오기
List<MjonMsgVO> resultMmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("6");
searchVO.setFileCnt("0");
resultMmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultMmsList", resultMmsList);
//searchVO 데이터 원복 시키기
searchVO.setMsgType(msgType);
searchVO.setFileCnt(fileCnt);
//문자발송 실패 결과 코드정보 리스트 불러오기
MjonMsgResultCodeVO mjonMsgResultCodeVO = new MjonMsgResultCodeVO();
List<MjonMsgResultCodeVO> resultMsgCodeList = mjonMsgService.selectMsgResultCodeAllList(mjonMsgResultCodeVO);
model.addAttribute("resultMsgCodeList", resultMsgCodeList);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
String msgGroupSCntSum = "0"; //정상수신 건수 합계
String totSPriceSum = "0"; //정상수신 금액 합계
@ -1869,7 +1858,41 @@ public class EgovUserManageController {
model.addAttribute("totMmsSPriceSum", totMmsSPriceSum);
model.addAttribute("msgMmsGroupFWCntSum", msgMmsGroupFWCntSum);
model.addAttribute("totMmsFWPriceSum", totMmsFWPriceSum);
*/
List<MjonMsgVO> sendSttstList = new ArrayList<MjonMsgVO>();
searchVO.setSendKind("");
MjonMsgVO allSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
allSttstInfo.setSendKind("");
searchVO.setSendKind("H");
MjonMsgVO hompageSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
hompageSttstInfo.setSendKind("H");
searchVO.setSendKind("A");
MjonMsgVO apiSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
apiSttstInfo.setSendKind("A");
sendSttstList.add(allSttstInfo);
sendSttstList.add(hompageSttstInfo);
sendSttstList.add(apiSttstInfo);
model.addAttribute("sendSttstList", sendSttstList);
//searchVO 데이터 원복 시키기
searchVO.setMsgType(msgType);
searchVO.setFileCnt(fileCnt);
searchVO.setSendKind(sendKind);
//문자발송 실패 결과 코드정보 리스트 불러오기
MjonMsgResultCodeVO mjonMsgResultCodeVO = new MjonMsgResultCodeVO();
List<MjonMsgResultCodeVO> resultMsgCodeList = mjonMsgService.selectMsgResultCodeAllList(mjonMsgResultCodeVO);
model.addAttribute("resultMsgCodeList", resultMsgCodeList);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "cmm/uss/umt/EgovGnrlUserSelectMsgDataListPop";
}

View File

@ -271,6 +271,7 @@
, M.userNm
, M.adminSmsNoticeYn
, M.callFrom
, M.sendKind
, M.smsTxt
, M.subject
, M.msgType
@ -387,6 +388,7 @@
, LMB.MBER_NM AS userNm
, LMB.ADMIN_SMS_NOTICE_YN AS adminSmsNoticeYn
, A.CALL_FROM AS callFrom
, A.SEND_KIND AS sendKind
, A.SMS_TXT AS smsTxt
, A.SUBJECT AS subject
, A.MSG_TYPE AS msgType
@ -432,16 +434,24 @@
) D ON A.MSG_TYPE = D.CODE /** 메세지타입 */
WHERE 1 = 1
AND A.MSG_TYPE IN (4, 6)
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND A.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND A.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="" >
AND (
USER_ID LIKE CONCAT ('%', #searchKeyword#,'%') OR
A.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%') OR
SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
)
</isEqual>
AND (
USER_ID LIKE CONCAT ('%', #searchKeyword#,'%')
OR A.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%')
OR SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
)
</isEqual>
<isEqual property="searchCondition" compareValue="1">
<isEqual property="searchCondition" compareValue="1">
AND A.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
</isEqual>
@ -484,8 +494,8 @@
AND RESERVE_C_YN = #reserveCYn#
</isNotEmpty>
<isNotEmpty property="searchAdminSmsNoticeYn">
AND ADMIN_SMS_NOTICE_YN = #searchAdminSmsNoticeYn#
<isNotEmpty property="searchAdminSmsNoticeYn">
AND ADMIN_SMS_NOTICE_YN = #searchAdminSmsNoticeYn#
</isNotEmpty>
<isNotEmpty property="searchCampaignYn">
@ -6825,5 +6835,420 @@
AND MSG_GROUP_ID = #msgGroupId#
</update>
<select id="mjonMsgDAO.selectApiSttstList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
SELECT
IFNULL(COUNT(msgGroupId), 0) AS totCnt /** 전체 건수 */
, IFNULL(SUM(smsGroupSCnt), 0) AS smsGroupSCntSum /** 발송 성공 전체 건수 */
, IFNULL(FLOOR(SUM(smsTotSPrice)), 0) AS smsTotSPriceSum /** 성공 발송금액 합계 소수점 이하 버림*/
, IFNULL(SUM(smsGroupFWCnt), 0) AS smsGroupFWCntSum /** 발송 실패대기 전체 건수 */
, IFNULL(FLOOR(SUM(smsTotFWPrice)), 0) AS smsTotFWPriceSum /** 실패대기 발송금액 합계 소수점 이하 버림*/
, IFNULL(SUM(lmsGroupSCnt), 0) AS lmsGroupSCntSum /** 발송 성공 전체 건수 */
, IFNULL(FLOOR(SUM(lmsTotSPrice)), 0) AS lmsTotSPriceSum /** 성공 발송금액 합계 소수점 이하 버림*/
, IFNULL(SUM(lmsGroupFWCnt), 0) AS lmsGroupFWCntSum /** 발송 실패대기 전체 건수 */
, IFNULL(FLOOR(SUM(lmsTotFWPrice)), 0) AS lmsTotFWPriceSum /** 실패대기 발송금액 합계 소수점 이하 버림*/
, IFNULL(SUM(mmsGroupSCnt), 0) AS mmsGroupSCntSum /** 발송 성공 전체 건수 */
, IFNULL(FLOOR(SUM(mmsTotSPrice)), 0) AS mmsTotSPriceSum /** 성공 발송금액 합계 소수점 이하 버림*/
, IFNULL(SUM(mmsGroupFWCnt), 0) AS mmsGroupFWCntSum /** 발송 실패대기 전체 건수 */
, IFNULL(FLOOR(SUM(mmsTotFWPrice)), 0) AS mmsTotFWPriceSum /** 실패대기 발송금액 합계 소수점 이하 버림*/
FROM
(SELECT
COUNT(MSG_GROUP_ID) AS smsGroupSCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS smsTotSPrice
, '0' AS smsGroupFWCnt
, '0' AS smsTotFWPrice
, '0' AS lmsGroupSCnt
, '0' AS lmsTotSPrice
, '0' AS lmsGroupFWCnt
, '0' AS lmsTotFWPrice
, '0' AS mmsGroupSCnt
, '0' AS mmsTotSPrice
, '0' AS mmsGroupFWCnt
, '0' AS mmsTotFWPrice
, MSG_GROUP_ID AS msgGroupId
, MSG_TYPE AS msgType
, resultCodeTxt
FROM
(SELECT
MGD.MSG_GROUP_ID
, MD.MSG_TYPE
, MGD.EACH_PRICE
, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
LEFT JOIN (SELECT CODE_NM ,CODE ,CODE_DC FROM LETTCCMMNDETAILCODE WHERE USE_AT = 'Y' AND CODE_ID = 'ITN019')B
ON MD.AGENT_CODE = B.CODE
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4,6)
AND MGD.MSG_TYPE = '4'
AND MGD.FILE_CNT = 0
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND MGD.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND MGD.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND MGD.REQ_DATE <= now()
AND MGD.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND MGD.REQ_DATE > now()
AND MGD.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
)IN1
WHERE 1=1
<![CDATA[ AND IN1.resultCodeTxt = 'S' ]]>
GROUP BY MSG_GROUP_ID
UNION
/*실패 건 조회*/
SELECT
'0' AS smsGroupSCnt
, '0' AS smsTotSPrice
, COUNT(MSG_GROUP_ID) AS smsGroupFWCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS smsTotFWPrice
, '0' AS lmsGroupSCnt
, '0' AS lmsTotSPrice
, '0' AS lmsGroupFWCnt
, '0' AS lmsTotFWPrice
, '0' AS mmsGroupSCnt
, '0' AS mmsTotSPrice
, '0' AS mmsGroupFWCnt
, '0' AS mmsTotFWPrice
, MSG_GROUP_ID AS msgGroupId
, MSG_TYPE AS msgType
, resultCodeTxt
FROM
(SELECT
MGD.MSG_GROUP_ID
,MD.MSG_TYPE
, MGD.EACH_PRICE
, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
LEFT JOIN ( SELECT CODE_NM, CODE, CODE_DC FROM LETTCCMMNDETAILCODE WHERE USE_AT = 'Y' AND CODE_ID = 'ITN019')B
ON MD.AGENT_CODE = B.CODE
LEFT OUTER JOIN MJ_SPAM_MEMBER_INFO MSI
ON MGD.MSG_GROUP_ID = MSI.MSG_GROUP_ID
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4,6)
AND MGD.MSG_TYPE = '4'
AND MGD.FILE_CNT = 0
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND MGD.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND MGD.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND MGD.REQ_DATE <= now()
AND MGD.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND MGD.REQ_DATE > now()
AND MGD.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
)IN1
WHERE 1=1
<![CDATA[ AND IN1.resultCodeTxt <> 'S' ]]>
GROUP BY MSG_GROUP_ID
UNION
SELECT
'0' AS smsGroupSCnt
, '0' AS smsTotSPrice
, '0' AS smsGroupFWCnt
, '0' AS smsTotFWPrice
, COUNT(MSG_GROUP_ID) AS lmsGroupSCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS lmsTotSPrice
, '0' AS lmsGroupFWCnt
, '0' AS lmsTotFWPrice
, '0' AS mmsGroupSCnt
, '0' AS mmsTotSPrice
, '0' AS mmsGroupFWCnt
, '0' AS mmsTotFWPrice
, MSG_GROUP_ID AS msgGroupId
, MSG_TYPE AS msgType
, resultCodeTxt
FROM
(SELECT
MGD.MSG_GROUP_ID
, MD.MSG_TYPE
, MGD.EACH_PRICE
, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
LEFT JOIN (SELECT CODE_NM ,CODE ,CODE_DC FROM LETTCCMMNDETAILCODE WHERE USE_AT = 'Y' AND CODE_ID = 'ITN019')B
ON MD.AGENT_CODE = B.CODE
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4,6)
AND MGD.MSG_TYPE = '6'
AND MGD.FILE_CNT = 0
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND MGD.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND MGD.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND MGD.REQ_DATE <= now()
AND MGD.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND MGD.REQ_DATE > now()
AND MGD.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
)IN1
WHERE 1=1
<![CDATA[ AND IN1.resultCodeTxt = 'S' ]]>
GROUP BY MSG_GROUP_ID
UNION
/*실패 건 조회*/
SELECT
'0' AS smsGroupSCnt
, '0' AS smsTotSPrice
, '0' AS smsGroupFWCnt
, '0' AS smsTotFWPrice
, '0' AS lmsGroupSCnt
, '0' AS lmsTotSPrice
, COUNT(MSG_GROUP_ID) AS lmsGroupFWCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS lmsTotFWPrice
, '0' AS mmsGroupSCnt
, '0' AS mmsTotSPrice
, '0' AS mmsGroupFWCnt
, '0' AS mmsTotFWPrice
, MSG_GROUP_ID AS msgGroupId
, MSG_TYPE AS msgType
, resultCodeTxt
FROM
(SELECT
MGD.MSG_GROUP_ID
, MD.MSG_TYPE
, MGD.EACH_PRICE
, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
LEFT JOIN ( SELECT CODE_NM, CODE, CODE_DC FROM LETTCCMMNDETAILCODE WHERE USE_AT = 'Y' AND CODE_ID = 'ITN019')B
ON MD.AGENT_CODE = B.CODE
LEFT OUTER JOIN MJ_SPAM_MEMBER_INFO MSI
ON MGD.MSG_GROUP_ID = MSI.MSG_GROUP_ID
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4,6)
AND MGD.MSG_TYPE = '6'
AND MGD.FILE_CNT = 0
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND MGD.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND MGD.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND MGD.REQ_DATE <= now()
AND MGD.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND MGD.REQ_DATE > now()
AND MGD.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
)IN1
WHERE 1=1
<![CDATA[ AND IN1.resultCodeTxt <> 'S' ]]>
GROUP BY MSG_GROUP_ID
UNION
SELECT
'0' AS smsGroupSCnt
, '0' AS smsTotSPrice
, '0' AS smsGroupFWCnt
, '0' AS smsTotFWPrice
, '0' AS lmsGroupSCnt
, '0' AS lmsTotSPrice
, '0' AS lmsGroupFWCnt
, '0' AS lmsTotFWPrice
, COUNT(MSG_GROUP_ID) AS mmsGroupSCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS mmsTotSPrice
, '0' AS mmsGroupFWCnt
, '0' AS mmsTotFWPrice
, MSG_GROUP_ID AS msgGroupId
, MSG_TYPE AS msgType
, resultCodeTxt
FROM
(SELECT
MGD.MSG_GROUP_ID
, MD.MSG_TYPE
, MGD.EACH_PRICE
, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
LEFT JOIN (SELECT CODE_NM ,CODE ,CODE_DC FROM LETTCCMMNDETAILCODE WHERE USE_AT = 'Y' AND CODE_ID = 'ITN019') B
ON MD.AGENT_CODE = B.CODE
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4,6)
AND MGD.MSG_TYPE = '6'
AND MGD.FILE_CNT > 0
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND MGD.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND MGD.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND MGD.REQ_DATE <= now()
AND MGD.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND MGD.REQ_DATE > now()
AND MGD.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
)IN1
WHERE 1=1
<![CDATA[ AND IN1.resultCodeTxt = 'S' ]]>
GROUP BY MSG_GROUP_ID
UNION
/*실패 건 조회*/
SELECT
'0' AS smsGroupSCnt
, '0' AS smsTotSPrice
, '0' AS smsGroupFWCnt
, '0' AS smsTotFWPrice
, '0' AS lmsGroupSCnt
, '0' AS lmsTotSPrice
, '0' AS lmsGroupFWCnt
, '0' AS lmsTotFWPrice
, '0' AS mmsGroupSCnt
, '0' AS mmsTotSPrice
, COUNT(MSG_GROUP_ID) AS mmsGroupFWCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS mmsTotFWPrice
, MSG_GROUP_ID AS msgGroupId
, MSG_TYPE AS msgType
,resultCodeTxt
FROM
(SELECT
MGD.MSG_GROUP_ID
, MD.MSG_TYPE
, MGD.EACH_PRICE
, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
LEFT JOIN (SELECT CODE_NM ,CODE ,CODE_DC FROM LETTCCMMNDETAILCODE WHERE USE_AT = 'Y' AND CODE_ID = 'ITN019')B
ON MD.AGENT_CODE = B.CODE
LEFT OUTER JOIN MJ_SPAM_MEMBER_INFO MSI
ON MGD.MSG_GROUP_ID = MSI.MSG_GROUP_ID
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4, 6)
AND MGD.MSG_TYPE = '6'
AND MGD.FILE_CNT > 0
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND MGD.SEND_KIND = 'H'
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND MGD.SEND_KIND = 'A'
</isEqual>
</isNotEmpty>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D">
<![CDATA[
AND MGD.REQ_DATE <= now()
AND MGD.RESERVE_C_YN = 'N'
]]>
</isEqual>
<isEqual property="reserveType" compareValue="R">
<![CDATA[
AND MGD.REQ_DATE > now()
AND MGD.RESERVE_YN = 'Y'
]]>
</isEqual>
</isNotEmpty>
)IN1
WHERE 1=1
<![CDATA[ AND IN1.resultCodeTxt <> 'S' ]]>
GROUP BY MSG_GROUP_ID
)FN1
ORDER BY msgGroupId DESC
</select>
</sqlMap>

View File

@ -392,61 +392,71 @@ function fn_updateSendRealTime(userId, msgGroupId){
</tr>
</thead>
<tbody>
<c:forEach var="sendSttstInfo" items="${sendSttstList}" varStatus="status">
<tr>
<td>
전체
<c:choose>
<c:when test="${sendSttstInfo.sendKind eq 'A'}">
API
</c:when>
<c:when test="${sendSttstInfo.sendKind eq 'H'}">
WEB
</c:when>
<c:otherwise>
전체
</c:otherwise>
</c:choose>
</td>
<td>
<span class="tType4 c_456ded fwBold">
<fmt:formatNumber value="${msgSmsGroupSCntSum}" pattern="#,###" />
</span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsSPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgSmsGroupFWCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsFWPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotFWPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupSCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsSPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupFWCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsFWPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.lmsTotFWPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupSCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsSPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupFWCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsFWPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.mmsTotFWPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupSCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupFWCntSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totFWPriceSum}" pattern="#,###" /></span>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${sendSttstInfo.smsTotSPriceSum}" pattern="#,###" /></span>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
@ -650,7 +660,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
API
</c:when>
<c:when test="${result.sendKind eq 'H'}">
홈페이지
WEB
</c:when>
</c:choose>
</td>

View File

@ -360,7 +360,11 @@ function fnSmishingUpdate(flag) {
<option value="Y" <c:if test="${searchVO.searchAdminSmsNoticeYn == 'Y'}">selected="selected"</c:if>>온(On)</option>
<option value="N" <c:if test="${searchVO.searchAdminSmsNoticeYn == 'N'}">selected="selected"</c:if>>오프(Off)</option>
</select>
<select id="sendKind" name="sendKind" onchange="fn_search();">
<option value=""<c:if test="${searchVO.sendKind eq ''}">selected="selected"</c:if>>발송방식 전체</option>
<option value="H"<c:if test="${searchVO.sendKind eq 'H'}">selected="selected"</c:if>>WEB</option>
<option value="A"<c:if test="${searchVO.sendKind eq 'A'}">selected="selected"</c:if>>API</option>
</select>
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="15" title="검색" maxlength="100" />
<input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;">
</div>
@ -410,6 +414,7 @@ function fnSmishingUpdate(flag) {
<th>요청시간<input type="button" class="sort sortBtn" id="sort_reqDate"></th>
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th>
<th>타입<input type="button" class="sort sortBtn" id="sort_msgTypeTxt"></th>
<th>방식<input type="button" class="sort sortBtn" id="sort_sendKind"></th>
<!-- <th>예약상태<input type="button" class="sort sortBtn" id="sort_conectMthdTxt"></th> -->
<!--
<th>취소일자<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th>
@ -529,6 +534,16 @@ function fnSmishingUpdate(flag) {
</c:otherwise>
</c:choose>
</td>
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
<c:choose>
<c:when test="${result.sendKind eq 'A'}">
API
</c:when>
<c:when test="${result.sendKind eq 'H'}">
WEB
</c:when>
</c:choose>
</td>
<%-- <td>
<c:choose>
<c:when test="${result.reserveCYn == 'Y'}">