알림톡 발송결과 오류 수정

This commit is contained in:
leejunho 2025-04-02 11:10:21 +09:00
parent cc90332add
commit 9c94241a52
5 changed files with 100 additions and 133 deletions

View File

@ -110,8 +110,8 @@ public class KakaoSentVO extends UserDefaultVO{
private String statusCd;
private int successPrice;
private int kakaoResendSuccPrice;
private String successPrice;
private String kakaoResendSuccPrice;
private String divideYn;

View File

@ -299,7 +299,7 @@ public class KakaoSentServiceImpl extends EgovAbstractServiceImpl implements Ka
}
private String priceProc(int successPrice, int kakaoResendSuccPrice) {
private String priceProc(String successPrice, String kakaoResendSuccPrice) {
String totPrice = "-";
@ -311,7 +311,8 @@ public class KakaoSentServiceImpl extends EgovAbstractServiceImpl implements Ka
BigDecimal totalPrice = atPrice.add(kakaoResendPrice);
// 소수점 자리로 설정 (반올림)// totalPrice 값을 소수점 자리까지 반올림하여 roundedTotalPrice에 저장
// RoundingMode.HALF_UP: 반올림 방식으로, 소수점 기준 5 이상이면 올림, 그렇지 않으면 내림
BigDecimal roundedTotalPrice = totalPrice.setScale(1, RoundingMode.HALF_UP);
// BigDecimal roundedTotalPrice = totalPrice.setScale(1, RoundingMode.HALF_UP);
BigDecimal roundedTotalPrice = totalPrice;
// roundedTotalPrice가 0인지 확인
// BigDecimal.compareTo(BigDecimal.ZERO) 값을 비교하는 메서드

View File

@ -1458,6 +1458,11 @@
AND B.RESERVE_YN = 'N'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="3">
AND B.SMS_TXT like CONCAT('%', #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
GROUP BY B.MSG_GROUP_ID
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
@ -1547,7 +1552,8 @@
</select>
<select id="KakaoSentDAO.selectKakaoSentCntEachCnt_advc" parameterClass="kakaoSentVO" resultClass="kakaoSentVO">
SELECT a.MSG_GROUP_ID AS msgGroupId,
SELECT
a.MSG_GROUP_ID AS msgGroupId,
a.successCount,
a.waitCount,
a.failCount,
@ -1556,117 +1562,57 @@
a.successCount * bkp.BIZ_KAKAO_AT_PRICE AS successPrice,
(a.smsCnt * bkp.BIZ_SMS_PRICE) + (a.mmsCnt * bkp.BIZ_MMS_PRICE) AS kakaoResendSuccPrice,
a.divideYn
FROM (SELECT t1.MSG_GROUP_ID,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = t1.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 = t1.MSG_GROUP_ID
AND
(
C.RSLT_CODE IS NULL
AND C.SENT_DATE IS NULL
AND C.RSLT_DATE IS NULL
)
)
AS waitCount ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.RESERVE_C_YN = 'N'
AND C.MSG_GROUP_ID = t1.MSG_GROUP_ID
AND
(
C.RSLT_CODE != '7000'
AND C.RSLT_CODE IS NOT NULL
)
)
AS failCount ,
( SELECT COUNT(0)
FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1
WHERE t1.BIZ_KAKAO_RESEND_YN = 'Y'
AND t1.MSG_GROUP_ID = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID
AND (
CASE
WHEN BL1.CALL_STATUS IN ('6600',
'4100')
THEN 'S'
ELSE 'F'
END ) = 'S'
)
kakaoResendSuccCount,
( SELECT COUNT(0)
FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1
WHERE t1.BIZ_KAKAO_RESEND_YN = 'Y'
AND t1.MSG_GROUP_ID = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID
AND (
CASE
WHEN BL1.CALL_STATUS IN ('6600',
'4100')
THEN 'S'
ELSE 'F'
END ) = 'F'
)
kakaoResendFailCount,
( SELECT COUNT(0)
FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1
WHERE t1.BIZ_KAKAO_RESEND_YN = 'Y'
AND t1.MSG_GROUP_ID = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID
AND (
CASE
WHEN BL1.CALL_STATUS IN ('6600',
'4100')
THEN 'S'
ELSE 'F'
END ) = 'S'
AND MMD1.BIZ_KAKAO_RESEND_TYPE = 'SMS'
)
smsCnt,
( SELECT COUNT(0)
FROM BIZ_LOG BL1,
MJ_MSG_DATA MMD1
WHERE t1.BIZ_KAKAO_RESEND_YN = 'Y'
AND t1.MSG_GROUP_ID = MMD1.MSG_GROUP_ID
AND MMD1.BIZ_UMID = BL1.CMID
AND (
CASE
WHEN BL1.CALL_STATUS IN ('6600',
'4100')
THEN 'S'
ELSE 'F'
END ) = 'S'
AND MMD1.BIZ_KAKAO_RESEND_TYPE = 'MMS'
)
mmsCnt,
FROM (
SELECT
t1.MSG_GROUP_ID,
SUM(IF(t1.RESERVE_C_YN = 'N' AND t1.RSLT_CODE = '7000', 1, 0)) AS successCount,
SUM(IF(t1.RESERVE_C_YN = 'N' AND t1.RSLT_CODE IS NULL AND t1.SENT_DATE IS NULL AND t1.RSLT_DATE IS NULL, 1, 0)) AS waitCount,
SUM(IF(t1.RESERVE_C_YN = 'N' AND t1.RSLT_CODE != '7000' AND t1.RSLT_CODE IS NOT NULL, 1, 0)) AS failCount,
SUM(IF(t1.BIZ_KAKAO_RESEND_YN = 'Y' AND BL1.CALL_STATUS IN ('6600', '4100'), 1, 0)) AS kakaoResendSuccCount,
SUM(IF(
t1.BIZ_KAKAO_RESEND_YN = 'Y' AND
NOT EXISTS (
SELECT 1
FROM (
SELECT '6600' AS status UNION ALL SELECT '4100'
) AS status_list
WHERE status_list.status = BL1.CALL_STATUS
), 1, 0
)) AS kakaoResendFailCount,
SUM(IF(
t1.BIZ_KAKAO_RESEND_YN = 'Y' AND
NOT EXISTS (
SELECT 1
FROM (
SELECT '6600' AS status UNION ALL SELECT '4100'
) AS status_list
WHERE status_list.status = BL1.CALL_STATUS
) AND t1.BIZ_KAKAO_RESEND_TYPE = 'SMS', 1, 0
)) AS smsCnt,
SUM(IF(
t1.BIZ_KAKAO_RESEND_YN = 'Y' AND
NOT EXISTS (
SELECT 1
FROM (
SELECT '6600' AS status UNION ALL SELECT '4100'
) AS status_list
WHERE status_list.status = BL1.CALL_STATUS
) AND t1.BIZ_KAKAO_RESEND_TYPE = 'MMS', 1, 0
)) AS mmsCnt,
CASE
WHEN COUNT(DISTINCT t1.REQ_DATE) > 1 THEN 'Y'
ELSE 'N'
END AS divideYN
FROM mj_msg_data t1
WHERE t1.DEL_FLAG = 'N'
AND t1.MSG_TYPE IN ('8',
'9')
AND t1.CUR_STATE IN ('0',
'1',
'2',
'3')
LEFT OUTER JOIN BIZ_LOG BL1 ON t1.BIZ_UMID = BL1.CMID
WHERE
t1.DEL_FLAG = 'N'
AND t1.MSG_TYPE IN ('8', '9')
AND t1.CUR_STATE IN ('0', '1', '2', '3')
AND t1.MSG_GROUP_ID = #msgGroupId#
GROUP BY t1.MSG_GROUP_ID
)
a
LEFT OUTER JOIN BIZ_KAKAO_PRICE bkp
ON bkp.MSG_GROUP_ID = a.MSG_GROUP_ID
) a
LEFT OUTER JOIN BIZ_KAKAO_PRICE bkp ON bkp.MSG_GROUP_ID = a.MSG_GROUP_ID
</select>
<!-- 알림톡 발송결과 상세 데이터-->

View File

@ -228,7 +228,8 @@ function fn_sentDetailView(msgGroupId) {
</div>
</td>
<td>
<c:out value="${resultAllSentList.msgGroupCnt}"/>
<fmt:formatNumber value="${resultAllSentList.msgGroupCnt}" type="number" groupingUsed="true" />
<%-- <c:out value="${resultAllSentList.msgGroupCnt}"/> --%>
</td>
<td>
<fmt:formatNumber value="${resultAllSentList.waitCount}" type="number" groupingUsed="true" />

View File

@ -203,14 +203,15 @@ function fnTabLoad(tabType, tabNum){
function fnSearch(pageNo){
var form = document.searchForm;
// var form = document.searchForm;
form.pageIndex.value = pageNo ;
// form.pageIndex.value = pageNo ;
form.action="/web/kakao/sent/selectKakaoSentView.do";
form.submit();
// form.action="/web/kakao/sent/selectKakaoSentView.do";
// form.submit();
cntSet();
linkPage(pageNo);
}
function fnExcelDownLoad(pageType, listType){
@ -467,9 +468,9 @@ function fnDelete(){
<div class="btn_right">
<label for="searchCondition" class="label">발신번호 선택 == ${kakaoSentVO.searchCondition}</label>
<select name="searchCondition" id="searchCondition" class="selType2">
<option value="4" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >채널ID</option>
<option value="5" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >내용</option>
<option value="3" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >수신번호</option>
<%-- <option value="4" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >채널ID</option> --%>
<option value="3" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >내용</option>
<%-- <option value="3" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >수신번호</option> --%>
</select>
<div class="search">
<label for="id" class="label"></label>
@ -613,6 +614,24 @@ function fnDelete(){
<button type="button" onclick="fnListLoad('Y','2'); return false;">예약</button>
</li>
</ul>
<!-- 발송화면 개선 : 발송결과 추가-->
<div class="tab_btnbox">
<button type="button" class="btnType btnType14 check_validity">발송결과<i class="qmMark"></i></button>
<div class="info_hover_cont send_hover_cont price_hover">
<dl>
<dt class="c_222">[<span>대기</span>]</dt>
<dd>발송은 성공하였으며, 수신자측 통신사로부터 수신여부를 확인중인 상태 <br>
<span>※ 예약발송의 경우 실발송 전까지는 “대기”로 표시</span>
</dd>
<dt class="c_002c9a">[<span>성공</span>]</dt>
<dd>발송 및 수신이 완료된 상태</dd>
<dt class="c_e40000">[<span>실패</span>]</dt>
<dd class="last">결번, 일시정지, 전화번호 오류 등의 사유로 발송이
불가한 상태</dd>
</dl>
</div>
</div>
<!--// 발송화면 개선 : 발송결과 추가-->
</div>
<!-- 발송관리 리스트 -->
<div class="table_cont current msgSentAllLoad" id="tableCont_1">