From 762181cb7c04c548bc99f65c46602f1678060471 Mon Sep 17 00:00:00 2001 From: KNKIM Date: Fri, 5 Nov 2021 16:06:18 +0900 Subject: [PATCH 1/4] =?UTF-8?q?QnA=20UI=20=EC=A0=81=EC=9A=A9=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EC=99=84=EB=A3=8C=20=EB=B0=8F=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EB=8B=A4=EC=9A=B4=EB=A1=9C=EB=93=9C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nlib/bbs/service/AttachFileService.java | 2 +- .../java/nlib/bbs/service/QnaService.java | 20 ++++++ .../nlib/bbs/service/impl/AttachFileDAO.java | 11 ++- .../service/impl/AttachFileServiceImpl.java | 21 ++++-- .../nlib/bbs/service/impl/QnaServiceImpl.java | 51 +++++++++++++- src/main/java/nlib/bbs/web/QnaController.java | 68 ++++++++----------- .../cmm/fileupload/FileUploadController.java | 9 ++- .../mapper/nlib/bbs/AncmntDAO_SQL.xml | 4 +- .../mapper/nlib/bbs/AttachFileDAO_SQL.xml | 18 +++-- .../mapper/nlib/bbs/FaqDAO_SQL.xml | 4 +- .../mapper/nlib/bbs/QnaDAO_SQL.xml | 5 +- .../WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp | 46 ++++++++++--- .../webapp/WEB-INF/jsp/nlib/bbs/listQnas.jsp | 12 ++-- .../WEB-INF/jsp/nlib/bbs/selectQnaArticle.jsp | 11 ++- src/main/webapp/js/fileupload/dropzone.js | 43 ++++++++++-- 15 files changed, 236 insertions(+), 89 deletions(-) diff --git a/src/main/java/nlib/bbs/service/AttachFileService.java b/src/main/java/nlib/bbs/service/AttachFileService.java index bd8ddd33..0a94d514 100644 --- a/src/main/java/nlib/bbs/service/AttachFileService.java +++ b/src/main/java/nlib/bbs/service/AttachFileService.java @@ -69,7 +69,7 @@ public interface AttachFileService * @return * @throws Exception */ - public int deleteAttachFileGroup(AttachFileVO attachFileVO) throws Exception; + public int deleteAttachFileGroup(String attachFileId) throws Exception; /** * 첨부파일 삭제한다. diff --git a/src/main/java/nlib/bbs/service/QnaService.java b/src/main/java/nlib/bbs/service/QnaService.java index b006d5b7..f50c42dd 100644 --- a/src/main/java/nlib/bbs/service/QnaService.java +++ b/src/main/java/nlib/bbs/service/QnaService.java @@ -8,6 +8,7 @@ import java.util.Map; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; import nlib.user.service.NlibLoginVO; +import nlib.util.StringUtil; public interface QnaService extends BoardService { @@ -45,5 +46,24 @@ public interface QnaService extends BoardService */ public int deleteArticle(ArticleVO articleVO) throws Exception; + + /** + * 해당 QNA 글을 변경할 수 있는지 여부를 확인한다. + * + * @param articleVO + * @return + * @throws Exception + */ + public String canModify(ArticleVO articleVO) throws Exception; + + /** + * 해당 QNA 글을 읽을 수 있는지 여부를 확인한다. + * + * @param articleVO + * @return + * @throws Exception + */ + public String canRead(ArticleVO articleVO) throws Exception; + } diff --git a/src/main/java/nlib/bbs/service/impl/AttachFileDAO.java b/src/main/java/nlib/bbs/service/impl/AttachFileDAO.java index 0c1d77b5..f9767e82 100644 --- a/src/main/java/nlib/bbs/service/impl/AttachFileDAO.java +++ b/src/main/java/nlib/bbs/service/impl/AttachFileDAO.java @@ -76,7 +76,16 @@ public interface AttachFileDAO { * @return * @throws Exception */ - public int deleteAttachFileGroup(AttachFileVO attachFileVO) throws Exception; + public int deleteAttachFileGroup(String attachFileId) throws Exception; + + /** + * 첨부파일그룹에 속한 모든 파일을 삭제한다. + * + * @param attachFileVO + * @return + * @throws Exception + */ + public int deleteAllFilesOfAttachFileGroup(String attachFileId) throws Exception; /** * 첨부파일 삭제한다. diff --git a/src/main/java/nlib/bbs/service/impl/AttachFileServiceImpl.java b/src/main/java/nlib/bbs/service/impl/AttachFileServiceImpl.java index e6482807..388d9d17 100644 --- a/src/main/java/nlib/bbs/service/impl/AttachFileServiceImpl.java +++ b/src/main/java/nlib/bbs/service/impl/AttachFileServiceImpl.java @@ -8,8 +8,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import nlib.bbs.service.ArticleVO; import nlib.bbs.service.AttachFileService; import nlib.bbs.service.AttachFileVO; +import nlib.bbs.service.QnaService; import nlib.util.StringUtil; /** @@ -42,6 +44,9 @@ public class AttachFileServiceImpl implements AttachFileService @Resource(name="attachFileDAO") AttachFileDAO attachFileDAO; + @Resource(name = "qnaService") + private QnaService qnaService; + /** * 첨부파일 목록을 조회한다. * @@ -86,8 +91,10 @@ public class AttachFileServiceImpl implements AttachFileService * @throws Exception */ @Override - public int deleteAttachFileGroup(AttachFileVO attachFileVO) throws Exception { - return attachFileDAO.deleteAttachFileGroup(attachFileVO); + public int deleteAttachFileGroup(String attachFileId) throws Exception { + int ret = attachFileDAO.deleteAttachFileGroup(attachFileId); + attachFileDAO.deleteAllFilesOfAttachFileGroup(attachFileId); + return ret; } /** @@ -120,7 +127,6 @@ public class AttachFileServiceImpl implements AttachFileService return attachFileDAO.selectAttachFile(attachFileVO); } - /** * 다운로드 가능 여부를 확인하다. * @@ -129,10 +135,13 @@ public class AttachFileServiceImpl implements AttachFileService * @throws Exception */ public boolean checkAttachFileDownload(AttachFileVO attachFileVO) throws Exception { - String ret = attachFileDAO.checkAttachFileDownload(attachFileVO); - if(StringUtil.isEmpty(ret)) return false; + String bdType = attachFileVO.getBdType(); + if(StringUtil.isEmpty(bdType)) return false; - return ret.charAt(0) == 'Y'; + String ret = "Y"; + ret = attachFileDAO.checkAttachFileDownload(attachFileVO); + + return StringUtil.isEmpty(ret) ? false : (ret.charAt(0) == 'Y'); } } \ No newline at end of file diff --git a/src/main/java/nlib/bbs/service/impl/QnaServiceImpl.java b/src/main/java/nlib/bbs/service/impl/QnaServiceImpl.java index 445af779..d48614dd 100644 --- a/src/main/java/nlib/bbs/service/impl/QnaServiceImpl.java +++ b/src/main/java/nlib/bbs/service/impl/QnaServiceImpl.java @@ -159,8 +159,55 @@ public class QnaServiceImpl extends BoardServiceImpl implements QnaService * @param reqVO * @return */ - public int deleteArticle(ArticleVO articleVO) { - return qnaDAO.deleteArticle(articleVO); + public int deleteArticle(ArticleVO articleVO) throws Exception { + int ret = qnaDAO.deleteArticle(articleVO); + attachFileService.deleteAttachFileGroup(articleVO.getBdAttachFileId()); + return ret; } + /** + * 해당 QNA 글을 변경할 수 있는지 여부를 확인한다. + * + * @param articleVO + * @return + * @throws Exception + */ + public String canModify(ArticleVO articleVO) throws Exception { + + if(StringUtil.isEmpty(articleVO.getLoginedMbInfoId())) { + return "로그인 후, 이용하실 수 있습니다."; + } + + ArticleVO savedArticleVO = selectArticle(articleVO); + + if(!"Y".equals(savedArticleVO.getMyQnaYn())) { + return "본인의 글만 변경할 수 있습니다."; + } + + if("Y".equals(savedArticleVO.getAnswerYn())) { + return "이미 답변완료된 글은 변경할 수 없습니다."; + } + + return null; + } + + /** + * 해당 QNA 글을 읽을 수 있는지 여부를 확인한다. + * + * @param articleVO + * @return + * @throws Exception + */ + public String canRead(ArticleVO articleVO) throws Exception { + + ArticleVO savedArticleVO = selectArticle(articleVO); + + if("Y".equals(savedArticleVO.getMyQnaYn())) return null; + + if("Y".equals(savedArticleVO.getSecretYn())) { + return "다른 사용자의 비밀글은 조회할 수 없습니다."; + } + + return null; + } } \ No newline at end of file diff --git a/src/main/java/nlib/bbs/web/QnaController.java b/src/main/java/nlib/bbs/web/QnaController.java index 093017b7..12890648 100644 --- a/src/main/java/nlib/bbs/web/QnaController.java +++ b/src/main/java/nlib/bbs/web/QnaController.java @@ -146,8 +146,16 @@ public class QnaController extends NlibCommonController { // 읽음처리 및 상세내용 조회 searchArticleVO.setLoginedMbInfoId(getMbInfoId(request)); - ArticleVO articleVO = qnaService.selectArticle(searchArticleVO); - + ArticleVO articleVO = null; + + String canRead = qnaService.canRead(searchArticleVO); + if(canRead != null) { + model.addAttribute("message", canRead); + articleVO = searchArticleVO; + } else { + articleVO = qnaService.selectArticle(searchArticleVO); + } + model.addAttribute("searchArticle", searchArticleVO); model.addAttribute("article", articleVO); @@ -228,7 +236,7 @@ public class QnaController extends NlibCommonController { //--------------------------- // 기본 정보 설정 //--------------------------- - articleVO.setRegDd(loginVO.getMbInfoId()); + articleVO.setRegId(loginVO.getMbInfoId()); articleVO.setMngOrgCd(getCurCouncilCd(request)); // 문화원코드 articleVO.setBdType(BD_TYPE_QNA); articleVO.setAnswerYn("N"); @@ -333,7 +341,7 @@ public class QnaController extends NlibCommonController { HttpServletRequest request , ArticleVO articleVO , String fileList - , String removedfile + , String delFileList , RedirectAttributes redirectAttrs , ModelMap model) throws Exception { @@ -341,13 +349,15 @@ public class QnaController extends NlibCommonController { // 권한 및 변경 가능 상태 체크 articleVO.setLoginedMbInfoId(getMbInfoId(request)); - String message = canModify(articleVO); + String message = qnaService.canModify(articleVO); if(message != null) { redirectAttrs.addFlashAttribute("searchArticle", articleVO); redirectAttrs.addFlashAttribute("message", message); - return "redirect:/bbs/insertQnaForm.do"; + return "redirect:/bbs/listQnas.do"; } + articleVO.setModId(nlibLoginVO.getMbInfoId()); + //--------------------------- // 첨부파일 정보 설정 @@ -388,7 +398,7 @@ public class QnaController extends NlibCommonController { } if(StringUtil.isNotEmpty(attachFileId)) { - articleVO.setBdAttachFileId(attachFileId); + if(StringUtil.isNotEmpty(articleVO.getBdAttachFileId())) articleVO.setBdAttachFileId(attachFileId); String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/"; List attachFiles = new ArrayList(); @@ -417,9 +427,9 @@ public class QnaController extends NlibCommonController { } // 첨부파일 삭제 - if(StringUtil.isNotEmpty(removedfile)) { + if(StringUtil.isNotEmpty(delFileList)) { - String removedFileListJsonStr = removedfile; + String removedFileListJsonStr = delFileList; if(removedFileListJsonStr.startsWith("&")) removedFileListJsonStr = StringEscapeUtils.unescapeHtml(removedFileListJsonStr); if(removedFileListJsonStr.startsWith("\"")) removedFileListJsonStr = removedFileListJsonStr.substring(1); if(removedFileListJsonStr.endsWith("\"")) removedFileListJsonStr = removedFileListJsonStr.substring(0, removedFileListJsonStr.length()-1); @@ -452,10 +462,10 @@ public class QnaController extends NlibCommonController { log.error("첨부파일 아이디(attachFileId) 값은 필수 항목입니다. 첨부파일 삭제에 실패하였습니다. 그러나, 게시물 등록은 계속 진행됩니다."); } - if(StringUtil.isNotEmpty(attachFileId)) { - articleVO.setBdAttachFileId(attachFileId); + if(StringUtil.isNotEmpty(attachFileId) && attachFileId.equals(articleVO.getBdAttachFileId())) { + //articleVO.setBdAttachFileId(attachFileId); - String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/"; + //String fileSStreCours = NlibProperty.getProperty("fileupload.base.path") + NlibProperty.getProperty("fileupload.bbs.qna.subpath") + "/"; List removedAttachFiles = new ArrayList(); for(int i=0; i 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN , DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD , A2.RNO , IF(IFNULL(C.USER_NM,'') = '', '관리자', C.USER_NM) AS REG_NM @@ -77,7 +77,7 @@ , A.POST_START_DATE , A.POST_END_DATE , A.VIEW_CNT - , CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN + , CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN , A.BD_ATTACH_FILE_ID , DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD , IF(IFNULL(C.USER_NM,'') = '', '관리자', C.USER_NM) AS REG_NM diff --git a/src/main/resources/egovframework/mapper/nlib/bbs/AttachFileDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/bbs/AttachFileDAO_SQL.xml index e793c5d8..e4f1513f 100644 --- a/src/main/resources/egovframework/mapper/nlib/bbs/AttachFileDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/bbs/AttachFileDAO_SQL.xml @@ -43,14 +43,14 @@ SELECT 'Y' AS checkResult FROM BD_NLIB_QNA - WHERE BD_TYPE = 'QNA' + WHERE UPPER(BD_TYPE) = 'QNA' AND BD_ATTACH_FILE_ID = #{attachFileId} - AND (SECRET_YN = 'N' OR REG_ID = #{mbInfoId}) + AND (IFNULL(SECRET_YN,'N') = 'N' OR REG_ID = #{mbInfoId}) AND IFNULL(USE_YN,'Y') = 'Y' FROM BD_NLIB_QNA - WHERE BD_TYPE = UPPER('FAQ') + WHERE UPPER(BD_TYPE) = 'FAQ' AND BD_ATTACH_FILE_ID = #{attachFileId} AND IFNULL(USE_YN,'Y') = 'Y' @@ -61,6 +61,7 @@ AND IFNULL(DELETE_YN, 'N') = 'N' AND DATE_FORMAT(NOW(), '%Y%m%d') BETWEEN IFNULL(POST_START_DATE,'00010101') AND IFNULL(POST_END_DATE, '99991231') + LIMIT 1 @@ -74,7 +75,7 @@ , 'Y' ) ON DUPLICATE KEY - UPDATE REG_DD = REG_DD; + UPDATE USE_AT = 'Y'; @@ -106,9 +107,16 @@ ) - + UPDATE BD_FILE SET USE_AT = 'N' WHERE ATTACH_FILE_ID = #{attachFileId} + AND IFNULL(USE_AT, 'Y') = 'Y' + + + + UPDATE BD_FILEDETAIL SET USE_AT = 'N' + WHERE ATTACH_FILE_ID = #{attachFileId} + AND IFNULL(USE_AT, 'Y') = 'Y' diff --git a/src/main/resources/egovframework/mapper/nlib/bbs/FaqDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/bbs/FaqDAO_SQL.xml index 745e01c9..0bdd7175 100644 --- a/src/main/resources/egovframework/mapper/nlib/bbs/FaqDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/bbs/FaqDAO_SQL.xml @@ -39,7 +39,7 @@ , IFNULL(A.ANSWER_YN, 'N') AS ANSWER_YN , IFNULL(A.USE_YN,'Y') AS USE_YN , A.VIEW_CNT - , CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN + , CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN , DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD , A2.RNO , C.USER_NM AS REG_NM @@ -86,7 +86,7 @@ , IFNULL(A.USE_YN, 'Y') AS USE_YN , A.VIEW_CNT , A.BD_ATTACH_FILE_ID - , CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN + , CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN , DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD , C.USER_NM AS REG_NM FROM BD_NLIB_QNA A diff --git a/src/main/resources/egovframework/mapper/nlib/bbs/QnaDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/bbs/QnaDAO_SQL.xml index 79df2a89..2a01a66b 100644 --- a/src/main/resources/egovframework/mapper/nlib/bbs/QnaDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/bbs/QnaDAO_SQL.xml @@ -38,7 +38,7 @@ , IFNULL(A.SECRET_YN, 'N') AS SECRET_YN , IFNULL(A.EMAIL_RECV_YN, 'N') AS EMAIL_RECV_YN , A.VIEW_CNT - , CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN + , CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN , DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD , A2.RNO , C.USER_NM AS REG_NM @@ -94,7 +94,7 @@ , IFNULL(A.SECRET_YN, 'N') AS SECRET_YN , A.VIEW_CNT , A.BD_ATTACH_FILE_ID - , CASE WHEN A.BD_ATTACH_FILE_ID IS NULL OR A.BD_ATTACH_FILE_ID = '' THEN 'N' ELSE 'Y' END AS ATTACH_YN + , CASE WHEN IFNULL((SELECT COUNT(1) FROM BD_FILE F1 LEFT OUTER JOIN BD_FILEDETAIL F2 ON F1.ATTACH_FILE_ID = F2.ATTACH_FILE_ID WHERE F1.ATTACH_FILE_ID = A.BD_ATTACH_FILE_ID AND F1.USE_AT = 'Y' AND F2.USE_AT = 'Y'),0) > 0 THEN 'Y' ELSE 'N' END AS ATTACH_YN , DATE_FORMAT(A.REG_DD, '%Y-%m-%d') AS REG_DD , DATE_FORMAT(A.MOD_DD, '%Y-%m-%d') AS MOD_DD , C.USER_NM AS REG_NM @@ -182,6 +182,7 @@ , MOD_DD = NOW() WHERE QNA_ID = #{articleId} AND BD_TYPE = 'QNA' + AND REG_ID = #{modId} /* 본인글만 삭제 */ AND IFNULL(ANSWER_YN, 'N') = 'N' AND IFNULL(USE_YN, 'Y') = 'Y' ]]> diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp index cc1dac1c..183a4506 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp @@ -85,8 +85,8 @@ $(window.document).ready(function() { url: "${pageContext.request.contextPath}/fileupload/uploadFilesAjax.do?subPathKey=fileupload.bbs.qna.subpath&attachFileId=${searchArticle.bdAttachFileId}" }); - // 기존 첨부파일 출력 + var re = /(?:\.([^.]+))?$/; myDropzone.addFile({ @@ -146,7 +146,7 @@ $(window.document).ready(function() { var targetCnt = this.getAcceptedFiles().length; var uploadCnt = fileList.length; var queuedCnt = this.getQueuedFiles(); - + if(uploadCnt > 0) { $("#fileList").val(JSON.stringify(JSON.stringify(fileList))); } @@ -253,6 +253,25 @@ function fn_saveSubmit() { $("#articleForm").submit(); } + +//파일 다운로드 +function fn_downloadFile(attachFileId, fileSn) { + + if(attachFileId == null || attachFileId.trim().length < 1) { + alert("파일정보를 확인해 주시기 바랍니다.[1]"); + return; + } + + if(fileSn < 1) { + alert("파일정보를 확인해 주시기 바랍니다.[3]"); + return; + } + $("#attachFileId").val(attachFileId); + $("#fileSn").val(fileSn); + + $("#downloadFileForm").submit(); + +} @@ -288,17 +307,14 @@ function fn_saveSubmit() { - - - - + + + +
  • 제목
    - delFileList : - bdAttachFileId : -
  • @@ -354,4 +370,14 @@ function fn_saveSubmit() { - + + +
    + + + + + +
    diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listQnas.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listQnas.jsp index 4325d5c9..e9c2cc13 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listQnas.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listQnas.jsp @@ -37,11 +37,6 @@ - - - - - - -
    - -

    ${pageTitle }

    - - -
    -
    - -
    - -정상적으로 휴면 해제되었습니다.
    -
    -- 이름 : ${oauthUser.nlibVO.name}
    -- 로그인ID : ${oauthUser.nlibVO.loginUserId}
    -- 이메일 : ${oauthUser.nlibVO.email}
    -
    - -
    - - - \ No newline at end of file + +
    +

    휴면계정 섹션영역

    +
    +
    +
    자물쇠 아이콘
    +

    ${pageTitle }

    +
    +
    +
    + +
    + +
    +
    +

    ${oauthUser.nlibVO.name} 회원님의 계정이 정상적으로 휴면 해제되었습니다.

    +
    +
    + +

    [로그인]을 클릭하여 로그인을 계속 진행해 주시기 바랍니다.

    +
    + +

    ${message }

    +
    +
    +
    + 로그인 +
    +
    +
    +
    +
    +
    +
    + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAccForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAccForm.jsp index 2dc92971..91d7e3d9 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAccForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAccForm.jsp @@ -29,55 +29,41 @@ <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%> -휴면계좌안내 +휴면계정 안내 - - - -LoginTest - - - - - - - -
    - -

    휴면계좌안내

    - - -
    -
    - -
    - -사용자 계정이 아래와 같이 휴면된 상태입니다.
    -
    -- 이름 : ${oauthUser.nlibVO.name}
    -- 로그인ID : ${oauthUser.nlibVO.loginUserId}
    -- 이메일 : ${oauthUser.nlibVO.email}
    -- 휴면전환일자 : - -
    - - -
    - 정상적인 서비스를 이용하시려면 휴면상태를 해제하여야 합니다.
    - 휴면상태를 해제하시겠습니까? -
    - - - - - - \ No newline at end of file + +
    +

    휴면계정 섹션영역

    +
    +
    +
    자물쇠 아이콘
    +

    ${pageTitle }

    +
    +
    +
    +
    + +
    +
    +

    ${oauthUser.nlibVO.name} 회원님의 계정은 현재 휴면 상태입니다.
    서비스 이용을 원하신다면 지금 바로 휴면을 해제하세요!

    +

    회원님의 정보를 안전하게 보호하기 위하여 일정 기간동안 이용내역이 없는 경우
    휴면 상태로 계정을 전환하여 보관하는 정책을 실시하고 있습니다.

    +
    +
    + +

    휴면 상태의 회원의 경우 서비스 이용이 제한되며,
    [휴면해제] 버튼을 통해 휴면해제 가능합니다.

    +
    + +

    ${message }

    +
    +
    + +
    +
    +
    +
    +
    +
    + From 96ca01d7979bcc21954ecee612fd37aed9591b33 Mon Sep 17 00:00:00 2001 From: KNKIM Date: Mon, 8 Nov 2021 10:47:21 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=EC=95=8C=EB=A6=BC=20:=20=ED=8D=BC=EB=B8=94?= =?UTF-8?q?=20=ED=85=9C=ED=94=8C=EB=A6=BF=20=EC=A0=81=EC=9A=A9=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nlib/cmm/service/NotificationVO.java | 15 + .../nlib/cmm/web/NotificationController.java | 11 +- .../mapper/nlib/cmm/NotificationDAO_SQL.xml | 34 +- src/main/webapp/Notifications.html | 2 +- .../WEB-INF/jsp/nlib/cmm/headerSubPart.jsp | 3 - src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp | 9 +- .../jsp/nlib/cmm/listNotifications.jsp | 324 ++++++++++-------- src/main/webapp/js/nlib.js | 29 +- 8 files changed, 244 insertions(+), 183 deletions(-) diff --git a/src/main/java/nlib/cmm/service/NotificationVO.java b/src/main/java/nlib/cmm/service/NotificationVO.java index 57dd86b4..3c14d835 100644 --- a/src/main/java/nlib/cmm/service/NotificationVO.java +++ b/src/main/java/nlib/cmm/service/NotificationVO.java @@ -17,6 +17,9 @@ public class NotificationVO extends PagingVO { private int totCnt = 0; /* 알림건수(최근1개월) */ private int rno = 0; /* 행번호 */ + private String mngOrgCd; /* 관리문화원코드 */ + private String mngOrgNm; /* 관리문화원명 */ + public String getNotiId() { return notiId; } @@ -95,5 +98,17 @@ public class NotificationVO extends PagingVO { public void setRno(int rno) { this.rno = rno; } + public String getMngOrgCd() { + return mngOrgCd; + } + public void setMngOrgCd(String mngOrgCd) { + this.mngOrgCd = mngOrgCd; + } + public String getMngOrgNm() { + return mngOrgNm; + } + public void setMngOrgNm(String mngOrgNm) { + this.mngOrgNm = mngOrgNm; + } } diff --git a/src/main/java/nlib/cmm/web/NotificationController.java b/src/main/java/nlib/cmm/web/NotificationController.java index b37fc717..6b638b74 100644 --- a/src/main/java/nlib/cmm/web/NotificationController.java +++ b/src/main/java/nlib/cmm/web/NotificationController.java @@ -23,6 +23,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; import nlib.cmm.NlibCommonController; import nlib.cmm.service.NotificationService; import nlib.cmm.service.NotificationVO; +import nlib.cmm.service.PagingVO; import nlib.cmm.service.NlibProperty; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @@ -110,7 +111,7 @@ public class NotificationController extends NlibCommonController { Authentication authentication, @RequestBody Map paramMap) throws Exception { String mbInfoId = getMbInfoId(req); - String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + int pageIndex = StringUtil.toNumber(paramMap.get("pageIndex"), 1); int pageSize = StringUtil.toNumber(paramMap.get("pageSize"), DEFUALT_PAGE_SIZE); log.debug("listNotificationsAjax > pageIndex = " + pageIndex); @@ -136,6 +137,14 @@ public class NotificationController extends NlibCommonController { retMap.put("data", list); retMap.put("itemsCount", totRecordCount); + PagingVO pageVO = new PagingVO(); + pageVO.setPagingVO(totRecordCount, pageIndex, pageSize); + retMap.put("pagingPageIndex" , pageVO.getPageIndex()); + retMap.put("pagingTotRecordCount", pageVO.getTotRecordCount()); + retMap.put("pagingStartPage" , pageVO.getStartPage()); + retMap.put("pagingEndPage" , pageVO.getEndPage()); + retMap.put("pagingLastPage" , pageVO.getLastPage()); + return makeResponseEntityJson(retMap); } diff --git a/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml index 830b377f..524c5c92 100644 --- a/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/cmm/NotificationDAO_SQL.xml @@ -3,30 +3,6 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - -
    - -
    - - - - - - - - + +
    +

    알림 섹션영역

    +
    +
    +
    +
      +
    • HOME
    • +
    • ${pageTitle}
    • +
    +
      +
    • ${pageTitle}
    • +
    +
    +
    화살표 아이콘
    +
    +
    +
    +
    + 0 +
    +

    - 최근 한달동안 발송된 알림 내역만 보관됩니다.

    +
    +
    + +
    +
    +
      + +
    +
    +
      +
      + +
      +
      +
      +
      + +
      + + + +
      diff --git a/src/main/webapp/js/nlib.js b/src/main/webapp/js/nlib.js index ffb368a3..b1be0bae 100644 --- a/src/main/webapp/js/nlib.js +++ b/src/main/webapp/js/nlib.js @@ -94,13 +94,40 @@ function fn_closeLayerPopup() { } function fn_myAlert(newAlertNum) { + if(newAlertNum == "undefined" || newAlertNum == null || newAlertNum < 1) { return; } - fn_openLayerPopup("알림", "아직 확인하지 않은 새로운 알림이 " + newAlertNum + "건 있습니다", "알림 목록으로", CONTEXT_PATH + "/cmm/listNotifications.do"); + var notiHtml = + '
      ' + + '

      지방문화원 소장자료

      ' + + '

      알림

      ' + + '
      ' + + '
      ' + + '
      ' + + '

      아직 확인하지 않은
      새로운 알림이 ' + newAlertNum + '건 있습니다.

      ' + + '
      ' + + '
      ' + + ' ' + + ' ' + + '
      ' + + ' ' + + '
      ' + + '
      '; + fn_layerPopWithHtml(notiHtml, "pop-notice"); } +function fn_layerPopWithHtml(cHtml, addClasses) { + $("#NLIB_LAYER_POPUP").removeClass(); + $("#NLIB_LAYER_POPUP").addClass(addClasses); + $("#NLIB_LAYER_POPUP").html(cHtml); + $("#NLIB_LAYER_POPUP").show(); + + var classes = addClasses.split(" "); + + $("." + classes[0]).fadeIn(); +} function fn_layerPopWithClass(url, addClasses) { // 클릭 시, 로딩되도록 처리 (2021.10.20) From f499080c067b123fc6987739c005f3fe6d37b9fb Mon Sep 17 00:00:00 2001 From: KNKIM Date: Mon, 8 Nov 2021 18:00:30 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EB=8C=80=EC=B6=9C=EC=8B=A0=EC=B2=AD=20?= =?UTF-8?q?=EC=B7=A8=EC=86=8C=20=EA=B8=B0=EB=8A=A5=20=EA=B0=9C=EB=B0=9C,?= =?UTF-8?q?=20=EB=8C=80=EC=B6=9C=EA=B4=80=EB=A6=AC=20=ED=8D=BC=EB=B8=94=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=20=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nlib/col/service/CollectionVO.java | 18 + .../java/nlib/col/service/RentService.java | 11 +- .../java/nlib/col/service/impl/CartDAO.java | 2 + .../col/service/impl/RentServiceImpl.java | 67 ++- .../java/nlib/col/web/RentController.java | 80 +++- .../mapper/nlib/col/CartDAO_SQL.xml | 11 +- .../WEB-INF/jsp/nlib/bbs/listAncmnts.jsp | 2 +- .../webapp/WEB-INF/jsp/nlib/bbs/listFaqs.jsp | 2 +- .../webapp/WEB-INF/jsp/nlib/bbs/listQnas.jsp | 4 +- .../WEB-INF/jsp/nlib/rent/listRentItems.jsp | 393 +++++++++++------- src/main/webapp/js/nlib.js | 13 +- 11 files changed, 418 insertions(+), 185 deletions(-) diff --git a/src/main/java/nlib/col/service/CollectionVO.java b/src/main/java/nlib/col/service/CollectionVO.java index ce4a95da..c159a9bf 100644 --- a/src/main/java/nlib/col/service/CollectionVO.java +++ b/src/main/java/nlib/col/service/CollectionVO.java @@ -123,6 +123,8 @@ public class CollectionVO extends PagingVO { protected String bookLtRvStatusNm; /* 대출상태구분코드명 */ protected String rsrvExpctDd; /* 대출예약만료일자 */ protected String rtnDd; /* 반납일자 */ + protected String rsrvDivCd; /* 대출/예약 신청구분코드 */ + protected String rsrvDivNm; /* 대출/예약 신청구분코드명 */ //-------------------------------------------- // 열람관련 @@ -739,5 +741,21 @@ public class CollectionVO extends PagingVO { public void setSubjectCode(String subjectCode) { this.subjectCode = subjectCode; } + + public String getRsrvDivCd() { + return rsrvDivCd; + } + + public void setRsrvDivCd(String rsrvDivCd) { + this.rsrvDivCd = rsrvDivCd; + } + + public String getRsrvDivNm() { + return rsrvDivNm; + } + + public void setRsrvDivNm(String rsrvDivNm) { + this.rsrvDivNm = rsrvDivNm; + } } diff --git a/src/main/java/nlib/col/service/RentService.java b/src/main/java/nlib/col/service/RentService.java index b4af63cc..8f6f82ea 100644 --- a/src/main/java/nlib/col/service/RentService.java +++ b/src/main/java/nlib/col/service/RentService.java @@ -26,6 +26,15 @@ public interface RentService */ public DataApiResVO listRentItems(CollectionVO searchVO); + + /** + * 대출(예약)신청을 취소한다. + * + * @param searchVO + * @return + */ + public DataApiResVO cancelRentItem(CollectionVO searchVO); + /** * 대출을 신청한다. * @@ -34,7 +43,7 @@ public interface RentService * @param mngOrgCd * @return */ - public List insertRentItems(List list, String mbInfoId, String mngOrgCd); + public List insertRentItems(List list, String mbInfoId, String mngOrgCd, boolean fromCart) throws Exception; // // /** diff --git a/src/main/java/nlib/col/service/impl/CartDAO.java b/src/main/java/nlib/col/service/impl/CartDAO.java index 60c4e430..63efd98d 100644 --- a/src/main/java/nlib/col/service/impl/CartDAO.java +++ b/src/main/java/nlib/col/service/impl/CartDAO.java @@ -24,4 +24,6 @@ public interface CartDAO { public int countCartItems(@Param("mbInfoId") String mbInfoId, @Param("cartTypeCd") String cartTypeCd) throws Exception; + public int changeCartProcDivCd(CollectionVO cartVO) throws Exception; + } \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/RentServiceImpl.java b/src/main/java/nlib/col/service/impl/RentServiceImpl.java index 4c7cb8de..ae82e268 100644 --- a/src/main/java/nlib/col/service/impl/RentServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/RentServiceImpl.java @@ -10,6 +10,9 @@ import org.slf4j.LoggerFactory; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Service; +import com.fasterxml.jackson.databind.deser.std.ReferenceTypeDeserializer; + +import nlib.col.service.CartService; import nlib.col.service.CollectionVO; import nlib.col.service.RentService; import nlib.restful.DataApi; @@ -26,6 +29,10 @@ public class RentServiceImpl implements RentService @Resource(name="rentDAO") private RentDAO rentDAO; + @Resource(name="cartDAO") + private CartDAO cartDAO; + + /** RESTFul API 송수신 모듈 */ @Resource(name = "dataApi") private DataApi dataApi; @@ -70,6 +77,48 @@ public class RentServiceImpl implements RentService reqVO.putInfoItem("bookLtRvStatusCd", searchVO.getBookLtRvStatusCd()); return dataApi.request(reqVO); } + + + /** + * 대출(예약)신청을 취소한다. + * + * @param searchVO + * @return + */ + public DataApiResVO cancelRentItem(CollectionVO searchVO) { + + String message = null; + + if(searchVO == null || StringUtil.isEmpty(searchVO.getMbInfoId())) { + message = "대출(예약)신청 취소 요청 정보가 부적합합니다 (MbInfoId)"; + log.error("cancelRentItem > " + message); + return new DataApiResVO("E", message); + } + + if(StringUtil.isEmpty(searchVO.getMngOrgCd())) { + message = "문화원정보가 부적합합니다. 다시 요청하여 주시기 바랍니다."; + log.error("cancelRentItem > " + message); + return new DataApiResVO("E", message); + } + + if(StringUtil.isEmpty(searchVO.getRsrvId())) { + message = "취소할 대출(예약)선청번호 정보가 부적합합니다. 다시 요청하여 주시기 바랍니다."; + log.error("cancelRentItem > " + message); + return new DataApiResVO("E", message); + } + + // API 호출 + /* + mngOrgCd 문화원코드 + mbInfoId 사용자아이디 + rsrvId 대출신청예약번호 + */ + DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/rent/deleteRentItem", HttpMethod.POST); + reqVO.setMbInfoId(searchVO.getMbInfoId()); // 통신 시, 암호화되어 송수신됨 + reqVO.putInfoItem("mngOrgCd", searchVO.getMngOrgCd()); + reqVO.putInfoItem("rsrvId", searchVO.getRsrvId()); + return dataApi.request(reqVO); + } /** @@ -80,7 +129,7 @@ public class RentServiceImpl implements RentService * @param mngOrgCd * @return */ - public List insertRentItems(List list, String mbInfoId, String mngOrgCd) { + public List insertRentItems(List list, String mbInfoId, String mngOrgCd, boolean fromCart) throws Exception { if(list == null || list.size() < 1) return null; @@ -122,12 +171,18 @@ public class RentServiceImpl implements RentService if(StringUtil.startsWithIgnoreCase(resVO.getResultCode(), "S")) { cVO.setRsrvId(resVO.getInfoItem("rsrvId", "")); cVO.setRsrvDd(StringUtil.formatDateStr(resVO.getInfoItem("rsrvDd", ""), "")); + cVO.setRsrvDivCd(resVO.getInfoItem("rsrvDivCd")); // 대출상태구분코드 + if("1".equals(cVO.getRsrvDivCd())) cVO.setRsrvDivNm("대출신청"); + else if("2".equals(cVO.getRsrvDivCd())) cVO.setRsrvDivNm("대출예약"); - // 대출신청, 대출예약 구분 : API 팀에서 처리완료시까지 임시 데이터 설정 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDd - cVO.setBookLtRvStatusCd("1"); // 대출상태구분코드 - cVO.setBookLtRvStatusNm("대출신청"); // 대출상태구분코드명 - //cVO.setBookLtRvStatusCd("2"); // 대출상태구분코드 - //cVO.setBookLtRvStatusNm("대출예약"); // 대출상태구분코드명 + // 카트에서의 처리 여부 업데이트 + if(fromCart) { + cVO.setMbInfoId(mbInfoId); + cVO.setCartProcDivCd("R"); // 대출신청완료 + cVO.setModId(mbInfoId); + int retUpdateProc = cartDAO.changeCartProcDivCd(cVO); + log.debug("insertRentItems > retUpdateProc=" + retUpdateProc); + } } else { cVO.setRsrvId(null); diff --git a/src/main/java/nlib/col/web/RentController.java b/src/main/java/nlib/col/web/RentController.java index 12f671da..a48d18b8 100644 --- a/src/main/java/nlib/col/web/RentController.java +++ b/src/main/java/nlib/col/web/RentController.java @@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam; import nlib.cmm.NlibCommonController; import nlib.cmm.service.CodeService; import nlib.cmm.service.NlibProperty; +import nlib.cmm.service.PagingVO; import nlib.col.service.CollectionService; import nlib.col.service.CollectionVO; import nlib.col.service.RentService; @@ -95,12 +96,11 @@ public class RentController extends NlibCommonController List> rentMngOrgList = rentService.listRentMngOrg(mbInfoId); model.addAttribute("rentMngOrgList" , rentMngOrgList); - model.addAttribute("bookLtRvStatusCd", searchVO.getBookLtRvStatusCd()); - model.addAttribute("pageSize" , searchVO.getPageSize()); + model.addAttribute("bookLtRvStatusCd", StringUtil.getString(searchVO.getBookLtRvStatusCd(), "A")); model.addAttribute("pageSize" , searchVO.getPageSize()); model.addAttribute("pageIndex" , searchVO.getPageIndex()); model.addAttribute("message" , message); - + return "nlib/rent/listRentItems"; } @@ -117,11 +117,16 @@ public class RentController extends NlibCommonController String message = null; String mbInfoId = getMbInfoId(request); + int totCount = 0; if(StringUtil.isEmpty(mbInfoId)) { message = "로그인하신 후, 이용바랍니다."; } + if(StringUtil.isEmpty(searchVO.getBookLtRvStatusCd())) { + searchVO.setBookLtRvStatusCd("A"); // 신청/예약 기본 설정 + } + //------------------------------- // JSON변환 응답 처리 //------------------------------- @@ -135,22 +140,76 @@ public class RentController extends NlibCommonController // 로그인 사용자 정보 설정 searchVO.setMbInfoId(mbInfoId); - // TO-DO : DDDDDDDDDDDDDDDDDDDddd - // 기본값은 전체이나, API 반영전까지 문화원 코드 전송 - // if(StringUtil.isEmpty(searchVO.getMngOrgCd())) searchVO.setMngOrgCd(getCurCouncilCd(request)); - searchVO.setMngOrgCd("KCCF"); // 조회 // 대출상태구분코드("": 전체, A:신청, B:대출준비완료, C:취소, W:대출중, R0:정상반납, R1:연체반납, P:연체) - // TO-DO : api 코드 변경 요청. 변경 처리된 것 확인할 것 DataApiResVO resVO = rentService.listRentItems(searchVO); + totCount = resVO.getRecordTotCount(); retMap.put("data" , resVO.getRecordList()); - retMap.put("itemsCount", resVO.getRecordTotCount()); retMap.put("pageIndex" , resVO.getPageIndex()); } else { + retMap.put("pageIndex" , searchVO.getPageIndex()); retMap.put("message" , "로그인하신 후, 이용바랍니다."); } + retMap.put("itemsCount", totCount); + + PagingVO pageVO = new PagingVO(); + pageVO.setPagingVO(totCount, searchVO.getPageIndex(), searchVO.getPageSize()); + retMap.put("pagingPageIndex" , pageVO.getPageIndex()); + retMap.put("pagingTotRecordCount", pageVO.getTotRecordCount()); + retMap.put("pagingStartPage" , pageVO.getStartPage()); + retMap.put("pagingEndPage" , pageVO.getEndPage()); + retMap.put("pagingLastPage" , pageVO.getLastPage()); + + return makeResponseEntityJson(retMap); + } + + + @RequestMapping(value="/rent/cancelRentItemAjax.do") + public ResponseEntity cancelRentItemAjax( + HttpServletRequest request, + @RequestBody CollectionVO searchVO) { + + String resultMessage = null; + String resultCode = "F"; + String mbInfoId = getMbInfoId(request); + int totCount = 0; + + if(StringUtil.isEmpty(mbInfoId)) { + resultMessage = "로그인하신 후, 이용바랍니다."; + } + + if(StringUtil.isEmpty(searchVO.getMngOrgCd())) { + resultMessage = "문화원정보가 부적합합니다. 다시 요청하여 주시기 바랍니다."; + } + + if(StringUtil.isEmpty(searchVO.getRsrvId())) { + resultMessage = "취소할 대출(예약)선청번호 정보가 부적합합니다. 다시 요청하여 주시기 바랍니다."; + } + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + if(resultMessage == null) { + + // 로그인 사용자 정보 설정 + searchVO.setMbInfoId(mbInfoId); + + // 대출취소신청 + DataApiResVO resVO = rentService.cancelRentItem(searchVO); + resultCode = resVO.getResultCode(); + resultMessage = resVO.getResultMessage(); + } + + retMap.put("resultCode" , resultCode); + retMap.put("resultMessage" , resultMessage); + return makeResponseEntityJson(retMap); } @@ -208,8 +267,7 @@ public class RentController extends NlibCommonController List list = collectionService.makeListOfCollectionVO(selItems); - // 임시 막음 DDDDDDDDDDDDDDDDDDDDDDDdd - //list = rentService.insertRentItems(list, mbInfoId, rentVO.getMngOrgCd()); + list = rentService.insertRentItems(list, mbInfoId, rentVO.getMngOrgCd(), fromCart); list = collectionService.setDetailInfoForList(list, mbInfoId, NlibProperty.getString("thumbnail.image.url.small")); model.addAttribute("rentVO", rentVO); diff --git a/src/main/resources/egovframework/mapper/nlib/col/CartDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/CartDAO_SQL.xml index 8635a4fd..d906b72e 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/CartDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/CartDAO_SQL.xml @@ -29,7 +29,16 @@ AND IFNULL(A.CART_PROC_DIV_CD, 'N') = 'N' ORDER BY B.MNG_ORG_CD - + + + + + + + + + +
      + + +
      + 0 +
      +
      + +
      +
      +
      -

      ${pageTitle }

      +
      +
      +
      -
      메시지 : - ${message } -
      -
      +
      +
      +
      +
      문화원
      +
      자료정보
      +
      신청/예약일
      +
      신청/예약 만료일
      +
      반납예정일
      +
      이용
      +
      + + +
      +
      +
        +
        +
        +
        +
        + + + + + + -
        - 총 0 건 - -               - bookLtRvStatusCd -
        전체 | 신청/예약 | 취소 | 대출중 | 반납 | 연체     pageIndex - -
        - - - -
        - - - \ No newline at end of file diff --git a/src/main/webapp/js/nlib.js b/src/main/webapp/js/nlib.js index b1be0bae..341bc6e6 100644 --- a/src/main/webapp/js/nlib.js +++ b/src/main/webapp/js/nlib.js @@ -320,4 +320,15 @@ function fn_viewItemDetailInfo(masterId){ $("#FRM_ITEM_DETAIL").submit(); } - +function fn_formatDateStr(yyyymmdd, defVal) { + if(fn_isEmpty(yyyymmdd)) return defVal; + if(yyyymmdd.length == 8) { + return yyyymmdd.substr(0, 4) + "-" + yyyymmdd.substr(4,2) + "-" + yyyymmdd.substr(6); + } else if(yyyymmdd.length == 6) { + return yyyymmdd.substr(0, 4) + "-" + yyyymmdd.substr(4,2); + } else if(yyyymmdd.length == 4) { + return yyyymmdd; + } + + return defVal; +}