Merge branch 'wyh'

This commit is contained in:
name 2023-08-01 10:15:54 +09:00
commit fc5dd8f21b
11 changed files with 891 additions and 467 deletions

View File

@ -167,6 +167,59 @@ public class MjonMsgVO extends ComDefaultVO{
private String sendKind; //문자전송 타입(H:홈페이지, A:API) private String sendKind; //문자전송 타입(H:홈페이지, A:API)
private int aSuccessCount; // API 문자발송 성공건수
private int aSendCount; // API 문자 발송건수
private int totalSendCount; // 전체 문자발송 건수
private int totalSuccessCount; // 전체 문자발송 성공건수
private int rateTotalSuccessCount; // 전체 문자발송 성공율
private int rateSuccessCount; // 홈페이지 전송 성공율
private int rateApiSuccessCount; // API 전송 성공율
public int getRateSuccessCount() {
return rateSuccessCount;
}
public void setRateSuccessCount(int rateSuccessCount) {
this.rateSuccessCount = rateSuccessCount;
}
public int getRateApiSuccessCount() {
return rateApiSuccessCount;
}
public void setRateApiSuccessCount(int rateApiSuccessCount) {
this.rateApiSuccessCount = rateApiSuccessCount;
}
public int getTotalSendCount() {
return totalSendCount;
}
public void setTotalSendCount(int totalSendCount) {
this.totalSendCount = totalSendCount;
}
public int getTotalSuccessCount() {
return totalSuccessCount;
}
public void setTotalSuccessCount(int totalSuccessCount) {
this.totalSuccessCount = totalSuccessCount;
}
public int getRateTotalSuccessCount() {
return rateTotalSuccessCount;
}
public void setRateTotalSuccessCount(int rateTotalSuccessCount) {
this.rateTotalSuccessCount = rateTotalSuccessCount;
}
public int getaSuccessCount() {
return aSuccessCount;
}
public void setaSuccessCount(int aSuccessCount) {
this.aSuccessCount = aSuccessCount;
}
public int getaSendCount() {
return aSendCount;
}
public void setaSendCount(int aSendCount) {
this.aSendCount = aSendCount;
}
public String getSendKind() { public String getSendKind() {
return sendKind; return sendKind;
} }

View File

@ -4412,7 +4412,7 @@ public class MjonMsgController {
if (resultList.size()>0) { if (resultList.size()>0) {
model.addAttribute("sttstDate", resultList.get(0).getRegistPnttm()); model.addAttribute("sttstDate", resultList.get(0).getRegistPnttm());
} }
}catch(Exception ex) { }catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }

View File

@ -70,6 +70,8 @@ public class MjonMsgSentVO extends UserDefaultVO{
private int successCnt; // 문자발송 성공건수 private int successCnt; // 문자발송 성공건수
private String sendKind; //문자 전송 타입(H:홈페이지 A: API)
private String msgKind; //문자종류(일반:N, 광고:A , 선거:C, 관리자:S, 이벤트:E) private String msgKind; //문자종류(일반:N, 광고:A , 선거:C, 관리자:S, 이벤트:E)
private String delayYn; //지연 문자 유무 private String delayYn; //지연 문자 유무
private String delayCompleteYn; //지연문자 처리 완료 여부 private String delayCompleteYn; //지연문자 처리 완료 여부
@ -420,6 +422,10 @@ public class MjonMsgSentVO extends UserDefaultVO{
public void setDelayCompleteYn(String delayCompleteYn) { public void setDelayCompleteYn(String delayCompleteYn) {
this.delayCompleteYn = delayCompleteYn; this.delayCompleteYn = delayCompleteYn;
} }
public String getSendKind() {
return sendKind;
}
public void setSendKind(String sendKind) {
this.sendKind = sendKind;
}
} }

View File

@ -1788,10 +1788,10 @@ public class EgovUserManageController {
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0); paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("paginationInfo", paginationInfo);
String msgGroupSCntSum = "0"; //정상수신 건수 합계 String msgGroupSCntSum = "0"; //정상수신 건수 합계
String totSPriceSum = "0"; //정상수신 금액 합계 String totSPriceSum = "0"; //정상수신 금액 합계
String msgGroupFWCntSum = "0"; //실패대기 건수 합계 String msgGroupFWCntSum = "0"; //실패대기 건수 합계
String totFWPriceSum = "0"; //실패대기 금액 합계 String totFWPriceSum = "0"; //실패대기 금액 합계
if(resultList.size() > 0) { if(resultList.size() > 0) {
@ -1809,10 +1809,10 @@ public class EgovUserManageController {
//단문 건수 금액 변수 처리 //단문 건수 금액 변수 처리
String msgSmsGroupSCntSum = "0"; //정상수신 건수 합계 String msgSmsGroupSCntSum = "0"; //정상수신 건수 합계
String totSmsSPriceSum = "0"; //정상수신 금액 합계 String totSmsSPriceSum = "0"; //정상수신 금액 합계
String msgSmsGroupFWCntSum = "0"; //실패대기 건수 합계 String msgSmsGroupFWCntSum = "0"; //실패대기 건수 합계
String totSmsFWPriceSum = "0"; //실패대기 금액 합계 String totSmsFWPriceSum = "0"; //실패대기 금액 합계
if(resultSmsList.size() > 0) { if(resultSmsList.size() > 0) {
@ -1830,10 +1830,10 @@ public class EgovUserManageController {
//장문 건수 금액 변수 처리 //장문 건수 금액 변수 처리
String msgLmsGroupSCntSum = "0"; //정상수신 건수 합계 String msgLmsGroupSCntSum = "0"; //정상수신 건수 합계
String totLmsSPriceSum = "0"; //정상수신 금액 합계 String totLmsSPriceSum = "0"; //정상수신 금액 합계
String msgLmsGroupFWCntSum = "0"; //실패대기 건수 합계 String msgLmsGroupFWCntSum = "0"; //실패대기 건수 합계
String totLmsFWPriceSum = "0"; //실패대기 금액 합계 String totLmsFWPriceSum = "0"; //실패대기 금액 합계
if(resultLmsList.size() > 0) { if(resultLmsList.size() > 0) {
@ -1851,10 +1851,10 @@ public class EgovUserManageController {
//그림 건수 금액 변수 처리 //그림 건수 금액 변수 처리
String msgMmsGroupSCntSum = "0"; //정상수신 건수 합계 String msgMmsGroupSCntSum = "0"; //정상수신 건수 합계
String totMmsSPriceSum = "0"; //정상수신 금액 합계 String totMmsSPriceSum = "0"; //정상수신 금액 합계
String msgMmsGroupFWCntSum = "0"; //실패대기 건수 합계 String msgMmsGroupFWCntSum = "0"; //실패대기 건수 합계
String totMmsFWPriceSum = "0"; //실패대기 금액 합계 String totMmsFWPriceSum = "0"; //실패대기 금액 합계
if(resultMmsList.size() > 0) { if(resultMmsList.size() > 0) {

View File

@ -4451,6 +4451,7 @@
, msgGroupId , msgGroupId
, callFrom , callFrom
, callTo , callTo
, sendKind
, smsTxt , smsTxt
, fileCnt , fileCnt
, msgType , msgType
@ -4475,50 +4476,84 @@
, smiId , smiId
, delayYn , delayYn
, delayCompleteYn , delayCompleteYn
,( ,(SELECT
SELECT CONCAT(
CONCAT( (IF(B.FILE_PATH1 IS NOT NULL
( , (SELECT
IF(B.FILE_PATH1 IS NOT NULL, (SELECT ATCH_FILE_ID
ATCH_FILE_ID FROM
FROM LETTNFILEDETAIL LETTNFILEDETAIL
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH1, '/', -1)) WHERE 1=1
LIMIT 1), '') AND CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH1, '/', -1))
) LIMIT 1)
,'^', , '')
( )
IF(B.FILE_PATH2 IS NOT NULL, (SELECT , '^'
ATCH_FILE_ID , (IF(B.FILE_PATH2 IS NOT NULL
FROM LETTNFILEDETAIL , (SELECT
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH2, '/', -1)) ATCH_FILE_ID
LIMIT 1), '') FROM
) LETTNFILEDETAIL
,'^', WHERE 1=1
( AND CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH2, '/', -1))
IF(B.FILE_PATH3 IS NOT NULL, (SELECT LIMIT 1)
ATCH_FILE_ID , '')
FROM LETTNFILEDETAIL )
WHERE CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH3, '/', -1)) , '^'
LIMIT 1), '') , (IF(B.FILE_PATH3 IS NOT NULL
)) , (SELECT
FROM ATCH_FILE_ID
MJ_MSG_DATA B FROM
WHERE LETTNFILEDETAIL
B.MSG_GROUP_ID = msgGroupId WHERE 1=1
LIMIT 1 AND CONCAT(STRE_FILE_NM, '.', FILE_EXTSN) = CONCAT(SUBSTRING_INDEX(B.FILE_PATH3, '/', -1))
) AS atchFiles LIMIT 1)
, '')
)
)
FROM
MJ_MSG_DATA B
WHERE 1=1
AND B.MSG_GROUP_ID = msgGroupId
LIMIT 1
) AS atchFiles
FROM FROM
(SELECT (SELECT
(SELECT count(1) (SELECT
FROM count(1)
(SELECT FROM
(<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt, (SELECT
MGD.MSG_GROUP_ID (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
FROM MJ_MSG_GROUP_DATA MGD , MGD.MSG_GROUP_ID
FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
WHERE MGD.USER_ID = #userId# WHERE 1=1
AND MGD.USER_ID = #userId#
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde# AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<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>
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%') OR MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="reserveType"> <isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D"> <isEqual property="reserveType" compareValue="D">
<![CDATA[ <![CDATA[
@ -4533,20 +4568,24 @@
]]> ]]>
</isEqual> </isEqual>
</isNotEmpty> </isNotEmpty>
) sub2 ) sub2
WHERE sub2.resultCodeTxt = 'S' WHERE 1=1
AND sub2.MSG_GROUP_ID = IN1.MSG_GROUP_ID AND sub2.resultCodeTxt = 'S'
) AS msgGroupSCnt AND sub2.MSG_GROUP_ID = IN1.MSG_GROUP_ID
) AS msgGroupSCnt
, COUNT(MSG_GROUP_ID) * EACH_PRICE AS totSPrice , COUNT(MSG_GROUP_ID) * EACH_PRICE AS totSPrice
, (SELECT count(1) , (SELECT
FROM count(1)
FROM
(SELECT (SELECT
(<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt, (<include refid="MjonMsgSentDAO.selectAgentResultQuery_MD"/>) AS resultCodeTxt
MGD.MSG_GROUP_ID , MGD.MSG_GROUP_ID
FROM MJ_MSG_GROUP_DATA MGD FROM
MJ_MSG_GROUP_DATA MGD
LEFT JOIN MJ_MSG_DATA MD LEFT JOIN MJ_MSG_DATA MD
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID
WHERE MGD.USER_ID = #userId# WHERE 1=1
AND MGD.USER_ID = #userId#
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde# AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<isNotEmpty property="reserveType"> <isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D"> <isEqual property="reserveType" compareValue="D">
@ -4562,15 +4601,17 @@
]]> ]]>
</isEqual> </isEqual>
</isNotEmpty> </isNotEmpty>
) sub2 ) sub2
WHERE <![CDATA[ sub2.resultCodeTxt <> 'S' ]]> WHERE 1=1
AND sub2.MSG_GROUP_ID = IN1.MSG_GROUP_ID AND <![CDATA[ sub2.resultCodeTxt <> 'S' ]]>
AND sub2.MSG_GROUP_ID = IN1.MSG_GROUP_ID
) AS msgGroupFWCnt ) AS msgGroupFWCnt
, '0' AS totFWPrice , '0' AS totFWPrice
, MSG_GROUP_ID AS msgGroupId , MSG_GROUP_ID AS msgGroupId
, USER_ID AS userId , USER_ID AS userId
, CALL_FROM AS callFrom , CALL_FROM AS callFrom
, CALL_TO AS callTo , CALL_TO AS callTo
, SEND_KIND AS sendKind
, SMS_TXT AS smsTxt , SMS_TXT AS smsTxt
, FILE_CNT AS fileCnt , FILE_CNT AS fileCnt
, MSG_TYPE AS msgType , MSG_TYPE AS msgType
@ -4601,6 +4642,7 @@
, MGD.USER_ID , MGD.USER_ID
, MGD.CALL_FROM , MGD.CALL_FROM
, MD.CALL_TO , MD.CALL_TO
, MGD.SEND_KIND
, MGD.SMS_TXT , MGD.SMS_TXT
, MGD.FILE_CNT , MGD.FILE_CNT
, MD.MSG_TYPE , MD.MSG_TYPE
@ -4657,6 +4699,26 @@
</isEqual> </isEqual>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde# AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<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>
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%') OR MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="reserveType"> <isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D"> <isEqual property="reserveType" compareValue="D">
<![CDATA[ <![CDATA[
@ -4670,18 +4732,18 @@
AND MGD.RESERVE_YN = 'Y' AND MGD.RESERVE_YN = 'Y'
]]> ]]>
/**30분 지연이 아니거나 지연 처리가 완료된 건들 불러오기*/ /**30분 지연이 아니거나 지연 처리가 완료된 건들 불러오기*/
AND AND
( (
( (
MGD.DELAY_YN = 'N' MGD.DELAY_YN = 'N'
AND MGD.DELAY_COMPLETE_YN = 'N' AND MGD.DELAY_COMPLETE_YN = 'N'
) )
OR OR
( (
MGD.DELAY_YN = 'Y' MGD.DELAY_YN = 'Y'
AND MGD.DELAY_COMPLETE_YN = 'Y' AND MGD.DELAY_COMPLETE_YN = 'Y'
) )
) )
</isEqual> </isEqual>
</isNotEmpty> </isNotEmpty>
@ -4803,8 +4865,8 @@
ON MD.MSG_GROUP_ID = MGD.MSG_GROUP_ID 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 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 ON MD.AGENT_CODE = B.CODE
WHERE WHERE 1=1
MGD.USER_ID = #userId# AND MGD.USER_ID = #userId#
AND MGD.MSG_TYPE IN (4, 6) AND MGD.MSG_TYPE IN (4, 6)
<isNotEmpty property="msgType"> <isNotEmpty property="msgType">
AND MGD.MSG_TYPE = #msgType# AND MGD.MSG_TYPE = #msgType#
@ -4816,6 +4878,28 @@
AND MGD.FILE_CNT = 0 AND MGD.FILE_CNT = 0
</isEqual> </isEqual>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde# AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<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>
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%') OR MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="reserveType"> <isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D"> <isEqual property="reserveType" compareValue="D">
<![CDATA[ <![CDATA[
@ -4924,6 +5008,27 @@
</isEqual> </isEqual>
AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde# AND DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
<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>
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%') OR MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
MD.CALL_FROM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
MD.SMS_TXT LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="reserveType"> <isNotEmpty property="reserveType">
<isEqual property="reserveType" compareValue="D"> <isEqual property="reserveType" compareValue="D">
<![CDATA[ <![CDATA[
@ -5017,25 +5122,47 @@
<!-- 일별 문자발송 건수 --> <!-- 일별 문자발송 건수 -->
<select id="mjonMsgDAO.selectMsgDayChart_230125" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> <select id="mjonMsgDAO.selectMsgDayChart_230125" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
SELECT a.SEND_DATE AS regDate SELECT
, a.send_cnt AS sendCount a.SEND_DATE AS regDate
, a.success_cnt AS successCount , IFNULL(a.send_cnt, 0) AS sendCount
, DATE_FORMAT(a.regist_pnttm, '%H:%i:%s') AS registPnttm , IFNULL(a.API_SEND_CNT, 0) AS aSendCount
/* , IFNULL(a.send_cnt, 0) + IFNULL(a.API_SEND_CNT, 0) AS totalSendCount
, a.regist_pnttm AS registPnttm
*/ , IFNULL(a.success_cnt, 0) AS successCount
, COUNT(a.SEND_DATE) OVER() AS totCnt /** 전체 건수 */ , IFNULL(a.API_SUCCESS_CNT, 0) AS aSuccessCount
FROM mj_sttst_msg a , IFNULL(a.success_cnt, 0) + IFNULL(a.API_SUCCESS_CNT, 0) AS totalSuccessCount
WHERE 1=1
AND <![CDATA[ a.send_date <= DATE_FORMAT(NOW(), '%Y-%m-%d') ]]>
<isNotEmpty property="ntceBgnde"> , IFNULL(ROUND(((IFNULL(a.success_cnt, 0) + IFNULL(a.API_SUCCESS_CNT, 0)) / (IFNULL(a.send_cnt, 0) + IFNULL(a.API_SEND_CNT, 0))) * 100), 0) AS rateTotalSuccessCount
AND <![CDATA[ a.send_date >= #ntceBgnde# ]]> , IFNULL(ROUND((a.success_cnt / a.send_cnt ) * 100), 0) AS rateSuccessCount
</isNotEmpty> , IFNULL(ROUND((a.API_SUCCESS_CNT / a.API_SEND_CNT ) * 100), 0) AS rateApiSuccessCount
<isNotEmpty property="ntceEndde">
, DATE_FORMAT(a.regist_pnttm, '%H:%i:%s') AS registPnttm
, COUNT(a.SEND_DATE) OVER() AS totCnt /** 전체 건수 */
FROM
mj_sttst_msg a
WHERE 1=1
AND <![CDATA[ a.send_date <= DATE_FORMAT(NOW(), '%Y-%m-%d') ]]>
<isNotEmpty property="ntceBgnde">
AND <![CDATA[ a.send_date >= #ntceBgnde# ]]>
</isNotEmpty>
<isNotEmpty property="ntceEndde">
AND <![CDATA[ a.send_date <= #ntceEndde# ]]> AND <![CDATA[ a.send_date <= #ntceEndde# ]]>
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND a.send_cnt != 0
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND a.API_SEND_CNT != 0
</isEqual>
</isNotEmpty>
<isEmpty property="sendKind">
AND (a.send_cnt != 0 || a.API_SEND_CNT != 0)
</isEmpty>
ORDER BY a.SEND_DATE DESC ORDER BY a.SEND_DATE DESC
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select> </select>
@ -5085,16 +5212,29 @@
<!-- 월별 문자발송 건수 --> <!-- 월별 문자발송 건수 -->
<select id="mjonMsgDAO.selectMsgMonthChart_230125" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> <select id="mjonMsgDAO.selectMsgMonthChart_230125" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
SELECT substring(a.send_date,1,7) AS regDate SELECT
, sum(a.send_cnt) AS sendCount substring(a.send_date,1,7) AS regDate
, sum(a.success_cnt) AS successCount
, IFNULL(sum(a.send_cnt), 0) AS sendCount
, IFNULL(sum(a.API_SEND_CNT), 0) AS aSendCount
, IFNULL(sum(a.send_cnt), 0) + IFNULL(sum(a.API_SEND_CNT), 0) AS totalSendCount
, IFNULL(sum(a.success_cnt), 0) AS successCount
, IFNULL(sum(a.API_SUCCESS_CNT), 0) AS aSuccessCount
, IFNULL(sum(a.success_cnt), 0) + IFNULL(sum(a.API_SUCCESS_CNT), 0) AS totalSuccessCount
, IFNULL(ROUND((IFNULL(sum(a.success_cnt), 0) / IFNULL(sum(a.send_cnt), 0)) * 100), 0) AS rateSuccessCount
, IFNULL(ROUND((IFNULL(sum(a.API_SUCCESS_CNT), 0) / IFNULL(sum(a.API_SEND_CNT), 0)) * 100), 0) AS rateApiSuccessCount
, IFNULL(ROUND((IFNULL(sum(a.success_cnt), 0) + IFNULL(sum(a.API_SUCCESS_CNT), 0)) / (IFNULL(sum(a.send_cnt), 0) + IFNULL(sum(a.API_SEND_CNT), 0)) * 100), 0) AS rateTotalSuccessCount
, max(DATE_FORMAT(a.regist_pnttm, '%H:%i:%s')) AS registPnttm , max(DATE_FORMAT(a.regist_pnttm, '%H:%i:%s')) AS registPnttm
FROM mj_sttst_msg a FROM
mj_sttst_msg a
WHERE 1=1 WHERE 1=1
AND a.send_date like concat(#ntceBgnde#,'%') AND a.send_date like concat(#ntceBgnde#,'%')
AND <![CDATA[ a.send_date <= DATE_FORMAT(NOW(), '%Y-%m-%d') ]]> AND <![CDATA[ a.send_date <= DATE_FORMAT(NOW(), '%Y-%m-%d') ]]>
group by substring(a.send_date,1,7)
group by substring(a.send_date,1,7)
order by send_date desc order by send_date desc
</select> </select>

View File

@ -8,176 +8,251 @@
<typeAlias alias="mjonMsgVO" type="itn.let.mjo.msg.service.MjonMsgVO"/> <typeAlias alias="mjonMsgVO" type="itn.let.mjo.msg.service.MjonMsgVO"/>
<insert id="mjonSttst.insertMjSttstMsgBulk" parameterClass="mjonMsgVO"> <insert id="mjonSttst.insertMjSttstMsgBulk" parameterClass="mjonMsgVO">
INSERT INTO mj_sttst_msg INSERT INTO MJ_STTST_MSG
(send_date, send_cnt, success_cnt, regist_pnttm) (
send_date
, send_cnt
, success_cnt
, API_SEND_CNT
, API_SUCCESS_CNT
, regist_pnttm
)
select aa.regDate SELECT
, aa.sendCount aa.regDate
, aa.successCount , aa.hSendCount
, aa.hSuccessCount
, aa.aSendCount
, aa.aSuccessCount
, now() , now()
FROM(
from ( SELECT
SELECT M2.regDate
M2.regDate , , SUM(M2.hSendCount) AS hSendCount
SUM(M2.sendCount) AS sendCount , , SUM(M2.hSuccessCount) AS hSuccessCount
SUM(M2.successCount) AS successCount , SUM(M2.aSendCount) AS aSendCount
, SUM(M2.aSuccessCount) AS aSuccessCount
FROM ( SELECT
M.REQ_DATE AS regDate FROM(
/*발송일*/ SELECT
M.REQ_DATE AS regDate /*발송일*/
, IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount , IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount /*발송건수*/
/*발송건수*/ , M.aSendCount /*API 발송건수*/
, M.hSendCount /*홈페이지 발송건수*/
, MSG_GROUP_ID , MSG_GROUP_ID
, (SELECT
, COUNT(0)
(SELECT COUNT(0) FROM
FROM MJ_MSG_DATA A MJ_MSG_DATA A
WHERE A.USER_ID NOT IN ('hftest', WHERE 1=1
'itntest', AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
'imotest', AND A.RESERVE_C_YN = 'N'
'itntestBatch') AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
AND A.RESERVE_C_YN = 'N' AND M.SEND_KIND = 'H'
AND A.MSG_GROUP_ID = M.MSG_GROUP_ID AND (
AND (CASE CASE
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
THEN 'S' 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') 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' THEN 'S'
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S' THEN 'S'
WHEN ( WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL )
A.RSLT_CODE IS NULL THEN 'W'
AND A.RSLT_CODE2 IS NULL ELSE 'F'
AND A.SENT_DATE IS NULL END
AND A.RSLT_DATE IS NULL ) = 'S'
) ) AS hSuccessCount /*홈페이지 성공건수*/
THEN 'W' , (SELECT
ELSE 'F' COUNT(0)
END ) = 'S' FROM
) MJ_MSG_DATA A
AS successCount WHERE 1=1
/*성공건수*/ AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
AND A.RESERVE_C_YN = 'N'
FROM ( SELECT DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE , AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT , AND M.SEND_KIND = 'A'
P.MSG_GROUP_ID AND (
FROM MJ_MSG_GROUP_DATA P CASE
WHERE USER_ID NOT IN ('hftest', WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
'itntest', THEN 'S'
'imotest', WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
'itntestBatch') THEN 'S'
AND P.RESERVE_C_YN = 'N' 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')
AND P.req_date > DATE_ADD(now(), interval -14 day) THEN 'S'
GROUP BY P.MSG_GROUP_ID WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
) THEN 'S'
M WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
) THEN 'S'
M2 WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
GROUP BY M2.regDate THEN 'S'
)aa WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
on DUPLICATE KEY UPDATE THEN 'S'
send_cnt=aa.sendCount WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
, success_cnt=aa.successCount THEN 'S'
, regist_pnttm=now() 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 ) = 'S'
) AS aSuccessCount /*API 성공건수*/
FROM(
SELECT
DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE
, SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT
, P.MSG_GROUP_ID
, P.SEND_KIND
, IF(P.SEND_KIND = 'A', SUM(P.MSG_GROUP_CNT), 0) AS aSendCount
, IF(P.SEND_KIND = 'H', SUM(P.MSG_GROUP_CNT), 0) AS hSendCount
FROM
MJ_MSG_GROUP_DATA P
WHERE 1=1
AND USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
AND P.RESERVE_C_YN = 'N'
AND P.req_date > DATE_ADD(now(), interval -14 day)
GROUP BY
P.MSG_GROUP_ID
)M
)M2
GROUP BY M2.regDate
)aa
ON DUPLICATE KEY UPDATE
send_cnt =aa.hSendCount
, success_cnt =aa.hSuccessCount
, API_SEND_CNT =aa.aSendCount
, API_SUCCESS_CNT =aa.aSuccessCount
, regist_pnttm =now()
</insert> </insert>
<insert id="mjonSttst.insertMjSttstMsgDayBulk" parameterClass="mjonMsgVO"> <insert id="mjonSttst.insertMjSttstMsgDayBulk" parameterClass="mjonMsgVO">
INSERT INTO mj_sttst_msg INSERT INTO MJ_STTST_MSG
(send_date, send_cnt, success_cnt, regist_pnttm) (
send_date
, send_cnt
, success_cnt
, API_SEND_CNT
, API_SUCCESS_CNT
, regist_pnttm
)
select aa.regDate SELECT
, aa.sendCount aa.regDate
, aa.successCount , aa.hSendCount
, aa.hSuccessCount
, aa.aSendCount
, aa.aSuccessCount
, now() , now()
FROM(
from ( SELECT
SELECT M2.regDate
M2.regDate , , SUM(M2.sendCount) AS sendCount
SUM(M2.sendCount) AS sendCount , , SUM(M2.successCount) AS successCount
SUM(M2.successCount) AS successCount FROM(
SELECT
FROM ( SELECT M.REQ_DATE AS regDate /*발송일*/
M.REQ_DATE AS regDate , IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount /*발송건수*/
/*발송일*/ , M.aSendCount /*API 발송건수*/
, M.hSendCount /*홈페이지 발송건수*/
, IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount , MSG_GROUP_ID
/*발송건수*/ , (SELECT
COUNT(0)
, MSG_GROUP_ID FROM
MJ_MSG_DATA A
, (SELECT COUNT(0) WHERE 1=1
FROM MJ_MSG_DATA A AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
WHERE A.USER_ID NOT IN ('hftest', AND A.RESERVE_C_YN = 'N'
'itntest', AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
'imotest', AND M.SEND_KIND = 'H'
'itntestBatch') AND (
AND A.RESERVE_C_YN = 'N' CASE
AND A.MSG_GROUP_ID = M.MSG_GROUP_ID WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
AND ( THEN 'S'
CASE WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND(A.RSLT_CODE2 = '0')) THEN 'S'
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')
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') THEN 'S'
THEN 'S' WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
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'
THEN 'S' WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') THEN 'S'
THEN 'S' WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') THEN 'S'
THEN 'S' WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') THEN 'S'
THEN 'S' WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') THEN 'S'
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 )
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') THEN 'W'
THEN 'S' ELSE 'F'
WHEN ( END
A.RSLT_CODE IS NULL ) = 'S'
AND A.RSLT_CODE2 IS NULL ) AS hSuccessCount /*홈페이지 성공건수*/
AND A.SENT_DATE IS NULL , (SELECT
AND A.RSLT_DATE IS NULL COUNT(0)
) FROM
THEN 'W' MJ_MSG_DATA A
ELSE 'F' WHERE 1=1
END ) = 'S' AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
) AND A.RESERVE_C_YN = 'N'
AS successCount AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
/*성공건수*/ AND M.SEND_KIND = 'A'
AND (
FROM ( SELECT DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE , CASE
SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT , WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
P.MSG_GROUP_ID THEN 'S'
FROM MJ_MSG_GROUP_DATA P WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
WHERE USER_ID NOT IN ('hftest', THEN 'S'
'itntest', 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')
'imotest', THEN 'S'
'itntestBatch') WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
AND P.RESERVE_C_YN = 'N' THEN 'S'
GROUP BY P.MSG_GROUP_ID WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
) THEN 'S'
M WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
) THEN 'S'
M2 WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
GROUP BY M2.regDate THEN 'S'
)aa WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
on DUPLICATE KEY UPDATE THEN 'S'
send_cnt=aa.sendCount WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL )
, success_cnt=aa.successCount THEN 'W'
, regist_pnttm=now() ELSE 'F'
END ) = 'S'
) AS aSuccessCount /*API 성공건수*/
FROM(
SELECT
DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE
, SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT
, P.MSG_GROUP_ID
, P.SEND_KIND
, IF(P.SEND_KIND = 'A', SUM(P.MSG_GROUP_CNT), 0) AS aSendCount
, IF(P.SEND_KIND = 'H', SUM(P.MSG_GROUP_CNT), 0) AS hSendCount
FROM
MJ_MSG_GROUP_DATA P
WHERE 1=1
AND USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
AND P.RESERVE_C_YN = 'N'
GROUP BY
P.MSG_GROUP_ID
)M
)M2
GROUP BY M2.regDate
)aa
ON DUPLICATE KEY UPDATE
send_cnt =aa.hSendCount
, success_cnt =aa.hSuccessCount
, API_SEND_CNT =aa.aSendCount
, API_SUCCESS_CNT =aa.aSuccessCount
, regist_pnttm =now()
</insert> </insert>
<insert id="mjonSttst.insertMjSttstMsgRankBulk" parameterClass="mjonMsgVO"> <insert id="mjonSttst.insertMjSttstMsgRankBulk" parameterClass="mjonMsgVO">

View File

@ -1331,6 +1331,7 @@
AND A.MSG_GROUP_ID = A.msgGroupId AND A.MSG_GROUP_ID = A.msgGroupId
AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S' AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S'
) AS successCnt ) AS successCnt
, MGD.SEND_KIND AS sendKind
, MGD.SMS_TXT AS smsTxt , MGD.SMS_TXT AS smsTxt
, userdata , userdata
, curState , curState
@ -1451,6 +1452,7 @@
AND A.MSG_GROUP_ID = A.msgGroupId AND A.MSG_GROUP_ID = A.msgGroupId
AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S' AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S'
) AS successCnt ) AS successCnt
, MGD.SEND_KIND AS sendKind
, MGD.SMS_TXT AS smsTxt , MGD.SMS_TXT AS smsTxt
, userdata , userdata
, curState , curState
@ -1574,6 +1576,7 @@
AND A.MSG_GROUP_ID = A.msgGroupId AND A.MSG_GROUP_ID = A.msgGroupId
AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S' AND (<include refid="MjonMsgSentDAO.selectAgentResultQuery_A"/>) = 'S'
) AS successCnt ) AS successCnt
, MGD.SEND_KIND AS sendKind
, MGD.SMS_TXT AS smsTxt , MGD.SMS_TXT AS smsTxt
, userdata , userdata
, curState , curState

View File

@ -120,6 +120,10 @@ function init_date(){
$('#ntceEnddeYYYMMDD').val(''); $('#ntceEnddeYYYMMDD').val('');
$('#ntceBgnde').val(''); $('#ntceBgnde').val('');
$('#ntceEndde').val(''); $('#ntceEndde').val('');
$('#searchKeyword').val('');
$('#sendKind').val('').prop("selected",true);
$('#searchCondition').val('').prop("selected",true);
} }
@ -342,6 +346,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
<div class="tableWrap tableWrapTotal"> <div class="tableWrap tableWrapTotal">
<table class="tbType1"> <table class="tbType1">
<colgroup> <colgroup>
<col style="width:5.00%">
<col style="width:5.00%"> <col style="width:5.00%">
<col style="width:5.50%"> <col style="width:5.50%">
<col style="width:7.00%"> <col style="width:7.00%">
@ -361,6 +366,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th rowspan="2">방식</th>
<th colspan="4">단문</th> <th colspan="4">단문</th>
<th colspan="4">장문</th> <th colspan="4">장문</th>
<th colspan="4">그림문자</th> <th colspan="4">그림문자</th>
@ -387,51 +393,93 @@ function fn_updateSendRealTime(userId, msgGroupId){
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgSmsGroupSCntSum}" pattern="#,###" /></span></td> <td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsSPriceSum}" pattern="#,###" /></span></td> 전체
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgSmsGroupFWCntSum}" pattern="#,###" /></span></td> </td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsFWPriceSum}" pattern="#,###" /></span></td> <td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupSCntSum}" pattern="#,###" /></span></td> <span class="tType4 c_456ded fwBold">
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsSPriceSum}" pattern="#,###" /></span></td> <fmt:formatNumber value="${msgSmsGroupSCntSum}" pattern="#,###" />
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupFWCntSum}" pattern="#,###" /></span></td> </span>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsFWPriceSum}" pattern="#,###" /></span></td> </td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupSCntSum}" pattern="#,###" /></span></td> <td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsSPriceSum}" pattern="#,###" /></span></td> <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsSPriceSum}" pattern="#,###" /></span>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupFWCntSum}" pattern="#,###" /></span></td> </td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsFWPriceSum}" pattern="#,###" /></span></td> <td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupSCntSum}" pattern="#,###" /></span></td> <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgSmsGroupFWCntSum}" pattern="#,###" /></span>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSPriceSum}" pattern="#,###" /></span></td> </td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupFWCntSum}" pattern="#,###" /></span></td> <td>
<td><span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totFWPriceSum}" pattern="#,###" /></span></td> <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSmsFWPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgLmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totLmsFWPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgMmsGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totMmsFWPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupSCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totSPriceSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${msgGroupFWCntSum}" pattern="#,###" /></span>
</td>
<td>
<span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${totFWPriceSum}" pattern="#,###" /></span>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="listSerch"> <div class="listSerch">
<select name="searchCondition" class="select" title="검색조건 선택">
<select id="sendKind" name="sendKind" class="select" title="검색조건 선택">
<option value="" <c:if test="${searchVO.sendKind == ''}">selected="selected"</c:if>>발송방식 전체</option>
<option value="H" <c:if test="${searchVO.sendKind == 'H'}">selected="selected"</c:if>>WEB</option>
<option value="A" <c:if test="${searchVO.sendKind == 'A'}">selected="selected"</c:if>>API</option>
</select>
<select id="searchCondition" name="searchCondition" class="select" title="검색조건 선택">
<option value="" <c:if test="${searchVO.searchCondition == ''}">selected="selected"</c:if>>발신번호/내용</option> <option value="" <c:if test="${searchVO.searchCondition == ''}">selected="selected"</c:if>>발신번호/내용</option>
<%-- <option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if>>사용자ID</option> --%> <option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if>>발신번호</option>
<option value="2" <c:if test="${searchVO.searchCondition == '2'}">selected="selected"</c:if>>발신번호</option> <option value="2" <c:if test="${searchVO.searchCondition == '2'}">selected="selected"</c:if>>전송내용</option>
<option value="3" <c:if test="${searchVO.searchCondition == '3'}">selected="selected"</c:if>>전송내용</option>
</select> </select>
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="100" /> <input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="100" />
<input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;"> <input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;">
<input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do"> <input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.ntceBgnde}" />" > value="<c:out value="${searchVO.ntceBgnde}" />" >
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
&nbsp;&nbsp;~ &nbsp;&nbsp;~
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.ntceEndde}" />" value="<c:out value="${searchVO.ntceEndde}" />" >
> <input type="button" class="calBtn">
<input type="button" class="calBtn"> </a>
</a>
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;"> <a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘"> <img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
</a> </a>
@ -462,7 +510,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
<col style="width: 6%"> <col style="width: 6%">
<%-- <col style="width: 8%"> --%> <%-- <col style="width: 8%"> --%>
<%-- <col style="width: 6%"> --%> <%-- <col style="width: 6%"> --%>
<%--<col style="width: 6%">--%> <col style="width: 6%">
<col style="width: 8%"> <col style="width: 8%">
<col style="width: 7%"> <col style="width: 7%">
<col style="width: 7%"> <col style="width: 7%">
@ -482,9 +530,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
<th>예약</th> <th>예약</th>
<th>내용</th> <th>내용</th>
<th>타입</th> <th>타입</th>
<!-- <th>금액</th> --> <th>방식</th>
<!-- <th>발송결과</th> -->
<%--<th>전송사</th>--%>
<th>스미싱의심</th> <th>스미싱의심</th>
<th>이용정지</th> <th>이용정지</th>
<th>발송처리</th> <th>발송처리</th>
@ -495,24 +541,24 @@ function fn_updateSendRealTime(userId, msgGroupId){
<tr> <tr>
<td> <td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }"> <c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/> <c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if> </c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }"> <c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/> <c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if> </c:if>
</td> </td>
<td> <td>
<c:out value="${result.callFrom}"/> <c:out value="${result.callFrom}"/>
</td> </td>
<td title="<c:out value="${result.regDate}"/>"> <td title="<c:out value="${result.regDate}"/>">
<fmt:parseDate value="${result.regDate}" var="regDateValue" pattern="yyyy-MM-dd HH:mm"/> <fmt:parseDate value="${result.regDate}" var="regDateValue" pattern="yyyy-MM-dd HH:mm"/>
<fmt:formatDate value="${regDateValue}" pattern="MM-dd HH:mm"/> <fmt:formatDate value="${regDateValue}" pattern="MM-dd HH:mm"/>
</td> </td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${result.reserveCYn eq 'Y'}"> <c:when test="${result.reserveCYn eq 'Y'}">
<c:out value="${result.cancelDate}"/> <c:out value="${result.cancelDate}"/>
</c:when> </c:when>
<c:when test="${result.reserveYn eq 'Y' && result.reserveCYn eq 'N'}"> <c:when test="${result.reserveYn eq 'Y' && result.reserveCYn eq 'N'}">
<c:out value="${result.reqDate}"/> <c:out value="${result.reqDate}"/>
</c:when> </c:when>
@ -525,21 +571,13 @@ function fn_updateSendRealTime(userId, msgGroupId){
</c:choose> </c:choose>
</td> </td>
<td> <td>
<%-- <c:choose>
<c:when test="${result.resultCodeTxt eq 'S'}">
<fmt:formatNumber value="${result.msgGroupSCnt}" pattern="#,###" />
</c:when>
<c:otherwise>
<fmt:formatNumber value="${result.msgGroupFWCnt}" pattern="#,###" />
</c:otherwise>
</c:choose> --%>
<fmt:formatNumber value="${result.msgGroupSCnt}" pattern="#,###" />/<fmt:formatNumber value="${result.msgGroupFWCnt}" pattern="#,###" />(<fmt:formatNumber value="${(result.msgGroupSCnt / (result.msgGroupSCnt + result.msgGroupFWCnt)) * 100}" pattern="#,###" />%) <fmt:formatNumber value="${result.msgGroupSCnt}" pattern="#,###" />/<fmt:formatNumber value="${result.msgGroupFWCnt}" pattern="#,###" />(<fmt:formatNumber value="${(result.msgGroupSCnt / (result.msgGroupSCnt + result.msgGroupFWCnt)) * 100}" pattern="#,###" />%)
</td> </td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${result.reserveCYn eq 'Y'}"> <c:when test="${result.reserveCYn eq 'Y'}">
예약취소 예약취소
</c:when> </c:when>
<c:when test="${result.reserveYn eq 'Y' && result.reserveCYn eq 'N'}"> <c:when test="${result.reserveYn eq 'Y' && result.reserveCYn eq 'N'}">
예약 예약
</c:when> </c:when>
@ -547,27 +585,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
즉시 즉시
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td>
<%--
<td class="msg_detail">
<button type="button" class="btnType btnType20" id="msgDetail" name="msgDetail" onclick="msgDetailView(this, '<c:out value="${result.msgGroupId}"/>', '${status.count}'); return false;">상세보기</button>
<div class="layer_msg_wrap">
<div class="layer_msg_detail">
<button type="button" onclick="msgDetailClose(this);"></button>
<div class="title">
<c:choose>
<c:when test="${result.msgType eq '4'}">단문</c:when>
<c:when test="${result.msgType eq '6' && result.fileCnt > 0}">그림(<c:out value="${result.fileCnt}"/>장)</c:when>
<c:otherwise>장문</c:otherwise>
</c:choose>
</div>
<div class="content msgSentDetailPopLoad${status.count}">
</div>
</div>
</div>
</td> </td>
--%>
<td class="sms_detail left"> <td class="sms_detail left">
<c:choose> <c:choose>
<c:when test="${empty result.smsTxt}"> <c:when test="${empty result.smsTxt}">
@ -612,8 +630,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
</div> </div>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${result.msgType eq '4'}"> <c:when test="${result.msgType eq '4'}">
@ -627,30 +644,16 @@ function fn_updateSendRealTime(userId, msgGroupId){
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<%-- <td> <td>
<c:choose> <c:choose>
<c:when test="${result.resultCodeTxt eq 'S'}"> <c:when test="${result.sendKind eq 'A'}">
<fmt:formatNumber value="${result.totSPrice}" pattern="#,###" /> API
</c:when>
<c:when test="${result.sendKind eq 'H'}">
홈페이지
</c:when> </c:when>
<c:otherwise>
<fmt:formatNumber value="${result.totFWPrice}" pattern="#,###" />
</c:otherwise>
</c:choose> </c:choose>
</td> --%> </td>
<%-- <td>
<c:choose>
<c:when test="${result.resultCodeTxt eq 'S'}">
정상수신
</c:when>
<c:when test="${result.resultCodeTxt eq 'F'}">
수신오류
</c:when>
<c:otherwise>
결과대기
</c:otherwise>
</c:choose>
</td> --%>
<%--<td><c:out value="${result.agentCodeTxt}"/></td>--%>
<td> <td>
<c:choose> <c:choose>
<c:when test="${result.delayYn eq 'Y'}"> <c:when test="${result.delayYn eq 'Y'}">
@ -702,7 +705,7 @@ function fn_updateSendRealTime(userId, msgGroupId){
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty resultList}"> <c:if test="${empty resultList}">
<tr><td colspan="11"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="12"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>

View File

@ -3721,6 +3721,7 @@ function kakaoATDelayCancel(msgGroupId){
<colgroup> <colgroup>
<col style="width:5%;"> <col style="width:5%;">
<col style="width:7%;"> <col style="width:7%;">
<col style="width:7%;">
<col style="width:9%;"> <col style="width:9%;">
<col style="width:13%;"> <col style="width:13%;">
<col style="width:15%;"> <col style="width:15%;">
@ -3733,6 +3734,7 @@ function kakaoATDelayCancel(msgGroupId){
<tr> <tr>
<th>번호</th> <th>번호</th>
<th>종류</th> <th>종류</th>
<th>방식</th>
<th>등록일시</th> <th>등록일시</th>
<th>전송일시</th> <th>전송일시</th>
<th>발신번호</th> <th>발신번호</th>
@ -3747,7 +3749,9 @@ function kakaoATDelayCancel(msgGroupId){
<c:when test="${not empty mjonMsgSentList}"> <c:when test="${not empty mjonMsgSentList}">
<c:forEach var="mjonMsgSentList" items="${mjonMsgSentList}" varStatus="status"> <c:forEach var="mjonMsgSentList" items="${mjonMsgSentList}" varStatus="status">
<tr> <tr>
<td><c:out value="${status.count}"/></td> <td>
<c:out value="${status.count}"/>
</td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${mjonMsgSentList.msgType == '4'}"> <c:when test="${mjonMsgSentList.msgType == '4'}">
@ -3771,6 +3775,16 @@ function kakaoATDelayCancel(msgGroupId){
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<td>
<c:choose>
<c:when test="${mjonMsgSentList.sendKind == 'H'}">
WEB
</c:when>
<c:when test="${mjonMsgSentList.sendKind == 'A'}">
API
</c:when>
</c:choose>
</td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty mjonMsgSentList.regdate}"> <c:when test="${not empty mjonMsgSentList.regdate}">
@ -3898,7 +3912,7 @@ function kakaoATDelayCancel(msgGroupId){
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<tr> <tr>
<td colspan="9">문자 발송 내역이 없습니다.</td> <td colspan="10">문자 발송 내역이 없습니다.</td>
</tr> </tr>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
@ -3916,6 +3930,7 @@ function kakaoATDelayCancel(msgGroupId){
<colgroup> <colgroup>
<col style="width:5%;"> <col style="width:5%;">
<col style="width:7%;"> <col style="width:7%;">
<col style="width:7%;">
<col style="width:9%;"> <col style="width:9%;">
<col style="width:13%;"> <col style="width:13%;">
<col style="width:15%;"> <col style="width:15%;">
@ -3928,6 +3943,7 @@ function kakaoATDelayCancel(msgGroupId){
<tr> <tr>
<th>번호</th> <th>번호</th>
<th>종류</th> <th>종류</th>
<th>방식</th>
<th>등록일시</th> <th>등록일시</th>
<th>요청일시</th> <th>요청일시</th>
<th>발신번호</th> <th>발신번호</th>
@ -3966,6 +3982,16 @@ function kakaoATDelayCancel(msgGroupId){
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<td>
<c:choose>
<c:when test="${mjonMsgSentList.sendKind == 'H'}">
WEB
</c:when>
<c:when test="${mjonMsgSentList.sendKind == 'A'}">
API
</c:when>
</c:choose>
</td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty mjonMsgSentList.regdate}"> <c:when test="${not empty mjonMsgSentList.regdate}">
@ -4094,7 +4120,7 @@ function kakaoATDelayCancel(msgGroupId){
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<tr> <tr>
<td colspan="9">예약 문자 내역이 없습니다.</td> <td colspan="10">예약 문자 내역이 없습니다.</td>
</tr> </tr>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
@ -4116,6 +4142,7 @@ function kakaoATDelayCancel(msgGroupId){
<colgroup> <colgroup>
<col style="width:5%;"> <col style="width:5%;">
<col style="width:7%;"> <col style="width:7%;">
<col style="width:7%;">
<col style="width:13%;"> <col style="width:13%;">
<col style="width:14%;"> <col style="width:14%;">
<col style="width:15%;"> <col style="width:15%;">
@ -4128,6 +4155,7 @@ function kakaoATDelayCancel(msgGroupId){
<tr> <tr>
<th><input type="checkbox" name="checkDelayAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th> <th><input type="checkbox" name="checkDelayAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
<th>종류</th> <th>종류</th>
<th>방식</th>
<th>등록일시</th> <th>등록일시</th>
<th>전송일시</th> <th>전송일시</th>
<th>발신번호</th> <th>발신번호</th>
@ -4170,6 +4198,16 @@ function kakaoATDelayCancel(msgGroupId){
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<td>
<c:choose>
<c:when test="${mjonMsgDelaySentList.sendKind == 'H'}">
WEB
</c:when>
<c:when test="${mjonMsgDelaySentList.sendKind == 'A'}">
API
</c:when>
</c:choose>
</td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${not empty mjonMsgDelaySentList.regdate}"> <c:when test="${not empty mjonMsgDelaySentList.regdate}">
@ -4293,7 +4331,7 @@ function kakaoATDelayCancel(msgGroupId){
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<tr> <tr>
<td colspan="9">문자 지연 내역이 없습니다.</td> <td colspan="10">문자 지연 내역이 없습니다.</td>
</tr> </tr>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>

View File

@ -11,14 +11,34 @@
response.setDateHeader("Expires",0); response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%> %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>일별 문자발송건수 통계</title> <title>일별 문자발송건수 통계</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> <script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script> <script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$( document ).ready(function(){
var selectSendKind = $("#sendKind option:selected").val();
if(selectSendKind == "H"){
$('.all').css('display', 'none');
$('.api').css('display', 'none');
setThead(1);
}else if(selectSendKind == "A"){
$('.all').css('display', 'none');
$('.homePage').css('display', 'none');
setThead(1);
}else{
setThead(3);
}
});
function setThead(index){
$("#sendHead").attr('colspan',index);
$("#successHead").attr('colspan',index);
$("#rateHead").attr('colspan',index);
}
function fn_search(){ function fn_search(){
linkPage(1); linkPage(1);
} }
@ -48,6 +68,8 @@ function init_date(){
$('#ntceEnddeYYYMMDD').val(''); $('#ntceEnddeYYYMMDD').val('');
$('#ntceBgnde').val(''); $('#ntceBgnde').val('');
$('#ntceEndde').val(''); $('#ntceEndde').val('');
$('#sendKind').val('').prop("selected",true);
} }
//기간선택 select //기간선택 select
@ -89,12 +111,9 @@ function fnSetCalMonth(val) {
cursor: pointer; cursor: pointer;
} }
</style> </style>
</head>
<body>
<compress:html> <compress:html>
<form name="listForm" action="<c:url value='/uss/ion/msg/msgDayChart_230125.do'/>" method="post"> <form name="listForm" action="<c:url value='/uss/ion/msg/msgDayChart_230125.do'/>" method="post">
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/> <input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
@ -111,6 +130,11 @@ function fnSetCalMonth(val) {
<div class="pageCont"> <div class="pageCont">
<div class="listSerch"> <div class="listSerch">
<select id="sendKind" name="sendKind" onchange="">
<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>
<select name="setCalMonth" onchange="fnSetCalMonth(this.value)"> <select name="setCalMonth" onchange="fnSetCalMonth(this.value)">
<option value="0">전체</option> <option value="0">전체</option>
<option value="1">1개월</option> <option value="1">1개월</option>
@ -118,23 +142,21 @@ function fnSetCalMonth(val) {
<option value="6">6개월</option> <option value="6">6개월</option>
</select> </select>
<input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do"> <input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.ntceBgnde}" />" > value="<c:out value="${searchVO.ntceBgnde}" />" >
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
&nbsp;&nbsp;~ &nbsp;&nbsp;~
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.ntceEndde}" />" value="<c:out value="${searchVO.ntceEndde}" />" >
> <input type="button" class="calBtn">
<input type="button" class="calBtn"> </a>
</a>
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;"> <a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘"> <img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
</a> </a>
<input type="button" class="btnType1" style="margin-left:10px;" value="검색" onclick="fn_search(); return false;"> <input type="button" class="btnType1" style="margin-left:10px;" value="검색" onclick="fn_search(); return false;">
</div> </div>
<div class="listTop"> <div class="listTop">
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건 <p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건
@ -154,31 +176,78 @@ function fnSetCalMonth(val) {
<div class="tableWrap"> <div class="tableWrap">
<table class="tbType1"> <table class="tbType1">
<colgroup> <colgroup>
<col style="width: auto;">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%"> <col style="width: 25%">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>발송일</th> <th rowspan="2" style="vertical-align: middle;">발송일</th>
<th>발송건수</th> <th id="sendHead">발송건수</th>
<th>성공건수</th> <th id="successHead">성공건수</th>
<th>성공율</th> <th id="rateHead">성공율</th>
</tr>
<tr>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="result" items="${resultList}" varStatus="status"> <c:forEach var="result" items="${resultList}" varStatus="status">
<tr> <tr>
<td><c:out value="${result.regDate}"/></td> <td>
<td><fmt:formatNumber value="${result.sendCount}" pattern="#,###" /></td> <c:out value="${result.regDate}"/>
<td><fmt:formatNumber value="${result.successCount}" pattern="#,###" /></td> </td>
<td><fmt:formatNumber value="${(result.successCount / result.sendCount) * 100}" pattern="#,###" />%</td> <td class="all">
<fmt:formatNumber value="${result.totalSendCount}" pattern="#,###" />
</td>
<td class="homePage">
<fmt:formatNumber value="${result.sendCount}" pattern="#,###" />
</td>
<td class="api">
<fmt:formatNumber value="${result.aSendCount}" pattern="#,###" />
</td>
<td class="all">
<fmt:formatNumber value="${result.totalSuccessCount}" pattern="#,###" />
</td>
<td class="homePage">
<fmt:formatNumber value="${result.successCount}" pattern="#,###" />
</td>
<td class="api">
<fmt:formatNumber value="${result.aSuccessCount}" pattern="#,###" />
</td>
<td class="all">
<fmt:formatNumber value="${result.rateTotalSuccessCount}" pattern="#,###" />%
</td>
<td class="homePage">
<fmt:formatNumber value="${result.rateSuccessCount}" pattern="#,###" />%
</td>
<td class="api">
<fmt:formatNumber value="${result.rateApiSuccessCount}" pattern="#,###" />%
</td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty resultList}"> <c:if test="${empty resultList}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr> <tr>
</c:if> <td colspan="10"><spring:message code="common.nodata.msg" /></td>
</tr>
</c:if>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -186,16 +255,14 @@ function fnSetCalMonth(val) {
</div> </div>
<!-- 페이지 네비게이션 시작 --> <!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty resultList}"> <c:if test="${!empty resultList}">
<div class="page"> <div class="page">
<ul class="inline"> <ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul> </ul>
</div> </div>
</c:if> </c:if>
<!-- //페이지 네비게이션 끝 --> <!-- //페이지 네비게이션 끝 -->
</div> </div>
</div> </div>
</form> </form>
</compress:html> </compress:html>
</body>
</html>

View File

@ -11,9 +11,6 @@
response.setDateHeader("Expires",0); response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%> %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>월별 문자발송건수 통계</title> <title>월별 문자발송건수 통계</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> <script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
@ -30,20 +27,31 @@ $(document).ready(function(){
} }
/* $('#searchYear').find('option:contains("${searchVO.ntceBgnde}")').attr("selected",true); */ /* $('#searchYear').find('option:contains("${searchVO.ntceBgnde}")').attr("selected",true); */
$('#searchYear').find('option[value="${searchVO.ntceBgnde}"]').attr("selected",true); $('#searchYear').find('option[value="${searchVO.ntceBgnde}"]').attr("selected",true);
var selectSendKind = $("#sendKind option:selected").val();
if(selectSendKind == "H"){
$('.all').css('display', 'none');
$('.api').css('display', 'none');
setThead(1);
}else if(selectSendKind == "A"){
$('.all').css('display', 'none');
$('.homePage').css('display', 'none');
setThead(1);
}else{
setThead(3);
}
}); });
function setThead(index){
$("#sendHead").attr('colspan',index);
function linkPage(){ $("#successHead").attr('colspan',index);
$("#rateHead").attr('colspan',index);
}
function linkPage(){
var listForm = document.listForm ; var listForm = document.listForm ;
/* if( $('#ntceBgndeYYYMMDD').val() != '' && $('#ntceEnddeYYYMMDD').val() != '' ){
var iChkBeginDe = Number($('#ntceBgndeYYYMMDD').val().replaceAll("-", ""));
var iChkEndDe = Number($('#ntceEnddeYYYMMDD').val().replaceAll("-", ""));
if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){
alert("검색 시작 일자는 종료 일자 보다 클 수 없습니다.");
return;
}
} */
$('#ntceBgnde').val($('#searchYear option:selected').val()); $('#ntceBgnde').val($('#searchYear option:selected').val());
listForm.submit(); listForm.submit();
} }
@ -63,8 +71,6 @@ $(document).ready(function(){
cursor: pointer; cursor: pointer;
} }
</style> </style>
</head>
<body>
<compress:html> <compress:html>
@ -84,60 +90,95 @@ $(document).ready(function(){
<div class="pageCont"> <div class="pageCont">
<div class="listSerch"> <div class="listSerch">
<%-- <input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do"> <select id="sendKind" name="sendKind" onchange="linkPage();">
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);"> <option value=""<c:if test="${searchVO.sendKind eq ''}">selected="selected"</c:if>>발송방식 전체</option>
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly="" <option value="H"<c:if test="${searchVO.sendKind eq 'H'}">selected="selected"</c:if>>WEB</option>
value="<c:out value="${searchVO.ntceBgnde}" />" > <option value="A"<c:if test="${searchVO.sendKind eq 'A'}">selected="selected"</c:if>>API</option>
<input type="button" class="calBtn"> </select>
</a>
&nbsp;&nbsp;~
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.ntceEndde}" />"
>
<input type="button" class="calBtn">
</a>
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
</a>
<input type="button" class="btnType1" style="margin-left:10px;" value="검색" onclick="fn_search(); return false;"> --%>
<select id="searchYear" name="searchYear" onchange="linkPage();"></select> <select id="searchYear" name="searchYear" onchange="linkPage();"></select>
<br/><br/>
<c:if test="${sttstDate ne '' and sttstDate ne null }">
(집계 일시 : ${sttstDate}(금일))
</c:if>
</div> </div>
<%-- <div class="listTop"> <div class="listTop">
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p> <p class="tType5">
</div> --%> <c:if test="${sttstDate ne '' and sttstDate ne null }">
(집계 일시 : ${sttstDate}(금일))
</c:if>
</p>
</div>
<div class="tableWrap"> <div class="tableWrap">
<table class="tbType1"> <table class="tbType1">
<colgroup> <colgroup>
<col style="width: auto;">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%"> <col style="width: 25%">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>발송월</th> <th rowspan="2" style="vertical-align: middle;">발송일</th>
<th>발송건수</th> <th id="sendHead">발송건수</th>
<th>성공건수</th> <th id="successHead">성공건수</th>
<th>성공율</th> <th id="rateHead">성공율</th>
</tr>
<tr>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="result" items="${resultList}" varStatus="status"> <c:forEach var="result" items="${resultList}" varStatus="status">
<tr> <tr>
<td><c:out value="${result.regDate}"/></td> <td>
<td><fmt:formatNumber value="${result.sendCount}" pattern="#,###" /></td> <c:out value="${result.regDate}"/>
<td><fmt:formatNumber value="${result.successCount}" pattern="#,###" /></td> </td>
<td><fmt:formatNumber value="${(result.successCount / result.sendCount) * 100}" pattern="#,###" />%</td> <td class="all">
<fmt:formatNumber value="${result.totalSendCount}" pattern="#,###" />
</td>
<td class="homePage">
<fmt:formatNumber value="${result.sendCount}" pattern="#,###" />
</td>
<td class="api">
<fmt:formatNumber value="${result.aSendCount}" pattern="#,###" />
</td>
<td class="all">
<fmt:formatNumber value="${result.totalSuccessCount}" pattern="#,###" />
</td>
<td class="homePage">
<fmt:formatNumber value="${result.successCount}" pattern="#,###" />
</td>
<td class="api">
<fmt:formatNumber value="${result.aSuccessCount}" pattern="#,###" />
</td>
<td class="all">
<fmt:formatNumber value="${result.rateTotalSuccessCount}" pattern="#,###" />%
</td>
<td class="homePage">
<fmt:formatNumber value="${result.rateSuccessCount}" pattern="#,###.##" />%
</td>
<td class="api">
<fmt:formatNumber value="${result.rateApiSuccessCount}" pattern="#,###" />%
</td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty resultList}"> <c:if test="${empty resultList}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr> <tr>
</c:if> <td colspan="10"><spring:message code="common.nodata.msg" /></td>
</tr>
</c:if>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -145,5 +186,3 @@ $(document).ready(function(){
</div> </div>
</form> </form>
</compress:html> </compress:html>
</body>
</html>