diff --git a/.classpath b/.classpath index ff682ca1..039b7c80 100644 --- a/.classpath +++ b/.classpath @@ -33,5 +33,7 @@ + + diff --git a/data/dataxml/uac.service.col.interests.list_GET.xml b/data/dataxml/uac.service.col.interests.list_GET.xml new file mode 100644 index 00000000..a6203561 --- /dev/null +++ b/data/dataxml/uac.service.col.interests.list_GET.xml @@ -0,0 +1,98 @@ + + + + 1 + 15 + 125 + + 1 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 2 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 3 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 4 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 5 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 6 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 7 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 8 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 9 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 10 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + diff --git a/data/dataxml/uac.service.col.listItems.list_GET.xml b/data/dataxml/uac.service.col.listItems.list_GET.xml new file mode 100644 index 00000000..c6eb5ff4 --- /dev/null +++ b/data/dataxml/uac.service.col.listItems.list_GET.xml @@ -0,0 +1,97 @@ + + + + 1 + 15 + 125 + + 1 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 2 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 3 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 4 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 5 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 6 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 7 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 8 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 9 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 10 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + \ No newline at end of file diff --git a/data/dataxml/uac.service.col.listItems_GET.xml b/data/dataxml/uac.service.col.listItems_GET.xml new file mode 100644 index 00000000..ce212483 --- /dev/null +++ b/data/dataxml/uac.service.col.listItems_GET.xml @@ -0,0 +1,45 @@ + + + + + 5 + 101 + Q&A + 공지사항 테스트 + 9uCh4qxBlFqap/+KiqoM68EqO8yYGpKa1c+BCgkOEa4= + + 15 + 2021-07-19 + 김아무 + 답변완료 + myid@digitalship.co.kr + 질문이 있습니다. + 111111=화면캡쳐.jpg;222222=화면캡쳐2.jpg; + 이렇게 답변 드립니다. + 333333=결과확인.jpg; + + + 1 + 1 + 2 + + 4 + 101 + Q&A + 이전의 글제목입니다. + 2021-07-19 + 김아무 + 답변완료 + + + 6 + 102 + Q&A + 다음의 글제목입니다. + 2021-07-20 + 홍아무 + 답변완료 + + + + diff --git a/data/dataxml/uac.service.col.rent.list_GET.xml b/data/dataxml/uac.service.col.rent.list_GET.xml new file mode 100644 index 00000000..39ccddc6 --- /dev/null +++ b/data/dataxml/uac.service.col.rent.list_GET.xml @@ -0,0 +1,98 @@ + + + + 1 + 15 + 125 + + 1 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 2 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 3 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 4 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 5 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 6 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 7 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 8 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 9 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 10 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + diff --git a/data/dataxml/uac.service.col.rent.postpone.list_GET.xml b/data/dataxml/uac.service.col.rent.postpone.list_GET.xml new file mode 100644 index 00000000..39ccddc6 --- /dev/null +++ b/data/dataxml/uac.service.col.rent.postpone.list_GET.xml @@ -0,0 +1,98 @@ + + + + 1 + 15 + 125 + + 1 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 2 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 3 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 4 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 5 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 6 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 7 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 8 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 9 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + 10 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 2021-08-31 + + + diff --git a/data/dataxml/uac.service.col.rent.read.list_GET.xml b/data/dataxml/uac.service.col.rent.read.list_GET.xml new file mode 100644 index 00000000..4444a5e6 --- /dev/null +++ b/data/dataxml/uac.service.col.rent.read.list_GET.xml @@ -0,0 +1,108 @@ + + + + 1 + 15 + 125 + + 1 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 2 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 열람허용 + 2021-08-31~2021-09-31 + + + 3 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 열람중 + 2021-08-31~2021-09-31 + + + 4 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 5 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 6 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 7 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 8 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 9 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + 10 + 경성기담 + 2021-000084 + 홍길동 + 살림 + 2021-07-27 + 요청중 + 2021-08-31~2021-09-31 + + + diff --git a/data/dataxml/uac.service.col.rent.read_GET.xml b/data/dataxml/uac.service.col.rent.read_GET.xml new file mode 100644 index 00000000..ce212483 --- /dev/null +++ b/data/dataxml/uac.service.col.rent.read_GET.xml @@ -0,0 +1,45 @@ + + + + + 5 + 101 + Q&A + 공지사항 테스트 + 9uCh4qxBlFqap/+KiqoM68EqO8yYGpKa1c+BCgkOEa4= + + 15 + 2021-07-19 + 김아무 + 답변완료 + myid@digitalship.co.kr + 질문이 있습니다. + 111111=화면캡쳐.jpg;222222=화면캡쳐2.jpg; + 이렇게 답변 드립니다. + 333333=결과확인.jpg; + + + 1 + 1 + 2 + + 4 + 101 + Q&A + 이전의 글제목입니다. + 2021-07-19 + 김아무 + 답변완료 + + + 6 + 102 + Q&A + 다음의 글제목입니다. + 2021-07-20 + 홍아무 + 답변완료 + + + + diff --git a/src/main/java/nlib/col/service/RentService.java b/src/main/java/nlib/col/service/RentService.java index ee970ef7..9964d514 100644 --- a/src/main/java/nlib/col/service/RentService.java +++ b/src/main/java/nlib/col/service/RentService.java @@ -6,12 +6,36 @@ import nlib.restful.service.DataApiResVO; public interface RentService { + /** + * 대출 목록 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listRentItems(DataApiReqVO reqVO); - public DataApiResVO postponeReturnDate(DataApiReqVO reqVO); + /** + * 반납 연기 목록을 조회한다. + * + * @param reqVO + * @return + */ + public DataApiResVO listPostpones(DataApiReqVO reqVO); + /** + * 대출 취소 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO); + /** + * 대출 예약 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listReservations(DataApiReqVO reqVO); public DataApiResVO cancelReservations(DataApiReqVO reqVO); diff --git a/src/main/java/nlib/col/service/impl/CollectionDAO.java b/src/main/java/nlib/col/service/impl/CollectionDAO.java index e077cd14..3fc9fdc8 100644 --- a/src/main/java/nlib/col/service/impl/CollectionDAO.java +++ b/src/main/java/nlib/col/service/impl/CollectionDAO.java @@ -6,16 +6,29 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Repository; import nlib.bbs.service.impl.BoardDAO; +import nlib.restful.DataApi; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @Repository("collectionDAO") -public class CollectionDAO +public class CollectionDAO extends DataApi { private static final Logger log = LoggerFactory.getLogger(CollectionDAO.class); + /** + * 주 자원의 URI + */ + public static final String RESOURCE_URI = "/uac/service/col"; + + /** + * 소장 자료 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listItems(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/listItems/list"); + return get(reqVO); } public DataApiResVO insertInterest(DataApiReqVO reqVO) { @@ -33,13 +46,26 @@ public class CollectionDAO public DataApiResVO requestViewingItem(DataApiReqVO reqVO) { return null; } - + + /** + * 소장자료를 상세 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO selectItemInfo(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/listItems"); + return get(reqVO); } - + /** + * 관심 자료 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listInterests(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/interests/list"); + return get(reqVO); } public DataApiResVO deleteInterest(DataApiReqVO reqVO) { diff --git a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java index 71160eca..02bd350d 100644 --- a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java @@ -19,9 +19,14 @@ public class CollectionServiceImpl implements CollectionService @Resource(name = "collectionDAO") private CollectionDAO collectionDAO; - + /* + * 소장자료 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.CollectionService#listItems(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO listItems(DataApiReqVO reqVO) { - return null; + return collectionDAO.listItems(reqVO); } public DataApiResVO insertInterest(DataApiReqVO reqVO) { @@ -39,13 +44,23 @@ public class CollectionServiceImpl implements CollectionService public DataApiResVO requestViewingItem(DataApiReqVO reqVO) { return null; } - + /* + * 소장자료를 상세 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.CollectionService#selectItemInfo(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO selectItemInfo(DataApiReqVO reqVO) { - return null; + return collectionDAO.selectItemInfo(reqVO); } - + /* + * 관심 자료 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.CollectionService#listInterests(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO listInterests(DataApiReqVO reqVO) { - return null; + return collectionDAO.listInterests(reqVO); } public DataApiResVO deleteInterest(DataApiReqVO reqVO) { diff --git a/src/main/java/nlib/col/service/impl/RentDAO.java b/src/main/java/nlib/col/service/impl/RentDAO.java index 861585e6..acff5a92 100644 --- a/src/main/java/nlib/col/service/impl/RentDAO.java +++ b/src/main/java/nlib/col/service/impl/RentDAO.java @@ -5,40 +5,84 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Repository; +import nlib.restful.DataApi; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @Repository("rentDAO") -public class RentDAO +public class RentDAO extends DataApi { private static final Logger log = LoggerFactory.getLogger(RentDAO.class); + + /** + * 주 자원의 URI + */ + public static final String RESOURCE_URI = "/uac/service/col/rent"; + + + /** + * 대출 목록 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listRentItems(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/list"); + return get(reqVO); } - public DataApiResVO postponeReturnDate(DataApiReqVO reqVO) { - return null; + /** + * 반납 연기 목록을 조회한다. + * + * @param reqVO + * @return + */ + public DataApiResVO listPostpones(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/list"); + return get(reqVO); } - + + /** + * 대출 취소 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/list"); + return get(reqVO); } + /** + * 대출 예약 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listReservations(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/list"); + return get(reqVO); } public DataApiResVO cancelReservations(DataApiReqVO reqVO) { return null; } + /** + * 열람 요청 목록을 조회한다. + * + * @param reqVO + * @return + */ public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/read/list"); + return get(reqVO); } public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/read"); + return get(reqVO); } diff --git a/src/main/java/nlib/col/service/impl/RentServiceImpl.java b/src/main/java/nlib/col/service/impl/RentServiceImpl.java index cd906f88..4b694d57 100644 --- a/src/main/java/nlib/col/service/impl/RentServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/RentServiceImpl.java @@ -19,34 +19,65 @@ public class RentServiceImpl implements RentService @Resource(name="rentDAO") private RentDAO rentDAO; - + /* + * 대출 목록 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.RentService#listRentItems(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO listRentItems(DataApiReqVO reqVO) { - return null; + return rentDAO.listRentItems(reqVO); } - public DataApiResVO postponeReturnDate(DataApiReqVO reqVO) { - return null; + /* + * 반납 연기 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.RentService#listPostpones(nlib.restful.service.DataApiReqVO) + */ + public DataApiResVO listPostpones(DataApiReqVO reqVO) { + return rentDAO.listPostpones(reqVO); } - + /* + * 대출 취소 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.RentService#listCanceledRentItems(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) { - return null; + return rentDAO.listCanceledRentItems(reqVO); } + /* + * 대출 예약 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.RentService#listReservations(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO listReservations(DataApiReqVO reqVO) { - return null; + return rentDAO.listReservations(reqVO); } public DataApiResVO cancelReservations(DataApiReqVO reqVO) { return null; } + /* + * 열람 요청 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) { - return null; + return rentDAO.listRequestsForViewingItem(reqVO); } - + /* + * 열람 요청 상세 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO) + */ public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) { - return null; + return rentDAO.selectRequestInfoForViewingItem(reqVO); } - - } \ No newline at end of file diff --git a/src/main/java/nlib/col/web/CollectionController.java b/src/main/java/nlib/col/web/CollectionController.java index a6c86e04..1aef05a9 100644 --- a/src/main/java/nlib/col/web/CollectionController.java +++ b/src/main/java/nlib/col/web/CollectionController.java @@ -1,28 +1,107 @@ package nlib.col.web; +import java.util.HashMap; +import java.util.Map; + import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.Authentication; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; +import nlib.cmm.service.NlibProperty; import nlib.col.service.CollectionService; -import nlib.col.service.impl.RentServiceImpl; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; +import nlib.util.StringUtil; @Controller -public class CollectionController +public class CollectionController extends NlibCommonController { private static final Logger log = LoggerFactory.getLogger(CollectionController.class); + static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + + @Resource(name = "codeService") + private CodeService codeService; @Resource(name="collectionService") private CollectionService collectionService; + /** + * 소장자료 화면을 호출한다. + * + * @param req + * @return + */ + @RequestMapping("/collection/listItems.do") + public String listItems(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); - public ModelMap listItems(HttpServletRequest req) { - return null; + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/collection/listItems"; + } + + /** + * 소장자료를 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/collection/listItemsAjax.do") + public ResponseEntity listItemsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = collectionService.listItems(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); } public ModelMap insertInterest(HttpServletRequest req) { @@ -40,15 +119,120 @@ public class CollectionController public ModelMap requestViewingItem(HttpServletRequest req) { return null; } + /** + * 소장자료 상세 내용 조회한다. + * + * @param req + * @return + */ + @RequestMapping("/collection/selectItemInfo.do") + public String selectItemInfo(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + // 목록 이동시 전달할 매개변수 + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = paramMap.get("pageIndex"); + String pageSize = paramMap.get("pageSize"); + String message = paramMap.get("message"); + + // 게시물 번호 + String articleNo = paramMap.get("articleNo"); + + log.debug("selectQnA > pageIndex = " + pageIndex); + log.debug("selectQnA > pageSize = " + pageSize); + log.debug("selectQnA > searchKeyword = " + searchKeyword); + log.debug("selectQnA > articleNo = " + articleNo); + log.debug("selectQnA > message = " + message); - public ModelMap selectItemInfo(HttpServletRequest req) { - return null; + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID + reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 + + // 요청 + DataApiResVO resVO = collectionService.selectItemInfo(reqVO); + + // 반환 정보 + model.addAttribute("articleNo" , articleNo); + model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 + model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보 + model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보 + model.addAttribute("message" , message); + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + + return "nlib/collection/selectItemInfo"; + } + /** + * 관심 자료 화면을 호출한다. + * + * @param req + * @return + */ + @RequestMapping("/collection/listInterests.do") + public String listInterests(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/collection/listInterests"; } - public ModelMap listInterests(HttpServletRequest req) { - return null; - } + /** + * 관심 자료를 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/collection/listInterestsAjax.do") + public ResponseEntity listInterestsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = collectionService.listInterests(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } public ModelMap deleteInterest(HttpServletRequest req) { return null; } diff --git a/src/main/java/nlib/col/web/RentController.java b/src/main/java/nlib/col/web/RentController.java index 9812475c..5916a8d4 100644 --- a/src/main/java/nlib/col/web/RentController.java +++ b/src/main/java/nlib/col/web/RentController.java @@ -1,94 +1,447 @@ - -package nlib.col.web; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestMapping; - -import nlib.col.service.RentService; - -/** - *
- * @Class Name : RentController.java
- * 
- * @Description : 대출 Controller
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 7. 21. JSYOO 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP JSYOO - * @since 2021. 7. 21. - * @version 1.0 - * - */ -@Controller -public class RentController -{ - private static final Logger log = LoggerFactory.getLogger(RentController.class); - - @Resource(name = "rentService") - private RentService rentService; - - /** 대출 목록 화면을 호출한다. - * @param req - * @return - */ - @RequestMapping("/rent/listRentItems.do") - public String listRentItems(HttpServletRequest req) { - return "nlib/rent/listRentItems"; - } - - /** 대출 취소 목록화면을 호출한다. - * @param req - * @return - */ - @RequestMapping("/rent/listCancelRentItems.do") - public String listCancelRentItems(HttpServletRequest req) { - return "nlib/rent/listCancelRentItems"; - } - - - public ModelMap postponeReturnDate(HttpServletRequest req) { - return null; - } - - public ModelMap listCanceledRentItems(HttpServletRequest req) { - return null; - } - - /** 대출 예약 목록화면을 호출한다. - * @param req - * @return - */ - @RequestMapping("/rent/listReservations.do") - public String listReservations(HttpServletRequest req) { - return "nlib/rent/listReservations"; - } - - public ModelMap cancelReservations(HttpServletRequest req) { - return null; - } - - public ModelMap listRequestsForViewingItem(HttpServletRequest req) { - return null; - } - - public ModelMap selectRequestInfoForViewingItem(HttpServletRequest req) { - return null; - } - - + +package nlib.col.web; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; +import nlib.cmm.service.NlibProperty; +import nlib.col.service.RentService; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; +import nlib.util.StringUtil; + +/** + *
+ * @Class Name : RentController.java
+ * 
+ * @Description : 대출 Controller
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 21. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 21. + * @version 1.0 + * + */ +@Controller +public class RentController extends NlibCommonController +{ + private static final Logger log = LoggerFactory.getLogger(RentController.class); + static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + + @Resource(name = "rentService") + private RentService rentService; + + @Resource(name = "codeService") + private CodeService codeService; + + + /** 대출 목록 화면을 호출한다. + * @param req + * @return + */ + @RequestMapping("/rent/listRentItems.do") + public String listRentItems(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/rent/listRentItems"; + } + + /** + * 대출 목록을 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/rent/listRentItemsAjax.do") + public ResponseEntity listRentItemsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = rentService.listRentItems(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + + /** 대출 목록 화면을 호출한다. + * @param req + * @return + */ + @RequestMapping("/rent/listCanceledRentItems.do") + public String listCanceledRentItems(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/rent/listCanceledRentItems"; + } + + /** + * 대출 취소 목록을 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/rent/listCanceledRentItemsAjax.do") + public ResponseEntity listCanceledRentItemsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = rentService.listCanceledRentItems(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + + /** 반납 연기 화면을 호출한다. + * @param req + * @return + */ + @RequestMapping("/rent/listPostpones.do") + public String listPostpones(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/rent/listPostpones"; + } + + /** + * 반납 연기 목록을 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/rent/listPostponesAjax.do") + public ResponseEntity listPostponesAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = rentService.listPostpones(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + + public ModelMap listCanceledRentItems(HttpServletRequest req) { + return null; + } + + /** 대출 예약 화면을 호출한다. + * @param req + * @return + */ + @RequestMapping("/rent/listReservations.do") + public String listReservations(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/rent/listReservations"; + } + + /** + * 대출 예약 목록을 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/rent/listReservationsAjax.do") + public ResponseEntity listReservationsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = rentService.listReservations(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + + public ModelMap cancelReservations(HttpServletRequest req) { + return null; + } + + /** + * 열람 요청 화면을 호출한다. + * + * @param req + * @return + */ + @RequestMapping("/rent/listRequestsForViewingItem.do") + public String listRequestsForViewingItem(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforPageSize = new DataApiReqVO(); + reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); + reqVOforPageSize.setPageSize(0); + reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + return "nlib/rent/listRequestsForViewingItem"; + } + + /** + * 열람 요청 목록을 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/rent/listRequestsForViewingItemAjax.do") + public ResponseEntity listRequestsForViewingItemAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = rentService.listRequestsForViewingItem(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + + /** + * 묻고답하기 상세 내용 조회한다. + * + * @param req + * @return + */ + @RequestMapping("/rent/selectRequestInfoForViewingItem.do") + public String selectRequestInfoForViewingItem(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + + // 목록 이동시 전달할 매개변수 + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = paramMap.get("pageIndex"); + String pageSize = paramMap.get("pageSize"); + String message = paramMap.get("message"); + + // 게시물 번호 + String articleNo = paramMap.get("articleNo"); + + log.debug("selectRequestInfoForViewingItem > pageIndex = " + pageIndex); + log.debug("selectRequestInfoForViewingItem > pageSize = " + pageSize); + log.debug("selectRequestInfoForViewingItem > searchKeyword = " + searchKeyword); + log.debug("selectRequestInfoForViewingItem > articleNo = " + articleNo); + log.debug("selectRequestInfoForViewingItem > message = " + message); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID + reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 + + // 요청 + DataApiResVO resVO = rentService.selectRequestInfoForViewingItem(reqVO); + + // 반환 정보 + model.addAttribute("articleNo" , articleNo); + model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 + model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보 + model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보 + model.addAttribute("message" , message); + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + + return "nlib/rent/selectRequestInfoForViewingItem"; + } } \ No newline at end of file diff --git a/src/main/java/nlib/security/SpringSecurityConfig.java b/src/main/java/nlib/security/SpringSecurityConfig.java index fd86b76d..1381fe13 100644 --- a/src/main/java/nlib/security/SpringSecurityConfig.java +++ b/src/main/java/nlib/security/SpringSecurityConfig.java @@ -74,6 +74,8 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/index.do").permitAll() .antMatchers("/main/header.do").permitAll() .antMatchers("/main/menu.do").permitAll() + .antMatchers("/rent/*.do").permitAll() + .antMatchers("/collection/*.do").permitAll() .antMatchers("/sample/password/getSampleEncoder.do").permitAll() .anyRequest().authenticated() .and().formLogin() diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp new file mode 100644 index 00000000..dff9b40e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp @@ -0,0 +1,186 @@ +<% +/** + *
+ * @Class Name : listInterests.jsp
+ * 
+ * @Description : 관심 자료를 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 28. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 28. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +관심 자료 + + + + +${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ +
+ + + + + + + + +
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp new file mode 100644 index 00000000..f70aeb42 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp @@ -0,0 +1,186 @@ +<% +/** + *
+ * @Class Name : listItems.jsp
+ * 
+ * @Description : 소장 자료를 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 28. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 28. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +소장 자료 + + + + +${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ +
+ + + + + + + + +
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/listCancelRentItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/listCancelRentItems.jsp deleted file mode 100644 index 04d264d9..00000000 --- a/src/main/webapp/WEB-INF/jsp/nlib/rent/listCancelRentItems.jsp +++ /dev/null @@ -1,181 +0,0 @@ -<% -/** - *
- * @Class Name : listCancelRentItems.jsp
- * 
- * @Description : 대출 취소목록을 조회한다.
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 7. 21. JSYOO 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP JSYOO - * @since 2021. 7. 21. - * @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" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ 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" %> - -대출 취소 - - - - -${pageTitle} - - - - - - - - - - -

대출 취소

- -
- - - - - - - - - - - - -
- -
- - - - - diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/listCanceledRentItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/listCanceledRentItems.jsp new file mode 100644 index 00000000..c1bcaa1d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/listCanceledRentItems.jsp @@ -0,0 +1,179 @@ +<% +/** + *
+ * @Class Name : listCanceledRentItems.jsp
+ * 
+ * @Description : 대출 취소목록을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 21. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 21. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +대출 취소 목록 + + + + +${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ +
+ + + + + + + + +
+ + +
+ + + 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 509f280c..8f3bd007 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/rent/listRentItems.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/listRentItems.jsp @@ -1,181 +1,189 @@ -<% -/** - *
- * @Class Name : listRentItems.jsp
- * 
- * @Description : 대출 목록을 조회한다.
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 7. 21. JSYOO 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP JSYOO - * @since 2021. 7. 21. - * @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" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ 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" %> - -대출 목록 - - - - -${pageTitle} - - - - - - - - - - -

대출 목록

- -
- - - - - - - - - - - - -
- -
- - - - - +<% +/** + *
+ * @Class Name : listRentItems.jsp
+ * 
+ * @Description : 대출 목록을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 21. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 21. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +대출 목록 + + + + +${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ +
+ + + + + + + + +
+ + + + +
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/listRequestsForViewingItem.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/listRequestsForViewingItem.jsp new file mode 100644 index 00000000..0afb5482 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/listRequestsForViewingItem.jsp @@ -0,0 +1,179 @@ +<% +/** + *
+ * @Class Name : listRequestsForViewingItem.jsp
+ * 
+ * @Description : 열람 요청을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 21. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 21. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +열람 요청 + + + + +${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ +
+ + + + + + + + +
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/listReservations.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/listReservations.jsp index 52ba516a..efd369c2 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/rent/listReservations.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/listReservations.jsp @@ -1,181 +1,371 @@ -<% -/** - *
- * @Class Name : listReserVations.jsp
- * 
- * @Description : 대출 예약 목록을 조회한다.
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 7. 21. JSYOO 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP JSYOO - * @since 2021. 7. 21. - * @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" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ 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" %> - -대출 예약 - - - - -${pageTitle} - - - - - - - - - - -

대출 예약

- -
- - - - - - - - - - - - -
- -
- - - - - +<<<<<<< HEAD +<% +/** + *
+ * @Class Name : listReserVations.jsp
+ * 
+ * @Description : 대출 예약 목록을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 21. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 21. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +대출 예약 목록 + + + + +${pageTitle} + + + + + + + + + + + +

${pageTitle }

+ +
+ + + + + + + + +
+ + +
+ + + +======= +<% +/** + *
+ * @Class Name : listReserVations.jsp
+ * 
+ * @Description : 대출 예약 목록을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 21. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 21. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +대출 예약 + + + + +${pageTitle} + + + + + + + + + + +

대출 예약

+ +
+ + + + + + + + + + + + +
+ +
+ + + + + +>>>>>>> refs/remotes/origin/master diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/selectRequestInfoForViewingItem.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/selectRequestInfoForViewingItem.jsp new file mode 100644 index 00000000..64993956 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/selectRequestInfoForViewingItem.jsp @@ -0,0 +1,169 @@ +<% +/** + *
+ * @Class Name : selectRequestInfoForViewingItem.jsp
+ * 
+ * @Description : 열람요청 상세내용을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 30. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 30. + * @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" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ 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" %> + +열람요청 - 상세조회 + + + + +${pageTitle} + + + + + + + +

${pageTitle }

+ +메시지 : ${message } +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
유형${article.articleTypeName }작성자 : ${article.regUserName }작성일 : ${article.regDate }상태 : ${article.repStatus }
질문내용${article.contentQeust}
${article.contentQeustFile}
답변내용${article.contentReply}
${article.contentReplyFile}
+ +
+ + + + + + + + + + + + + + + + + + +
이전글${preArticle.articleTypeName }${preArticle.title }작성자 : ${preArticle.regUserName }작성일 : ${preArticle.regDate }상태 : ${preArticle.repStatus }
다음글${nextArticle.articleTypeName }${nextArticle.title }작성자 : ${nextArticle.regUserName }작성일 : ${nextArticle.regDate }상태 : ${nextArticle.repStatus }
+ + + + +
+ + +