myname 2025-05-08
Merge branch 'master' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/mjon_git
@b1bf60a70691d40f30362ab46c1e9a1cd0505091
src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java
--- src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java
+++ src/main/java/itn/let/kakao/kakaoComm/KakaoSendUtil.java
@@ -193,19 +193,21 @@
 // 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 @@
 				
 				
 			} else {
-				kakaoAtPrice = getValidPrice(mberManageVO.getKakaoAtPrice(), sysJoinSetVO.getKakaoAtPrice());
-				sendVO.setEachPrice( Float.toString(kakaoAtPrice) );
+				sendVO.setEachPrice(kakaoAtPStr);
 			}
 			
 			
src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
--- src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
@@ -956,7 +956,7 @@
 
 /** @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()));
 				
src/main/java/itn/let/kakao/user/sent/service/impl/KakaoSentServiceImpl.java
--- src/main/java/itn/let/kakao/user/sent/service/impl/KakaoSentServiceImpl.java
+++ src/main/java/itn/let/kakao/user/sent/service/impl/KakaoSentServiceImpl.java
@@ -242,7 +242,7 @@
 		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 @@
 		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 @@
 		//성공 건수 세팅
 		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) {
src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
@@ -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
src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml
@@ -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#
 	
src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp
@@ -104,16 +104,23 @@
 	
 }
 
+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>
src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailView.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailView.jsp
@@ -659,7 +659,7 @@
                                       <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 @@
 								<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 @@
 								<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>
src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentView.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentView.jsp
@@ -156,11 +156,11 @@
 		
 	});
 	
-	$(document).on('change','#pageUnit', function(){
+	/* $(document).on('change','#pageUnit', function(){
 		
 		linkPage(1);
 		
-	});
+	}); */
 	
 	//발송건수 셋
 	cntSet();
Add a comment
List