This commit is contained in:
myname 2025-05-08 15:14:56 +09:00
commit b1bf60a706
8 changed files with 66 additions and 65 deletions

View File

@ -193,19 +193,21 @@ public class KakaoSendUtil {
// step3
// 바이트 체크 금액설정
Float kakaoAtPrice = mberManageVO.getKakaoAtPrice();
// 유효한 단가 계산
float shortPrice = getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice());
float longPrice = getValidPrice(mberManageVO.getLongPrice(), sysJoinSetVO.getLongPrice());
float kakaoAtPrice = getValidPrice(mberManageVO.getKakaoAtPrice(), sysJoinSetVO.getKakaoAtPrice());
String shortPStr = Float.toString(shortPrice);
String mmsPStr = Float.toString(longPrice);
String kakaoAtPStr = Float.toString(kakaoAtPrice);
// 공통 가격 설정
sendVO.setSmsPrice(shortPStr);
sendVO.setMmsPrice(mmsPStr);
sendVO.setKakaoAtPrice(kakaoAtPStr);
if("Y".equals(kakaoVO.getSubMsgSendYn())) {
@ -222,8 +224,7 @@ public class KakaoSendUtil {
} else {
kakaoAtPrice = getValidPrice(mberManageVO.getKakaoAtPrice(), sysJoinSetVO.getKakaoAtPrice());
sendVO.setEachPrice( Float.toString(kakaoAtPrice) );
sendVO.setEachPrice(kakaoAtPStr);
}

View File

@ -956,7 +956,7 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
/** @biz_kakao_price에 insert (대체문자 환불관련 테이블)*/
kakaoVO.setMsgGroupId(sendVO.getMsgGroupId());
kakaoVO.setKakaoAtPrice(Float.parseFloat(sendVO.getEachPrice()));
kakaoVO.setKakaoAtPrice(Float.parseFloat(sendVO.getKakaoAtPrice()));
kakaoVO.setSmsPrice(Float.parseFloat(sendVO.getSmsPrice()));
kakaoVO.setMmsPrice(Float.parseFloat(sendVO.getMmsPrice()));

View File

@ -242,7 +242,7 @@ public class KakaoSentServiceImpl extends EgovAbstractServiceImpl implements Ka
int failed = 0; // 실패 건수
if("Y".equals(resultVO.getBizKakaoResendYn())) {
success = resultVO.getSuccessCount() + resultVO.getKakaoResendSuccCount();
failed = resultVO.getKakaoResendFailCount();
failed = resultVO.getFailCount() - resultVO.getKakaoResendSuccCount();
}else {
success = resultVO.getSuccessCount();
failed = resultVO.getFailCount();
@ -254,8 +254,8 @@ public class KakaoSentServiceImpl extends EgovAbstractServiceImpl implements Ka
String failedPct = total > 0 ? String.format("%.1f%%", (failed / (double) total) * 100) : "0.0%";
resultVO.setSuccessPct(successPct);
resultVO.setFailedPct(waitingPct);
resultVO.setWaitingPct(failedPct);
resultVO.setFailedPct(failedPct);
resultVO.setWaitingPct(waitingPct);
resultVO.setTotPrice(this.priceProc(resultVO.getSuccessPrice(), resultVO.getKakaoResendSuccPrice()));
@ -290,6 +290,7 @@ public class KakaoSentServiceImpl extends EgovAbstractServiceImpl implements Ka
//성공 건수 세팅
KakaoSentVO eachCnt = new KakaoSentVO();
eachCnt.setMsgGroupId(result.getMsgGroupId());
eachCnt.setBizKakaoResendYn("Y".equals(result.getBizKakaoResendYn()) ? "Y" : "N");
try {
eachCnt = kakaoSentDAO.selectKakaoSentCntEachCnt_advc(eachCnt);
} catch (Exception e) {

View File

@ -1664,63 +1664,48 @@
<select id="KakaoSentDAO.selectKakaoSentCntEachCnt_advc" parameterClass="kakaoSentVO" resultClass="kakaoSentVO">
SELECT
a.MSG_GROUP_ID AS msgGroupId,
a.successCount,
a.waitCount,
a.failCount,
a.kakaoResendSuccCount,
a.kakaoResendFailCount,
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
a.MSG_GROUP_ID AS msgGroupId
, a.successCount
, a.waitCount
, a.failCount
, a.divideYn
<isEqual property="bizKakaoResendYn" compareValue="Y">
, a.kakaoResendSuccCount
, a.kakaoResendFailCount
, a.successCount * bkp.BIZ_KAKAO_AT_PRICE AS successPrice
, (a.smsCnt * bkp.BIZ_SMS_PRICE) + (a.mmsCnt * bkp.BIZ_MMS_PRICE) AS kakaoResendSuccPrice
</isEqual>
<isNotEqual property="bizKakaoResendYn" compareValue="Y">
, 0 AS kakaoResendSuccCount
, 0 AS kakaoResendFailCount
, 0 AS successPrice
, 0 AS kakaoResendSuccPrice
</isNotEqual>
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
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
, CASE
WHEN COUNT(DISTINCT t1.REQ_DATE) > 1 THEN 'Y'
ELSE 'N'
END AS divideYN
<isEqual property="bizKakaoResendYn" compareValue="Y">
, 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 BL1.CALL_STATUS not IN ('6600', '4100'), 1,0)) AS kakaoResendFailCount
, SUM(IF(t1.BIZ_KAKAO_RESEND_YN = 'Y' AND BL1.CALL_STATUS IN ('6600', '4100') AND t1.BIZ_KAKAO_RESEND_TYPE = 'SMS', 1, 0)) AS smsCnt
, SUM(IF(t1.BIZ_KAKAO_RESEND_YN = 'Y' AND BL1.CALL_STATUS IN ('6600', '4100') AND t1.BIZ_KAKAO_RESEND_TYPE = 'MMS', 1, 0)) AS mmsCnt
</isEqual>
FROM mj_msg_data t1 FORCE INDEX (idx_msgdata_groupid_delfalg_msgtype_curstate)
LEFT OUTER JOIN BIZ_LOG BL1 ON t1.BIZ_UMID = BL1.CMID
<isEqual property="bizKakaoResendYn" compareValue="Y">
LEFT OUTER JOIN BIZ_LOG BL1 ON t1.BIZ_UMID = BL1.CMID
</isEqual>
WHERE
t1.DEL_FLAG = 'N'
t1.MSG_GROUP_ID = #msgGroupId#
AND t1.MSG_TYPE IN ('8', '9')
AND t1.CUR_STATE IN ('0', '1', '2', '3')
AND t1.MSG_GROUP_ID = #msgGroupId#
AND t1.DEL_FLAG = 'N'
GROUP BY t1.MSG_GROUP_ID
) a
LEFT OUTER JOIN BIZ_KAKAO_PRICE bkp ON bkp.MSG_GROUP_ID = a.MSG_GROUP_ID

View File

@ -400,6 +400,7 @@
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') then '성공'
WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE in ('100', '101', '110', '800')) then '성공'
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE in ('4100', '6600', '7000')) then '성공'
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE not in ('4100', '6600', '7000')) AND A.BIZ_KAKAO_RESEND_YN = 'Y' AND BL1.CALL_STATUS IN ('6600', '4100') then '성공(대체문자)'
WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE in ('1000', '1001')) then '성공'
WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE in ('6', '1000')) then '성공'
WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE in ('1000', '1001')) then '성공'
@ -409,6 +410,7 @@
END as statusTxt
from
MJ_MSG_DATA A
LEFT OUTER JOIN BIZ_LOG BL1 ON A.BIZ_UMID = BL1.CMID
where
A.MSG_GROUP_ID = #msgGroupId#

View File

@ -104,16 +104,23 @@ function fnReservCancel(msgGroupId){
}
function pageUnitChg(obj){
document.searchForm.pageUnit.value = obj.value;
linkPage(1);
}
</script>
<div class="list_info">
<p>총 발송건수 <span class="c_e40000"><c:out value="${totalRecordCount}"/></span>건</p>
<div>
<p class="cf_text c_e40000">※ 예약 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p>
<label for="pageUnit" class="label">줄보기 선택</label>
<select id="pageUnit" name="pageUnit" class="selType2">
<!-- <select id="pageUnit" name="pageUnit" class="selType2"> -->
<select class="selType2" onchange="pageUnitChg(this);">
<option value="10" <c:if test="${paginationInfo.recordCountPerPage == '10'}">selected</c:if> >10개보기</option>
<option value="20" <c:if test="${paginationInfo.recordCountPerPage == '20'}">selected</c:if> >20개보기</option>
<option value="30" <c:if test="${paginationInfo.recordCountPerPage == '30'}">selected</c:if> >30개보기</option>
<option value="100" <c:if test="${paginationInfo.recordCountPerPage == '100'}">selected</c:if> >100개보기</option>
</select>
</div>
</div>

View File

@ -659,7 +659,7 @@ function previewPhone(){
<c:if test="${result.reserveYn eq 'Y' }">
<dl><!-- 예약 시 -->
<dt>등록일시</dt>
<dd>${result.regDate}</dd>
<dd><fmt:formatDate pattern = "yyyy-MM-dd HH:mm:ss" value = "${result.regdate}" /></dd>
</dl>
</c:if>
<dl>
@ -760,7 +760,7 @@ function previewPhone(){
<div class="res_info_btm1">
<dl>
<dt>성공건수</dt>
<dd><span class="c_002c9a_g"><fmt:formatNumber value="${result.successCount}" type="number" groupingUsed="true" /></span>건(${result.successPct})</dd>
<dd><span class="c_002c9a_g"><fmt:formatNumber value="${result.successCount + result.kakaoResendSuccCount}" type="number" groupingUsed="true" /></span>건(${result.successPct})</dd>
</dl>
</div>
</div>
@ -774,7 +774,12 @@ function previewPhone(){
<div class="res_info_btm1">
<dl>
<dt>실패건수</dt>
<dd><span class="c_e40000_g"><fmt:formatNumber value="${result.failCount}" type="number" groupingUsed="true" /></span>건(${result.failedPct})</dd>
<%-- 대체문자 기능 on
카카오톡 실패 + 대체문자 실패 = 실패
대체문자 기능 off
카카오톡 실패 = 실패
*카카오톡 실패임에도 대체문자로 발송이 성공한 경우 실패로 체크하지 않음 --%>
<dd><span class="c_e40000_g"><fmt:formatNumber value="${result.failCount - result.kakaoResendSuccCount}" type="number" groupingUsed="true" /></span>건(${result.failedPct})</dd>
</dl>
</div>
</div>

View File

@ -156,11 +156,11 @@ $(document).ready(function(){
});
$(document).on('change','#pageUnit', function(){
/* $(document).on('change','#pageUnit', function(){
linkPage(1);
});
}); */
//발송건수 셋
cntSet();