Merge branch 'advc'

This commit is contained in:
hehihoho3@gmail.com 2025-04-08 18:19:21 +09:00
commit 389dd997be
7 changed files with 148 additions and 198 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,126 +1552,67 @@
</select>
<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
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,
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')
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
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
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
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
</select>
<!-- 알림톡 발송결과 상세 데이터-->

View File

@ -1228,7 +1228,7 @@ function checkNumber(event) {
//재전송 스크립트 수정
$(window).on('load', function() {
if(${msgResendAllFlag eq 'Y'}) {
if(${kakaoVO.msgResendAllFlag eq 'Y'}) {
// 채널 ID 및 템플릿 선택 코드는 유지
$("#selectKakaoProfileList option").filter(function() {
return $(this).text() === '${kakaoVO.msgResendAllYellowId}';
@ -1242,43 +1242,47 @@ $(window).on('load', function() {
fn_viewDataInit02();
priceInit();
try {
// JSON 파싱
var resendListObj = JSON.parse('${resendListJson}');
var listCnt = resendListObj.length;
// 중복 제거 - Set 사용
var uniquePhones = new Set();
var uniqueResendList = [];
// 중복 제거 로직
for(var i = 0; i < resendListObj.length; i++) {
var phone = removeDash(resendListObj[i].callTo);
if(!uniquePhones.has(phone)) {
uniquePhones.add(phone);
uniqueResendList.push(resendListObj[i]);
}
}
// 중복 제거된 데이터로 처리
for(var i = 0; i < uniqueResendList.length; i++) {
var phoneNumber = removeDash(uniqueResendList[i].callTo);
// callTo 입력 필드에 값 설정 후 번호추가 버튼 클릭
$("#callTo").val(phoneNumber);
$(".addCallToF").trigger("click");
}
// 총 건수 확인
setTimeout(function() {
updateTotCnt();
}, 500);
} catch(e) {
console.error("재전송 데이터 처리 오류:", e);
}
var varList = $("#excelTemplateContent").val().match(/#\{([^}]+)\}/g);
if(varList == null){
try {
// JSON 파싱
var resendListObj = JSON.parse('${resendListJson}');
var listCnt = resendListObj.length;
// 중복 제거 - Set 사용
var uniquePhones = new Set();
var uniqueResendList = [];
// 중복 제거 로직
for(var i = 0; i < resendListObj.length; i++) {
var phone = removeDash(resendListObj[i].callTo);
if(!uniquePhones.has(phone)) {
uniquePhones.add(phone);
uniqueResendList.push(resendListObj[i]);
}
}
// 중복 제거된 데이터로 처리
for(var i = 0; i < uniqueResendList.length; i++) {
var phoneNumber = removeDash(uniqueResendList[i].callTo);
// callTo 입력 필드에 값 설정 후 번호추가 버튼 클릭
$("#callTo").val(phoneNumber);
$(".addCallToF").trigger("click");
}
// 총 건수 확인
setTimeout(function() {
updateTotCnt();
}, 500);
} catch(e) {
console.error("재전송 데이터 처리 오류:", e);
}
}
}
});

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">

View File

@ -20,7 +20,6 @@
/*// 발송결과 화면개선 */
.table {display: table;width: 100%;}
.table_cell {display: table-cell;vertical-align: middle;}
.table_cell1 {display: table-cell;vertical-align: top; position: relative; top: 25px;}
.vMiddle {vertical-align: middle;}
.tRight {text-align: right !important;}
.tLeft {text-align: left !important;}
@ -602,7 +601,6 @@ input[type=text]::-ms-reveal, input[type=password]::-ms-reveal, input[type=email
.send_general.sec .tType1 tbody tr:first-child {border-top: 0;}
.send_top .excelWrap {padding: 20px 0;}
.excel_middle {background-color: #f2f2f2; padding: 9px 20px; border-radius: 5px; margin: 20px 0;}
.excel_middle .select_btnWrap div{gap:6px;}
.send_top .excelWrap .excel_selBox {margin-bottom: 10px; display: flex; justify-content: space-between;}
.send_top .excelWrap .excel_selBox select.selType1 {padding: 0 80px 0 10px;}
.send_top .excelWrap .excel_selBox span {color: #e40000; font-size: 14px; padding-left: 5px;}
@ -1578,9 +1576,8 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.kakaotalkset_cont .list_info .btn_list{background-image: url(/publish/images/btn_list_icon.png);}
.kakaotalkset_cont .list_info .btn_thumbnail{background-image: url(/publish/images/btn_thumbnail_icon.png);}
.kakaotalkset_cont .list_info .btnType8{width: 140px;}
.kakaotalkset_cont .kakao_template_list{display:flex;margin: 20px 0 0 0;flex-wrap:wrap;gap:13px;}
/* .kakaotalkset_cont .kakao_template_list li{position: relative; display: inline-block; width: calc((100% - 135px)/4); border-radius: 25px; box-shadow: inset 0 0px 8px rgba(0,0,0,0.2); padding: 8px 8px 16px 8px; margin: 0 20px 40px 0;} */
.kakaotalkset_cont .kakao_template_list li{position: relative; width:calc((100%/4) - 26px); border-radius: 25px; box-shadow: inset 0 0px 8px rgba(0,0,0,0.2); padding: 8px 8px 16px 8px;}
.kakaotalkset_cont .kakao_template_list{margin: 20px 0 0 0;}
.kakaotalkset_cont .kakao_template_list li{position: relative; display: inline-block; width: calc((100% - 135px)/4); border-radius: 25px; box-shadow: inset 0 0px 8px rgba(0,0,0,0.2); padding: 8px 8px 16px 8px; margin: 0 20px 40px 0;}
.kakaotalkset_cont .kakao_template_list li.template_none{box-shadow: none; width: 100%; text-align: center; font-size: 18px; font-weight: 400;}
.kakaotalkset_cont .kakao_template_list li.template_none::after{display: none;}
.kakaotalkset_cont .kakao_template_list li:nth-child(4n){margin: 0 0 0 0;}
@ -1736,7 +1733,6 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.send_top .kakaotalksend_cont .kakao_wrap .send_left .variable_wrap .excel_btn{height: 40px; border: 5px solid #129738; color: #129738; font-size: 16px; font-weight: 500; padding: 0 15px; border-radius: 5px;}
.send_top .kakaotalksend_cont .kakao_wrap .send_left .variable_wrap .excel_btn i{width: 17px; height: 15px; background-image: url(/publish/images/content/excel_img.png); margin: 0 5px 5px 0;}
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receiver_wrap01{display: none !important;}
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receiver_wrap02 .btnType{margin:0 0 0 6px;}
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receiver_wrap02 .listType{width: 100%;}
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receipt_num .list_table_num{width: calc(100% - 60px);}
.kakaotalksend_cont .kakao_wrap .put_right .qmMark{width: 19px; height: 19px; background-image: url(/publish/images/content/qmIcon_s.png); margin: -0.3px 0 2px 4px;}
@ -1744,7 +1740,7 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.kakaotalksend_cont .kakao_wrap .kakao_template_text {display: flex;justify-content: space-between;}
.kakaotalksend_cont .kakao_wrap .put_right .btn_popup_wrap{margin: 0 0 5px 0;}
.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left{height: 234px;}
.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short textarea{height: calc(100% - 80px);}
.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short textarea{height: calc(100% - 58px);}
.kakaotalksend_cont .kakao_wrap .button_type_wrap{display: flex; border: 1px solid #e5e5e5; border-radius: 5px; padding: 10px 20px; margin: 10px 0 0 0;}
.kakaotalksend_cont .kakao_wrap .button_type_wrap dt{width: 110px; font-weight: 400; padding: 8px 0 0 0;}
.kakaotalksend_cont .kakao_wrap .button_type_wrap .button_type_input{width: 483px;}
@ -2126,11 +2122,6 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.res_info .res_info_in .res_info_btm {margin:20px 0 0 0;padding:10px;background:#fff;border-radius:5px;box-sizing:border-box;}
.res_info .res_info_in .res_info_btm dl {display:flex;padding:8px 10px;font-size:16px;font-weight:300;justify-content:space-between; color:#222;}
.res_info .res_info_in .res_info_btm .charge_line {border-top:1px solid #e6e6e6; text-align:center; margin:0 10px; padding:7px 0 5px 0; }
.res_info .res_info_in .res_info_btm .charge_line dl {padding:7px 0 5px 10px; }
.res_info .res_info_in .res_info_btm .charge_line dl dt {font-size:15px;}
.res_info .res_info_in .res_info_btm .charge_line dl dd {padding:0; font-size:16px;}
.res_info .res_info_in .res_info_btm dl dt.charge_title {font-size:15px; padding:0 0 0 5px;}
.res_info .res_info_in .res_info_btm dl dt {font-weight:400;}
.res_info .res_info_in .res_info_btm dl dt.btm_charge {font-size:16px;}
.res_info .res_info_in .res_info_btm dl dd span {font-weight:500;}
@ -2148,13 +2139,10 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
/* right area 문자 미리보기 */
.send_top .resultcont_right {flex-basis: calc(100% - 68% - 80px); position: relative;min-height:630px;}
.send_top .send_general.sec .resultcont_right {min-height:auto;}
.send_top .resultcont_right .tab_phone {display: none; }
.send_top .resultcont_right .tab_phone.current {display: block;}
/* phone 기본 -- sticky */
.send_top .resultcont_right .phone {width: 374px; position: absolute; right: -2px; top: 0;}
.send_top .resultcont_right .phone .phoneIn {background-image: url(/publish/images/content/phoneBg.png); height: 720px; background-size: 100% auto; background-repeat: no-repeat; }
.send_top .resultcont_right .phone .phoneIn>div {padding: 45px 30px 25px 30px; position: relative; height: 96%; box-sizing: border-box;}
.send_top .resultcont_right .phone .phoneIn>div {padding: 45px 30px 0 30px; position: relative; height: 96%; box-sizing: border-box;}
.send_top .resultcont_right .phone .prev_p {font-size: 20px;font-weight: 500;padding-bottom: 12px;border-bottom: 1px solid #e5e5e5;}
.send_top .resultcont_right .phone .text_length2 {padding: 12px 0;}
.send_top .resultcont_right .phone .text_length2>span {float: left;line-height: 27px;}
@ -2185,7 +2173,7 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
/* 알림톡 미리보기 */
.send_top .resultcont_right .phone_kakao {width: 374px; position: absolute; right:0; top: 0;}
.send_top .resultcont_right .phone_kakako .phoneIn{height: 720px; width:346px; background-image: url(/publish/images/content/kakaoBg_01.png); padding: 27px 25px 0 25px; margin:0 0 0 -12px;}
.send_top .resultcont_right .phone_kakako .phoneIn{height: 690px; width:340px; background-image: url(/publish/images/content/kakaoBg.png); padding: 27px 25px 0 25px;}
.send_top .resultcont_right .phone_kakako .prev_p{padding: 0 0 0 10px; border: 0; letter-spacing: -0.25px;}
.send_top .resultcont_right .phone_kakako .prev_p img{margin: 0 10px 0 0;}
.send_top .resultcont_right .phone_kakako .allimtalk_title{position: relative; width: calc(100% - 20px); background-color: #fae100; font-family: 'LotteMartDream'; font-size: 18px; padding: 12px 21px; border-radius: 5px 5px 0 0; box-sizing: border-box;}
@ -2209,7 +2197,7 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.send_top .resultcont_right .phone_kakako .phoneIn .text_preview .allimtalk_content .btn_kakao_type{width: calc(100% - 20px); height: 40px; font-size: 15px; border-radius: 5px; background-color: #ededed;}
.send_top .resultcont_right .phone_kakako .phoneIn .template_info_wrap{display: flex; width: calc(85% + 13px); height: auto; padding: 6px 15px 6px 23px; justify-content: space-between; align-items: center; background-color: #fae100; margin: -5px 0 0 -3px; border-radius: 0 0 25px 25px;}
.send_top .resultcont_right .phone_kakako .phoneIn .template_info_wrap .btn_template_choice{width: 120px; height: 36px; font-size: 16px; color: #fae100; background-color: #302218; border-radius: 5px;}
.send_top .resultcont_right .phone_kakako .addText{color: #002c9a;text-align: center; font-size: 14px; padding-top: 2px; margin:-27px 0 10px 0;}
.send_top .resultcont_right .phone_kakako .addText{color: #002c9a;text-align: center; font-size: 14px; padding-top: 2px; margin:10px 0 10px 0;}
.btn_list_type1 {border-top:solid 1px #e5e5e5; text-align: right; padding:26px 0 0 0; margin:60px 0 0 0;}
.btn_list_type1 .btnType.btnType17 {width:100px; }
@ -2403,11 +2391,6 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.tb_wrap1{height:302px; overflow-y: auto; position:relative; border:1px solid #ccc; border-radius:5px;}
.tb_wrap1 table.type4 th{position: sticky; top:0; z-index: 1; background-color:#ededed;}
/*문자전송_안심번호 안내 추가*/
.top_content .send_general .send_left .tType1 .btn_popup_wrap .info_guide{margin: -11px 0 0 0; text-align: left; line-height: 1.3; font-size: 14px; color: #e40000; font-weight: 400;}
.top_content .send_general .send_left .tType1 .btn_popup_wrap .info_guide:hover{text-decoration: underline;}
.tType1 tbody tr td.putText textarea.phone_num{height: 84px;}
@keyframes rotate-loading {
0% {transform:rotate(0)}
@ -2603,10 +2586,6 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px
.sub .election .receipt_number_table_wrap .list_bottom{width:100%;}
.sub .election .list_bottom .list_bottom_right button{height:30px;font-size:14px;letter-spacing:-1.4px;}
.sub .election .list_bottom .pagination button{display:inline-flex;width:25px;height:30px;align-items:center;justify-content:center;}
/*문자전송_안심번호 안내 추가*/
.top_content .send_general .send_left .tType1 .btn_popup_wrap .info_guide{margin: 0 0 0 11px; text-indent: -11px;}
.tType1 tbody tr td.putText textarea.phone_num{height: 103px;}
}
@media only screen and (max-width:1380px){