From 25dacf7516f3d2c27c6466162157b7f3498e03bf Mon Sep 17 00:00:00 2001 From: name Date: Fri, 28 Jul 2023 15:38:45 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=BC=EB=AC=B8=EC=9E=90=20=ED=86=B5?= =?UTF-8?q?=EA=B3=84=EA=B4=80=EB=A6=AC=20API=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mjo/msg/service/MjonMsgVO.java | 52 +++ .../let/mjo/msg/web/MjonMsgController.java | 2 +- .../sqlmap/let/msg/MjonMsgData_SQL_mysql.xml | 54 ++- .../let/sttst/MjonSttstData_SQL_mysql.xml | 401 +++++++++++------- .../jsp/uss/ion/msg/MsgDayChart_230125.jsp | 149 +++++-- 5 files changed, 437 insertions(+), 221 deletions(-) diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java index dc6c0df4..3612b04f 100644 --- a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java +++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java @@ -167,6 +167,58 @@ public class MjonMsgVO extends ComDefaultVO{ private String sendKind; //문자전송 타입(H:홈페이지, A:API) + private int aSuccessCount; // API 문자발송 성공건수 + private int aSendCount; // API 문자 발송건수 + + private int rateSuccessCount; // 홈페이지 전송 성공율 + private int rateApiSuccessCount; // API 전송 성공율 + + private int totalSendCount; // 전체 문자발송 건수 + private int totalSuccessCount; // 전체 문자발송 성공건수 + private int totalRateSuccessCount; // 전체 문자발송 성공율 + + 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 getTotalRateSuccessCount() { + return totalRateSuccessCount; + } + public void setTotalRateSuccessCount(int totalRateSuccessCount) { + this.totalRateSuccessCount = totalRateSuccessCount; + } + 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() { return sendKind; } diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index 79eda090..8379c0fb 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -4396,7 +4396,7 @@ public class MjonMsgController { if (resultList.size()>0) { model.addAttribute("sttstDate", resultList.get(0).getRegistPnttm()); - } + } }catch(Exception ex) { ex.printStackTrace(); } diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index 37df31ce..232f57ba 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -5017,25 +5017,47 @@ diff --git a/src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml index 67221b75..a217797f 100644 --- a/src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml @@ -8,176 +8,251 @@ - INSERT INTO mj_sttst_msg - (send_date, send_cnt, success_cnt, regist_pnttm) + INSERT INTO MJ_STTST_MSG + ( + send_date + , send_cnt + , success_cnt + , API_SEND_CNT + , API_SUCCESS_CNT + , regist_pnttm + ) - select aa.regDate - , aa.sendCount - , aa.successCount + SELECT + aa.regDate + , aa.hSendCount + , aa.hSuccessCount + , aa.aSendCount + , aa.aSuccessCount , now() - - from ( - SELECT - M2.regDate , - SUM(M2.sendCount) AS sendCount , - SUM(M2.successCount) AS successCount - - FROM ( SELECT - M.REQ_DATE AS regDate - /*발송일*/ - - , IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount - /*발송건수*/ - - , MSG_GROUP_ID - - , - (SELECT COUNT(0) - FROM MJ_MSG_DATA A - WHERE A.USER_ID NOT IN ('hftest', - 'itntest', - 'imotest', - 'itntestBatch') - AND A.RESERVE_C_YN = 'N' - AND A.MSG_GROUP_ID = M.MSG_GROUP_ID - AND (CASE - WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) - THEN 'S' - WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') - THEN 'S' - WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800') - THEN 'S' - WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') - THEN 'S' - WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') - THEN 'S' - WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') - THEN 'S' - WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') - THEN 'S' - WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') - THEN 'S' - WHEN ( - A.RSLT_CODE IS NULL - AND A.RSLT_CODE2 IS NULL - AND A.SENT_DATE IS NULL - AND A.RSLT_DATE IS NULL - ) - THEN 'W' - ELSE 'F' - END ) = 'S' - ) - AS successCount - /*성공건수*/ - - 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 - FROM MJ_MSG_GROUP_DATA P - WHERE 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.sendCount - , success_cnt=aa.successCount - , regist_pnttm=now() - + FROM( + SELECT + M2.regDate + , SUM(M2.hSendCount) AS hSendCount + , SUM(M2.hSuccessCount) AS hSuccessCount + , SUM(M2.aSendCount) AS aSendCount + , SUM(M2.aSuccessCount) AS aSuccessCount + + FROM( + SELECT + M.REQ_DATE AS regDate /*발송일*/ + , IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount /*발송건수*/ + , M.aSendCount /*API 발송건수*/ + , M.hSendCount /*홈페이지 발송건수*/ + , MSG_GROUP_ID + , (SELECT + COUNT(0) + FROM + MJ_MSG_DATA A + WHERE 1=1 + AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch') + AND A.RESERVE_C_YN = 'N' + AND A.MSG_GROUP_ID = M.MSG_GROUP_ID + AND M.SEND_KIND = 'H' + AND ( + CASE + WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) + THEN 'S' + WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') + THEN 'S' + WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800') + THEN 'S' + WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') + THEN 'S' + WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') + THEN 'S' + WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL ) + THEN 'W' + ELSE 'F' + END + ) = 'S' + ) AS hSuccessCount /*홈페이지 성공건수*/ + , (SELECT + COUNT(0) + FROM + MJ_MSG_DATA A + WHERE 1=1 + AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch') + AND A.RESERVE_C_YN = 'N' + AND A.MSG_GROUP_ID = M.MSG_GROUP_ID + AND M.SEND_KIND = 'A' + AND ( + CASE + WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) + THEN 'S' + WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') + THEN 'S' + WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800') + THEN 'S' + WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') + THEN 'S' + WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') + THEN 'S' + WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL ) + THEN 'W' + ELSE 'F' + END ) = '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 INTO mj_sttst_msg - (send_date, send_cnt, success_cnt, regist_pnttm) + INSERT INTO MJ_STTST_MSG + ( + send_date + , send_cnt + , success_cnt + , API_SEND_CNT + , API_SUCCESS_CNT + , regist_pnttm + ) - select aa.regDate - , aa.sendCount - , aa.successCount + SELECT + aa.regDate + , aa.hSendCount + , aa.hSuccessCount + , aa.aSendCount + , aa.aSuccessCount , now() - - from ( - SELECT - M2.regDate , - SUM(M2.sendCount) AS sendCount , - SUM(M2.successCount) AS successCount - - FROM ( SELECT - M.REQ_DATE AS regDate - /*발송일*/ - - , IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount - /*발송건수*/ - - , MSG_GROUP_ID - - , (SELECT COUNT(0) - FROM MJ_MSG_DATA A - WHERE A.USER_ID NOT IN ('hftest', - 'itntest', - 'imotest', - 'itntestBatch') - AND A.RESERVE_C_YN = 'N' - AND A.MSG_GROUP_ID = M.MSG_GROUP_ID - AND ( - CASE - WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND(A.RSLT_CODE2 = '0')) - THEN 'S' - WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') - THEN 'S' - WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800') - THEN 'S' - WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') - THEN 'S' - WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') - THEN 'S' - WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') - THEN 'S' - WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') - THEN 'S' - WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') - THEN 'S' - WHEN ( - A.RSLT_CODE IS NULL - AND A.RSLT_CODE2 IS NULL - AND A.SENT_DATE IS NULL - AND A.RSLT_DATE IS NULL - ) - THEN 'W' - ELSE 'F' - END ) = 'S' - ) - AS successCount - /*성공건수*/ - - 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 - FROM MJ_MSG_GROUP_DATA P - WHERE 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.sendCount - , success_cnt=aa.successCount - , regist_pnttm=now() - + FROM( + SELECT + M2.regDate + , SUM(M2.sendCount) AS sendCount + , SUM(M2.successCount) AS successCount + FROM( + SELECT + M.REQ_DATE AS regDate /*발송일*/ + , IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount /*발송건수*/ + , M.aSendCount /*API 발송건수*/ + , M.hSendCount /*홈페이지 발송건수*/ + , MSG_GROUP_ID + , (SELECT + COUNT(0) + FROM + MJ_MSG_DATA A + WHERE 1=1 + AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch') + AND A.RESERVE_C_YN = 'N' + AND A.MSG_GROUP_ID = M.MSG_GROUP_ID + AND M.SEND_KIND = 'H' + AND ( + CASE + WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) + THEN 'S' + WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') + THEN 'S' + WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800') + THEN 'S' + WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') + THEN 'S' + WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') + THEN 'S' + WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL ) + THEN 'W' + ELSE 'F' + END + ) = 'S' + ) AS hSuccessCount /*홈페이지 성공건수*/ + , (SELECT + COUNT(0) + FROM + MJ_MSG_DATA A + WHERE 1=1 + AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch') + AND A.RESERVE_C_YN = 'N' + AND A.MSG_GROUP_ID = M.MSG_GROUP_ID + AND M.SEND_KIND = 'A' + AND ( + CASE + WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) + THEN 'S' + WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') + THEN 'S' + WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800') + THEN 'S' + WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600') + THEN 'S' + WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000') + THEN 'S' + WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') + THEN 'S' + WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL ) + THEN 'W' + ELSE 'F' + END ) = '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() diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgDayChart_230125.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgDayChart_230125.jsp index 231e8012..ea9f154e 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgDayChart_230125.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgDayChart_230125.jsp @@ -11,14 +11,34 @@ response.setDateHeader("Expires",0); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); %> - - - 일별 문자발송건수 통계