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 list = notificationService.listNotifications(searchNotificationVO); - int totRecordCount = (list == null || list.get(0) == null) ? 0 : list.get(0).getTotCnt(); + int totRecordCount = (list == null) ? 0 : list.size(); searchNotificationVO.setTotRecordCount(totRecordCount); model.addAttribute("notificationList", list); @@ -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/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/bbs/AncmntDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml index 752a1f1d..c360e53c 100644 --- a/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/bbs/AncmntDAO_SQL.xml @@ -35,7 +35,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 , 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/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"> - - - + + + + + - - - - + + + +
  • 제목
    - delFileList : - bdAttachFileId : -
  • @@ -354,4 +370,14 @@ function fn_saveSubmit() { - + + +
    + + + + + +
    diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp index 56fea3e8..6e09be6b 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listAncmnts.jsp @@ -104,7 +104,7 @@ console.log(jsonObj.itemsCount); // 건수 - if(jsonObj.itemsCount == undefined) { + if(typeof jsonObj.itemsCount == 'undefined') { $("#itemsCount").text("0"); $("#searchItemsCount").text("0"); } diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listFaqs.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listFaqs.jsp index 773c0b5a..6482c7de 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/bbs/listFaqs.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/listFaqs.jsp @@ -133,7 +133,7 @@ $( document ).ready(function() { console.log(jsonObj.itemsCount); // 건수 - if(jsonObj.itemsCount == undefined) { + if(typeof jsonObj.itemsCount == 'undefined') { $("#itemsCount").text("0"); $("#searchItemsCount").text("0"); } 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..166a8679 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 @@ diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cmm/listNotifications.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cmm/listNotifications.jsp index 1c228377..10ac4d3d 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/cmm/listNotifications.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/cmm/listNotifications.jsp @@ -22,6 +22,30 @@ * */ %> +<% +/** + *
    + * @Class Name : listFaqs.jsp
    + * 
    + * @Description : 자주하는질문 목록 화면을 표출한다.
    + * 
    + * 
    + * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
    + *
    + * 
    + * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 15. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 9. 15. + * @version 1.0 + * + */ + %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> @@ -33,102 +57,23 @@ 알림 - - - - ${pageTitle} - - - - - - - - - + -

    ${pageTitle }

    - - 메시지 : ${message} - - -  
    -
    - - - - - - - - -
    - -
    - - - - -
    - - - + +
    +

    알림 섹션영역

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

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

    +
    +
    + +
    +
    +
      + +
    +
    +
      +
      + +
      +
      +
      +
      + +
      + + + +
      diff --git a/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAcc.jsp b/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAcc.jsp index 977d6e5b..5daaafcc 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAcc.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/login/activateDormantAcc.jsp @@ -29,46 +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 - - - - - - - -
      - -

      ${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 }

      +
      +
      + +
      +
      +
      +
      +
      +
      + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/listRentItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/listRentItems.jsp index 0f14dfe6..9f857576 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/rent/listRentItems.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/listRentItems.jsp @@ -16,7 +16,7 @@ * @ ------------ -------- --------------------------- * @ 2021. 7. 21. JSYOO 최초 생성 * @ 2021.10. 14. KNKIM 변경API 및 화면설계서 반영 - * + * @ 2021.11. 08. KNKIM 퍼블 템플릿 적용 작업 * * @author 이씨플라자 * DIGITALSHIP JSYOO * @since 2021. 7. 21. @@ -31,180 +31,251 @@ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@ taglib prefix="validator" - uri="http://www.springmodules.org/tags/commons-validator"%> -<%@ taglib prefix="sec" - uri="http://www.springframework.org/security/tags"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%> 대출관리 - - - -${pageTitle} - - - - - + }).fail(function (jqXHR, textStatus, errorThrown) { + alert("조회에 실패하였습니다. 관리자에게 문의 바랍니다."); + }); + } + + function fn_cancel(title, bookLtRvStatusNm, mngOrgCd, rsrvId) { + + if(!confirm(title + " " + bookLtRvStatusNm + "을 취소하시겠습니까?")) return; + + var reqUrl = "${pageContext.request.contextPath}/rent/cancelRentItemAjax.do"; + + var inputData = { + "mngOrgCd" : mngOrgCd + , "rsrvId" : rsrvId + , "bookLtRvStatusNm" : bookLtRvStatusNm + }; + + //-------------------------------------- + // 요청 처리 + //-------------------------------------- + $.ajax({ + type: "post", + contentType: "application/json; charset=utf-8", + url: reqUrl, + dataType: "json", + data: JSON.stringify(inputData), + }).done(function(data){ + <% + // 그리드 데이터 예시 : + // (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }] + // (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255} + %> + var jsonObj = JSON.parse(data); + // 자료 신청(or 예약)이 취소되었습니다. + if(jsonObj.resultCode == "S") { + fn_searchArticle(1); + alert(jsonObj.resultMessage); + } else { + alert(jsonObj.resultMessage); + } + + }).fail(function (jqXHR, textStatus, errorThrown) { + alert("처리에 실패하였습니다. 관리자에게 문의 바랍니다."); + }); + + } + - + +
      +

      대출관리 섹션영역

      +
      +
      +
      +
        +
      • HOME
      • +
      • 마이페이지
      • +
      • ${pageTitle }
      • +
      +
        +
      • 대출관리
      • +
      +
      +
      화살표 아이콘
      +
      +
      +
      +
      + + + + + +
      + + +
      + 0 +
      +
      + +
      +
      +
      -

      ${pageTitle }

      +
      +
      +
      -
      메시지 : - ${message } -
      -
      +
      +
      +
      +
      문화원
      +
      자료정보
      +
      신청/예약일
      +
      신청/예약 만료일
      +
      반납예정일
      +
      이용
      +
      + + +
      +
      +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        + -
        - 총 0 건 - -               - bookLtRvStatusCd -
        전체 | 신청/예약 | 취소 | 대출중 | 반납 | 연체     pageIndex - -
        - - - -
        - - - \ No newline at end of file diff --git a/src/main/webapp/js/fileupload/dropzone.js b/src/main/webapp/js/fileupload/dropzone.js index 946119a5..1654a4b2 100644 --- a/src/main/webapp/js/fileupload/dropzone.js +++ b/src/main/webapp/js/fileupload/dropzone.js @@ -269,16 +269,30 @@ _ref = file.previewElement.querySelectorAll("[data-dz-name]"); for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; - node.textContent = (file.name + "_" + file.accepted + "_" + file.type); // DDDDDDDDDDDDDDDDDDDDddddd + node.textContent = file.name; } _ref1 = file.previewElement.querySelectorAll("[data-dz-size]"); for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { node = _ref1[_j]; node.innerHTML = this.filesize(file.size); } + + // 이미 등록된 파일인 경우, 다운로드 가능토록 처리 + if(file.fileUploadType && file.fileUploadType == "uploaded") { + _ref1 = file.previewElement.querySelectorAll("[data-dz-file-icon]"); + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + node = _ref1[_j]; + node.title = '이미 등록된 파일입니다. 클릭하여 다운로드할 수 있습니다.'; + $(node).css("cursor", "pointer"); + $(node).on("click", function() { + fn_downloadFile(file.attachFileId, file.fileSn); + }); + } + } + if (this.options.addRemoveLinks) { //file._removeLink = Dropzone.createElement("" + this.options.dictRemoveFile + ""); - // NLIB DDDDDDDDDDDDDDDDDDDDDDDDDDDD + // 첨부파일 삭제버트 변경 (NLIB) file._removeLink = Dropzone.createElement(''); file.previewElement.appendChild(file._removeLink); } @@ -412,7 +426,15 @@ queuecomplete: noop, addedfiles: noop, //previewTemplate: "
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n Check\n \n \n \n \n \n
        \n
        \n \n Error\n \n \n \n \n \n \n \n
        \n
        " - previewTemplate: '
        파일 아이콘()
        &nsp;' + previewTemplate: + '
        ' + + '파일 아이콘' + + '' + + '()' + + '
        ' + // data-dz-file-icon span data-dz-name + // /images/icon/icon-file-down.png + // /images/icon/icon-file.png }; extend = function() { @@ -987,7 +1009,12 @@ bytesSent: 0 }; this.files.push(file); - file.status = Dropzone.ADDED; + + if(file.fileUploadType && file.fileUploadType == 'uploaded') { // NLIB + file.status = Dropzone.SUCCESS + } else { + file.status = Dropzone.ADDED; + } this.emit("addedfile", file); this._enqueueThumbnail(file); return this.accept(file, (function(_this) { @@ -1146,7 +1173,7 @@ } queuedFiles = this.getQueuedFiles(); if (!(queuedFiles.length > 0)) { - this.emit("queuecomplete"); // NLIB 추가 + this.emit("queuecomplete"); // NLIB 추가 return; } if (this.options.uploadMultiple) { @@ -1604,6 +1631,12 @@ Dropzone.isValidFile = function(file, acceptedFiles) { var baseMimeType, mimeType, validType, _i, _len; + + if(file.fileUploadType == 'uploaded') { + // 이미 등록된 파일로써 true 처리 (NLIB) + return true; + } + if (!acceptedFiles) { return true; }