From 1c48d65b7b5970c26c90efcef06991ec9e3185ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=A3=BC=EC=9D=BC?= Date: Fri, 17 Jul 2026 02:24:19 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20=EA=B2=8C?= =?UTF-8?q?=EC=8B=9C=ED=8C=90=20=EB=93=B1=EB=A1=9D=20=EA=B6=8C=ED=95=9C=20?= =?UTF-8?q?=EB=B0=8F=20URL=20=ED=91=9C=EC=8B=9C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gcone/bbs/bbs/service/BOBbsService.java | 17 ++++++- .../views/mngr/bbs/bbsmngr/BbsRegistC.jsp | 21 +++++++-- .../mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR.jsp | 45 ++++++++++--------- 3 files changed, 56 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/wb/domainserver/domain/gcone/bbs/bbs/service/BOBbsService.java b/src/main/java/com/wb/domainserver/domain/gcone/bbs/bbs/service/BOBbsService.java index e9a63dff..bfdb71b4 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/bbs/bbs/service/BOBbsService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/bbs/bbs/service/BOBbsService.java @@ -393,6 +393,7 @@ public class BOBbsService { if (vo.getBbscttRedngAuthorDvCd() != null && "01".equals(vo.getBbscttRedngAuthorDvCd())) { vo.setBbscttRedngAuthorDvCd("[all]"); } else if (vo.getBbscttRedngAuthorDvCd() != null && "02".equals(vo.getBbscttRedngAuthorDvCd())) { + validateMemberGradeSelection(vo.getBbscttRedngAuthorDvCd_c(), "게시판 읽기"); StringBuilder sb = new StringBuilder(); for (String mbrInnb : vo.getBbscttRedngAuthorDvCd_c()) { @@ -431,6 +432,8 @@ public class BOBbsService { if (vo.getBbscttRegistAuthorDvCd() != null && "01".equals(vo.getBbscttRegistAuthorDvCd())) { vo.setBbscttRegistAuthorDvCd("[all]"); } else if (vo.getBbscttRegistAuthorDvCd() != null && "02".equals(vo.getBbscttRegistAuthorDvCd())) { + validateMemberGradeSelection(vo.getBbscttRegistAuthorDvCd_c(), "게시판 쓰기"); + StringBuilder sb = new StringBuilder(); for (String mbrInnb : vo.getBbscttRegistAuthorDvCd_c()) { @@ -465,6 +468,8 @@ public class BOBbsService { if (vo.getAnswRegistAuthorDvCd() != null && "01".equals(vo.getAnswRegistAuthorDvCd())) { vo.setAnswRegistAuthorDvCd("[all]"); } else if (vo.getAnswRegistAuthorDvCd() != null && "02".equals(vo.getAnswRegistAuthorDvCd())) { + validateMemberGradeSelection(vo.getAnswRegistAuthorDvCd_c(), "답글 쓰기"); + StringBuilder sb = new StringBuilder(); for (String mbrInnb : vo.getAnswRegistAuthorDvCd_c()) { @@ -499,6 +504,8 @@ public class BOBbsService { if (vo.getCmRegistAuthorDvCd() != null && "01".equals(vo.getCmRegistAuthorDvCd())) { vo.setCmRegistAuthorDvCd("[all]"); } else if (vo.getCmRegistAuthorDvCd() != null && "02".equals(vo.getCmRegistAuthorDvCd())) { + validateMemberGradeSelection(vo.getCmRegistAuthorDvCd_c(), "댓글 쓰기"); + StringBuilder sb = new StringBuilder(); for (String mbrInnb : vo.getCmRegistAuthorDvCd_c()) { @@ -685,15 +692,21 @@ public class BOBbsService { msgMap.put("bbsid", bbsId); } catch (WnbtRestException wre){ - throw new WnbtRestException(wre.getMessage()); + throw wre; } catch (Exception e) { - log.error(e.getMessage(), e); + throw new WnbtRestException("게시판 등록 중 오류가 발생했습니다.", e); } return msgMap; } + private void validateMemberGradeSelection(String[] memberGradeArr, String authorizationName) { + if (memberGradeArr == null || memberGradeArr.length == 0) { + throw new WnbtRestException(authorizationName + " 권한의 회원등급을 선택해 주세요."); + } + } + /** * 게시판 삭제 diff --git a/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbsRegistC.jsp b/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbsRegistC.jsp index 58fa61ca..c1f81db6 100644 --- a/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbsRegistC.jsp +++ b/src/main/webapp/WEB-INF/views/mngr/bbs/bbsmngr/BbsRegistC.jsp @@ -948,7 +948,8 @@ + onclick="fn_change_event('bbscttRegistAuthorDvCd'); + fn_click_check('bbscttRegistAuthorDvCd', 'all');"> @@ -2042,13 +2043,25 @@ url : url, data : paramsArray, success : function(data) { + const result = JSON.parse(data.resBody.result); + const bbsId = result.bbsid; + if (result.message !== 'success' || !bbsId) { + alert('게시판 등록에 실패했습니다. 다시 시도해 주세요.'); + return; + } + alert(''); - const bbsId = JSON.parse(data.resBody.result).bbsid; <%-- fn_move_dtlupdt(bbsId); --%> - $('#backUpData').find('[name=bbsId]').val(JSON.parse(data.resBody.result).bbsid); + $('#backUpData').find('[name=bbsId]').val(bbsId); $('#backUpData').find('[name=pageDv]').val('I'); $('#backUpData').attr('action', ''); $('#backUpData').submit(); + }, + error : function(data) { + const message = data.responseJSON + && data.responseJSON.resBody + && data.responseJSON.resBody.result; + alert(message || '게시판 등록 중 오류가 발생했습니다.'); } }); } @@ -2078,4 +2091,4 @@ } - \ No newline at end of file + diff --git a/src/main/webapp/WEB-INF/views/mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR.jsp b/src/main/webapp/WEB-INF/views/mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR.jsp index e23e51b5..d6b6d552 100644 --- a/src/main/webapp/WEB-INF/views/mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR.jsp +++ b/src/main/webapp/WEB-INF/views/mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR.jsp @@ -21,36 +21,36 @@ $(document).ready(function () { console.log('urlval 태그' + $('.urlVal').length); - const pcDomnAdres = document.querySelector('.header__logo').getAttribute('data-pcurl'); + const popup = document.getElementById('board-list-detail'); let urlVal = ''; - const bbscttInnb = document.getElementsByName("script_bbscttInnb")[0]?.value || ""; - const bbsId = document.getElementsByName("bbsId")[0]?.value || ""; - const bbsTyCd = document.getElementsByName("bbsTyCd")[0]?.value || ""; - const sopmalCd = document.getElementsByName("sopmalCd")[0]?.value || ""; - const bbsUseAt = document.getElementsByName("bbsUseAt")[0]?.value || ""; - const npayBbscttSnb = document.getElementsByName("npayBbscttSnb")[0]?.value || ""; + const bbscttInnb = popup.querySelector('[name="script_bbscttInnb"]')?.value || ""; + const bbsId = popup.querySelector('[name="bbsId"]')?.value || ""; + const bbsTyCd = popup.querySelector('[name="bbsTyCd"]')?.value || ""; + const sopmalCd = popup.querySelector('[name="sopmalCd"]')?.value || ""; + const bbsUseAt = popup.querySelector('[name="bbsUseAt"]')?.value || ""; + const npayBbscttSnb = popup.querySelector('[name="npayBbscttSnb"]')?.value || ""; console.log("bbscttInnb:", bbscttInnb); console.log("bbsId:", bbsId); console.log("bbsTyCd:", bbsTyCd); console.log("sopmalCd:", sopmalCd); - if(bbsUseAt == 'Y' && (npayBbscttSnb === null || npayBbscttSnb === undefined || npayBbscttSnb === '')) { - if (bbsTyCd === '03' || bbsId == 'main_event' || bbsId == 'largeLMS_event') { - if (bbsTyCd === '03' || bbsId == 'main_event') { - urlVal = pcDomnAdres + '/sopmal/csc/selectBbscttAuth?authDv=CM&bbsTyCd=03&reqUrl=subPage&bbsId=' + bbsId + '&bbscttInnb=' + bbscttInnb; - } else { - urlVal = '/'+sopmalCd+'/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb; - } + if (bbsUseAt === 'Y' && !npayBbscttSnb) { + if (bbsId === 'largeLMS_event') { + urlVal = '/' + sopmalCd + '/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb; + } else { + urlVal = '/sopmal/csc/selectBbscttAuth?authDv=CM&reqUrl=detail&bbsTyCd=' + + encodeURIComponent(bbsTyCd) + + '&bbsId=' + encodeURIComponent(bbsId) + + '&bbscttInnb=' + encodeURIComponent(bbscttInnb); } } console.log(' urlVal 실행됨: ' + urlVal); - console.log(' pcDomnAdres 실행됨: ' + pcDomnAdres); - $('.urlVal').val(urlVal); + popup.querySelector('.urlVal').value = urlVal; }); @@ -88,15 +88,18 @@
+ +
+ + +
+ +
- - - - @@ -699,4 +702,4 @@ -
\ No newline at end of file +