이호영 이호영 2025-10-30
Merge branch 'master' into api_advc
@d95ee8757087e684483d79abc8b69743db50ef53
.claude/.gitignore
--- .claude/.gitignore
+++ .claude/.gitignore
@@ -1,1 +1,2 @@
 /settings.local.json
+/mcp_settings.json
pom.xml
--- pom.xml
+++ pom.xml
@@ -146,7 +146,7 @@
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
-            <version>5.1.31</version>
+            <version>5.1.49</version>
         </dependency>
 
 		<!-- oracle 10g driver -->
src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java
--- src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java
+++ src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java
@@ -34,6 +34,7 @@
 
 import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import egovframework.rte.fdl.idgnr.EgovIdGnrService;
+import itn.com.cmm.util.StringUtil;
 import itn.com.cmm.util.StringUtil2;
 import itn.let.cmm.vo.FileInfoVO;
 import itn.let.fax.addr.service.FaxAddrGroupVO;
@@ -126,6 +127,11 @@
 
 		Map<String, Object> resultMap = new HashMap<String, Object>();
 		
+		//수신번호 검색 시 번호 포멧 통일
+		if("4".equals(mjonMsgSentVO.getSearchCondition()) && StringUtil.isNotEmpty(mjonMsgSentVO.getSearchKeyword())) {
+			mjonMsgSentVO.setSearchKeyword(mjonMsgSentVO.getSearchKeyword().trim().replace("-", ""));
+		}
+		
 		// 목록
 		List<MjonMsgSentVO> resultList = mjonMsgSentDAO.selectAllMsgSentList_advc(mjonMsgSentVO);
 
src/main/resources/egovframework/egovProps/globals_dev.properties
--- src/main/resources/egovframework/egovProps/globals_dev.properties
+++ src/main/resources/egovframework/egovProps/globals_dev.properties
@@ -28,7 +28,7 @@
 
 # mysql
 Globals.DriverClassName=com.mysql.jdbc.Driver
-Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc
+Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
 #Globals.Url=jdbc:mysql://139.150.73.12:3306/mjon
 Globals.UserName= mjonUr
 Globals.Password= mjon!@#$
src/main/resources/egovframework/egovProps/globals_local.properties
--- src/main/resources/egovframework/egovProps/globals_local.properties
+++ src/main/resources/egovframework/egovProps/globals_local.properties
@@ -28,8 +28,10 @@
 
 # mysql
 Globals.DriverClassName=com.mysql.jdbc.Driver
-Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc
-#Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon
+#Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc
+#Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc?characterEncoding=UTF-8&useUnicode=true&serverTimezone=Asia/Seoul
+Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
+
 Globals.UserName= mjonUr
 Globals.Password= mjon!@#$
 #Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon
src/main/resources/egovframework/egovProps/globals_prod.properties
--- src/main/resources/egovframework/egovProps/globals_prod.properties
+++ src/main/resources/egovframework/egovProps/globals_prod.properties
@@ -27,7 +27,7 @@
 
 # mysql
 Globals.DriverClassName=com.mysql.jdbc.Driver
-Globals.Url=jdbc:mysql://10.12.107.14:3306/mjon_advc
+Globals.Url=jdbc:mysql://10.12.107.14:3306/mjon_advc?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
 Globals.UserName= mjonUr
 Globals.Password= mjon!@#$
 
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
@@ -1409,7 +1409,7 @@
 				       C.YELLOW_ID                 AS yellowId
 				FROM MJ_MSG_GROUP_DATA B
 			         INNER JOIN (
-					         select MSG_GROUP_ID, MSG_TYPE, DEL_FLAG, MSG_NOTICETALK_SENDER_KEY, BIZ_KAKAO_RESEND_YN, BIZ_KAKAO_RESEND_DATA
+					         select MSG_GROUP_ID, MSG_TYPE, DEL_FLAG, MSG_NOTICETALK_SENDER_KEY, BIZ_KAKAO_RESEND_YN, BIZ_KAKAO_RESEND_DATA, CALL_TO
 						      from MJ_MSG_DATA
 						      where DEL_FLAG = 'N'
 						        <isNotEmpty property="tabType">
@@ -1452,6 +1452,9 @@
 					<isEqual property="searchCondition" compareValue="3">
 						AND  B.SMS_TXT like CONCAT('%', #searchKeyword#, '%')
 					</isEqual>
+					<isEqual property="searchCondition" compareValue="4" >
+						AND A.CALL_TO LIKE CONCAT('%', #searchKeyword#, '%')
+					</isEqual>
 				</isNotEmpty>
 				GROUP BY B.MSG_GROUP_ID
 				ORDER BY 1=1
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
@@ -254,6 +254,9 @@
 					<isEqual property="searchCondition" compareValue="3" >
 						AND B.SMS_TXT LIKE CONCAT('%', #searchKeyword#, '%')
 					</isEqual>
+					<isEqual property="searchCondition" compareValue="4" >
+						AND A.CALL_TO LIKE CONCAT('%', #searchKeyword#, '%')
+					</isEqual>
 				</isNotEmpty>
 				<isNotEmpty property="searchCondition01">
 					AND B.RESERVE_YN = #searchCondition01#
@@ -473,6 +476,9 @@
 				<isEqual property="searchCondition" compareValue="3" >
 					AND B.SMS_TXT LIKE CONCAT('%', #searchKeyword#, '%')
 				</isEqual>
+				<isEqual property="searchCondition" compareValue="4" >
+					AND A.CALL_TO LIKE CONCAT('%', #searchKeyword#, '%')
+				</isEqual>
 			</isNotEmpty>
 			<isNotEmpty property="searchCondition01">
 				AND B.RESERVE_YN = #searchCondition01#
src/main/webapp/WEB-INF/jsp/web/custom/MsgCustomPopupAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/custom/MsgCustomPopupAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/custom/MsgCustomPopupAjax.jsp
@@ -5,6 +5,11 @@
 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
 
 <head>
+<style>
+	.custom_layer .body_cont table tr.custom_put1 td .custom_put1_txt{margin:8px 0 0 0;}
+	.custom_layer .body_cont table tr.custom_put1 td .custom_put1_txt p{line-height:1.2;}
+	.custom_layer .body_cont table tr.custom_put1 td .custom_put1_txt p:first-child{margin:0;}
+</style>
 <script type="text/javascript">
 $(document).ready(function(){
 	$("input:text[numberOnly]").on("keyup", function() {
@@ -410,7 +415,8 @@
 								</div>
 								<div class="custom_put1_txt">
 									<p><span class="vMiddle">*</span> <span class="c_e40000">캘리그래피체는 수정이 불가</span>합니다.</p>
-									<p><span class="vMiddle">*</span> <spanspan class="c_e40000">제작형태와 요청사항이 상이</span>한 경우 <spanspan class="c_e40000">추가로 비용이 발생</span>할 수 있습니다.</p>
+									<p><span class="vMiddle">*</span> <span class="c_e40000">제작형태와 요청사항이 상이</span>한 경우 <span class="c_e40000">추가로 비용이 발생</span>할 수 있습니다.</p>
+									<p><span class="vMiddle">*</span> <span class="c_e40000">제작된 이미지는 <span class="c_e40000">알림톡 및 친구톡</span> 발송에는 사용할 수 없습니다.</p>
 								</div>
 								</td>
 							</tr>
@@ -418,7 +424,7 @@
 								<th>제공방법</th>
 								<td>
 									<input type="checkbox" id="storage" checked="checked" disabled="disabled"> <label for="storage">내보관함</label>
-									<input type="checkbox" name="customProvision" id="radio11" value="01"> <label for="radio11">카카오톡</label>
+									<input type="checkbox" name="customProvision" id="radio11" value="01"> <label for="radio11">문자</label>
 									<input type="checkbox" name="customProvision" id="radio12" value="02"> <label for="radio12">이메일</label>
 									<input type="text" class="radio12_input" name="customResultEmail" placeholder="이메일주소를 입력해주세요" onfocus="''" onblur="this.placeholder='이메일주소를 입력해주세요'">
 <!-- 									<span>중복선택 가능(최대2개)</span> -->
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
@@ -535,6 +535,7 @@
 							<select name="searchCondition" id="searchCondition" class="selType2">
 <%-- 								<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="4" <c:if test="${kakaoSentVO.searchCondition == '4'}">selected</c:if> >수신번호</option>
 <%-- 								<option value="3" <c:if test="${kakaoSentVO.searchCondition == '3'}">selected</c:if> >수신번호</option> --%>
 							</select>
 							<div class="search">
src/main/webapp/WEB-INF/jsp/web/kakao/template/at/KakaoAlimtalkTemplateRegist.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/template/at/KakaoAlimtalkTemplateRegist.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/template/at/KakaoAlimtalkTemplateRegist.jsp
@@ -536,9 +536,9 @@
 		
 	}
 	
-	if(!kakaoTemplateEmojiCheck(bizForm.templateContent.value)){
+	/* if(!kakaoTemplateEmojiCheck(bizForm.templateContent.value)){
 		return false;
-	}
+	} */
 	
 	
 	var data = new FormData(bizForm);
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
@@ -888,10 +888,11 @@
 									<button type="button" class="btnType6" onClick="javascript:fnSearch(1); return false;">조회</button>
 								</div>
 								<div class="btn_right">
-									<label for="searchCondition" class="label">검색 조건: ${mjonMsgSentVO.searchCondition == '2' ? '발신번호' : '문자내용'}</label>
+									<label for="searchCondition" class="label">검색 조건: ${mjonMsgSentVO.searchCondition == '2' ? '발신번호' : mjonMsgSentVO.searchCondition == '3' ? '문자내용' : '수신번호'}</label>
 									<select name="searchCondition" id="searchCondition" class="selType2 select_btn">
 										<option value="2" <c:if test="${mjonMsgSentVO.searchCondition == '2'}">selected</c:if> >발신번호</option>
 										<option value="3" <c:if test="${mjonMsgSentVO.searchCondition == '3'}">selected</c:if> >문자내용</option>
+										<option value="4" <c:if test="${mjonMsgSentVO.searchCondition == '4'}">selected</c:if> >수신번호</option>
 									</select>
 									<div class="search">
 										<label for="id" class="label"></label>
Add a comment
List