diff --git a/src/main/java/itn/let/kakao/admin/statistics/web/KakaoStatisticsController.java b/src/main/java/itn/let/kakao/admin/statistics/web/KakaoStatisticsController.java
index 318c5344..23a4835c 100644
--- a/src/main/java/itn/let/kakao/admin/statistics/web/KakaoStatisticsController.java
+++ b/src/main/java/itn/let/kakao/admin/statistics/web/KakaoStatisticsController.java
@@ -11,6 +11,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO;
@@ -61,4 +62,31 @@ public class KakaoStatisticsController {
return "/uss/ion/kakaoat/KakaoAtSendStatistics";
}
+ // 알림톡 발송 통계
+ @RequestMapping(value = "/uss/ion/kakao/insertKakaoAtCountStatApiAjax.do")
+ public ModelAndView insertKakaoAtCountStatApiAjax(
+ @ModelAttribute("kakaoAtStatVO") MjonKakaoAtStatVO kakaoAtStatVO) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ boolean isSuccess = true;
+ String msg = "";
+
+ try {
+
+ kakaoStatisticsService.insertKakaoAtCountStat(kakaoAtStatVO);
+
+ }
+ catch(Exception e) {
+ isSuccess = false;
+ msg = e.getMessage();
+ }
+
+ modelAndView.addObject("isSuccess", isSuccess);
+ modelAndView.addObject("msg", msg);
+
+ return modelAndView;
+ }
+
}
diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
index 2a8132f4..f17cfdb7 100644
--- a/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
+++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
@@ -82,6 +82,9 @@ public interface MjonMsgService {
// 금일 예약발송 건수
int selectMjonMsgGroupCntSum(MjonMsgVO mjonMsgVO) throws Exception;
+ // 스미싱의심 미처리
+ int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception;
+
int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception;
//전송사 문자 발송 결과 코드 정보 전체 불러오기
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 db045d04..3f02c58a 100644
--- a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
+++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
@@ -192,8 +192,14 @@ public class MjonMsgVO extends ComDefaultVO{
private int mmsGroupFWCntSum; // mms 실패대기(건)
private int mmsTotFWPriceSum; // mms 실패대기(금액)
+ private String searchDelayMsgYn;
-
+ public String getSearchDelayMsgYn() {
+ return searchDelayMsgYn;
+ }
+ public void setSearchDelayMsgYn(String searchDelayMsgYn) {
+ this.searchDelayMsgYn = searchDelayMsgYn;
+ }
public int getSmsGroupSCntSum() {
return smsGroupSCntSum;
}
diff --git a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
index f4104a35..a61fcdd2 100644
--- a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
+++ b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
@@ -198,6 +198,11 @@ public class MjonMsgDAO extends EgovAbstractDAO {
return (int) select("mjonMsgDAO.selectMjonMsgGroupCntSum", mjonMsgVO);
}
+ // 스미싱의심 미처리
+ public int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception{
+ return (int) select("mjonMsgDAO.selectMjonMsgDelayCnt", mjonMsgVO);
+ }
+
public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{
return (int) select("mjonMsgDAO.selectSendBlockPhonNumCheck", mjonMsgVO);
}
diff --git a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
index 20bff342..f9db7422 100644
--- a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
+++ b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
@@ -415,6 +415,12 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
return mjonMsgDAO.selectMjonMsgGroupCntSum(mjonMsgVO);
}
+ // 스미싱의심 미처리
+ @Override
+ public int selectMjonMsgDelayCnt(MjonMsgVO mjonMsgVO) throws Exception {
+ return mjonMsgDAO.selectMjonMsgDelayCnt(mjonMsgVO);
+ }
+
@Override
public int selectSendBlockPhonNumCheck(MjonMsgVO mjonMsgVO) throws Exception{
return mjonMsgDAO.selectSendBlockPhonNumCheck(mjonMsgVO);
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 fe30c976..7b13544c 100644
--- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
@@ -265,6 +265,40 @@ public class MjonMsgController {
}
+ // 스미싱의심 미처리
+ @RequestMapping(value = "/uss/ion/msg/selectDelayMsgCountAjax.do")
+ public ModelAndView selectDelayMsgCountAjax(
+ @ModelAttribute("mjonMsgVO") MjonMsgVO mjonMsgVO) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ boolean isSuccess = true;
+ String msg = "";
+ int delayMsgCnt = 0;
+
+ // 로그인VO에서 사용자 정보 가져오기
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
+ String admId = loginVO == null ? "" : loginVO.getId();
+
+ try{
+
+ delayMsgCnt = mjonMsgService.selectMjonMsgDelayCnt(mjonMsgVO);
+
+ }
+ catch(Exception e) {
+ isSuccess = false;
+ msg = e.getMessage();
+ }
+
+ modelAndView.addObject("isSuccess", isSuccess);
+ modelAndView.addObject("msg", msg);
+ modelAndView.addObject("delayMsgCnt", delayMsgCnt);
+ modelAndView.addObject("admId", admId);
+
+ return modelAndView;
+ }
+
/**
* 문자전송 리스트 스미싱 on off 처리
* @param searchVO
diff --git a/src/main/java/itn/let/schdlr/service/SchedulerUtil.java b/src/main/java/itn/let/schdlr/service/SchedulerUtil.java
index 5ff6523d..563ca444 100644
--- a/src/main/java/itn/let/schdlr/service/SchedulerUtil.java
+++ b/src/main/java/itn/let/schdlr/service/SchedulerUtil.java
@@ -322,7 +322,9 @@ public class SchedulerUtil {
}
// AGENT별 Kakao 발송건수 통계 스케쥴러
- @Scheduled(cron = "0 10,40 * * * *") // 10,40분마다 실행
+ //@Scheduled(cron = "0 10,40 * * * *") // 10,40분마다 실행
+ //@Scheduled(cron = "0 47 * * * *") // 47분마다 실행
+ @Scheduled(cron = "0 57 23 * * *")
@SchedulerLock(name = "insertAgentKakaoCountStatByMinute", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
public void agentKakaoCountStatByMinuteInsert() throws Exception {
try {
diff --git a/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
index 9f3ce322..3082d111 100644
--- a/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
+++ b/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
@@ -694,7 +694,7 @@
, B.SMS_TXT
, B.SUBJECT
, B.REGDATE
- , B.REQ_DATE
+ , A.REQ_DATE
, A.RSLT_DATE
, B.CALL_FROM
, B.TOT_PRICE
@@ -1900,38 +1900,24 @@
) AS result ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
- WHERE C.RESERVE_C_YN = 'N'
- AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
+ INNER JOIN MJ_MSG_GROUP_DATA CG
+ ON C.MSG_GROUP_ID = CG.MSG_GROUP_ID
+ WHERE CG.RESERVE_C_YN = 'N'
+ AND CG.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.RSLT_CODE = '7000'
) AS successCount ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
- WHERE C.RESERVE_C_YN = 'N'
- AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
+ INNER JOIN MJ_MSG_GROUP_DATA CG
+ ON C.MSG_GROUP_ID = CG.MSG_GROUP_ID
+ WHERE CG.RESERVE_C_YN = 'N'
+ AND CG.MSG_GROUP_ID = MG.MSG_GROUP_ID
AND C.RSLT_CODE = '7000'
- AND C.MSG_TYPE = '8'
+ AND CG.MSG_TYPE = '8'
) AS atSuccessCount ,
- ( SELECT COUNT(0)
- FROM MJ_MSG_DATA C
- WHERE C.RESERVE_C_YN = 'N'
- AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
- AND C.RSLT_CODE = '7000'
- AND C.MSG_TYPE = '9'
- ) AS ftSuccessCount ,
- ( SELECT COUNT(0)
- FROM MJ_MSG_DATA C
- WHERE C.RESERVE_C_YN = 'N'
- AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
- AND IFNULL(C.RSLT_CODE, '') != '7000'
- AND C.MSG_TYPE = '8'
- ) AS atFailCount ,
- ( SELECT COUNT(0)
- FROM MJ_MSG_DATA C
- WHERE C.RESERVE_C_YN = 'N'
- AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID
- AND IFNULL(C.RSLT_CODE, '') != '7000'
- AND C.MSG_TYPE = '9'
- ) AS ftFailCount ,
+ 0 AS ftSuccessCount ,
+ 0 AS atFailCount ,
+ 0 AS ftFailCount ,
MSG_NOTICETALK_SENDER_KEY ,
MSG_NOTICETALK_TMP_KEY,
MD.BIZ_UMID,
diff --git a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoStatistics_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoStatistics_SQL_Mysql.xml
index daf91c9d..58e5171c 100644
--- a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoStatistics_SQL_Mysql.xml
+++ b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoStatistics_SQL_Mysql.xml
@@ -108,10 +108,12 @@
,bkp.BIZ_KAKAO_AT_PRICE
FROM
MJ_MSG_DATA md
+ INNER JOIN MJ_MSG_GROUP_DATA mgd
+ ON md.MSG_GROUP_ID = mgd.MSG_GROUP_ID
LEFT OUTER JOIN BIZ_KAKAO_PRICE bkp
- ON md.MSG_GROUP_ID = bkp.MSG_GROUP_ID
+ ON mgd.MSG_GROUP_ID = bkp.MSG_GROUP_ID
WHERE
- md.MSG_TYPE = '8'
+ mgd.MSG_TYPE = '8'
AND md.RESERVE_C_YN = 'N'
AND md.SENT_DATE >= DATE_FORMAT(#statStartDate#, '%Y-%m-%d')
AND DATE_FORMAT(#statStandardDate#, '%Y-%m-%d') > md.SENT_DATE
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 ad371fab..6679cd37 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
@@ -601,6 +601,21 @@
+
+
+
+
+
+ " >
- " >
+
~
-
- " >
+
+ " >
+
diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoAtSendStatistics.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoAtSendStatistics.jsp
index bae5b6a2..4990f952 100644
--- a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoAtSendStatistics.jsp
+++ b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoAtSendStatistics.jsp
@@ -96,6 +96,43 @@
form.submit();
}
+
+ // 오늘날짜
+ function getTodayDate() {
+ var today = new Date();
+
+ var year = today.getFullYear();
+ var month = ('0' + (today.getMonth() + 1)).slice(-2);
+ var day = ('0' + today.getDate()).slice(-2);
+
+ var dateString = year + month + day;
+
+ return dateString;
+ }
+
+ // 당일 데이터 업데이트
+ function setTodayUpdate() {
+ var url = "/uss/ion/kakao/insertKakaoAtCountStatApiAjax.do?statStartDate=" + getTodayDate() + "&statEndDate=" + getTodayDate();
+
+ $.ajax({
+ type: "POST",
+ url: url,
+ data: {},
+ dataType:'json',
+ async: true,
+ success: function (data) {
+ if (data.isSuccess) {
+ location.reload();
+ }
+ else {
+ alert("Msg : " + data.msg);
+ }
+ },
+ error: function (e) {
+ alert("ERROR : " + JSON.stringify(e));
+ }
+ });
+ }