diff --git a/src/main/java/nlib/cmm/web/MainController.java b/src/main/java/nlib/cmm/web/MainController.java
index ffaf7ad1..5639a214 100644
--- a/src/main/java/nlib/cmm/web/MainController.java
+++ b/src/main/java/nlib/cmm/web/MainController.java
@@ -14,7 +14,9 @@ import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import nlib.cmm.NlibCommonController;
+import nlib.cmm.service.NlibProperty;
import nlib.cmm.service.NotificationService;
+import nlib.col.service.CartService;
import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil;
@@ -48,6 +50,9 @@ public class MainController extends NlibCommonController {
@Resource(name="notificationService")
private NotificationService notificationService;
+ @Resource(name = "cartService")
+ private CartService cartService;
+
@RequestMapping( {"/index.do"} )
public String setContent(
HttpServletRequest req,
@@ -61,17 +66,50 @@ public class MainController extends NlibCommonController {
log.debug((authentication == null ? "손님 메인 접속" : authentication.getName() + " 메인 접속"));
+ return "nlib/cmm/home";
+ }
+
+ @RequestMapping( {"/cmm/headerSubPart.do"} )
+ public String headerSub(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ Authentication authentication,
+ ModelMap model) throws Exception {
+
+ // 캐쉬된 Reqeust 히스토리 삭제
+ RequestCache cache = new HttpSessionRequestCache();
+ cache.removeRequest(request, response);
+
+ log.debug((authentication == null ? "손님 메인 접속" : authentication.getName() + " 메인 접속"));
+
+ String mbInfoId = getMbInfoId(request);
+
+ // 카트 건수 확인
+
+ // 카트 목록 가져오기
+ int cartCnt = 0;
+ if(StringUtil.isEmpty(mbInfoId)) {
+ // 카트 건수
+ cartCnt = cartService.countCartItemsFromCookie(request, response, "1");
+ cartCnt += cartService.countCartItemsFromCookie(request, response, "2");
+ } else {
+ cartCnt = cartService.countCartItems(mbInfoId, "0");
+ }
+
// 알림 확인
- String mbInfoId = getMbInfoId(req);
int unreadNotiCnt = 0;
- if(!isAlerted(req) && StringUtil.isNotEmpty(mbInfoId)) {
+ if(StringUtil.isNotEmpty(mbInfoId)) {
unreadNotiCnt = notificationService.countUnreadNotification(mbInfoId);
- setAlerted(req, true);
}
+ if(!isAlerted(request)) {
+ setAlerted(request, true);
+ }
+
+ model.addAttribute("cartCnt", cartCnt);
model.addAttribute("unreadNotiCnt", unreadNotiCnt);
- return "nlib/cmm/home";
+ return "nlib/cmm/headerSubPart";
}
}
\ No newline at end of file
diff --git a/src/main/java/nlib/col/service/ReadService.java b/src/main/java/nlib/col/service/ReadService.java
new file mode 100644
index 00000000..d5367eeb
--- /dev/null
+++ b/src/main/java/nlib/col/service/ReadService.java
@@ -0,0 +1,49 @@
+package nlib.col.service;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ *
+ * @Class Name : ReadService.java
+ *
+ * @Description :
+ *
+ *
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ *
+ *
+ * @ ------------ -------- ---------------------------
+ * @ 수정일 수정자 수정내용
+ * @ ------------ -------- ---------------------------
+ * @ 2021. 10. 27. KNKIM 최초 생성
+ *
+ *
+ * @author 이씨플라자 * DIGITALSHIP KNKIM
+ * @since 2021. 10. 27.
+ * @version 1.0
+ *
+ */
+public interface ReadService {
+
+ /**
+ * 열람신청희망 가능 일자 목록을 조회한다.
+ *
+ * @param mbInfoId
+ * @return
+ */
+ public List> listDates();
+
+
+ /**
+ * 열람을 신청한다.
+ *
+ * @param list
+ * @param mbInfoId
+ * @param mngOrgCd
+ * @return
+ */
+ public List insertReadItems(List list, String mbInfoId, CollectionVO readVO) throws Exception;
+
+}
diff --git a/src/main/java/nlib/col/service/impl/ReadDAO.java b/src/main/java/nlib/col/service/impl/ReadDAO.java
new file mode 100644
index 00000000..93bbb2bd
--- /dev/null
+++ b/src/main/java/nlib/col/service/impl/ReadDAO.java
@@ -0,0 +1,13 @@
+
+package nlib.col.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import egovframework.rte.psl.dataaccess.mapper.Mapper;
+
+@Mapper("readDAO")
+public interface ReadDAO {
+
+ public List> listDates();
+
+}
diff --git a/src/main/java/nlib/col/service/impl/ReadServiceImpl.java b/src/main/java/nlib/col/service/impl/ReadServiceImpl.java
new file mode 100644
index 00000000..08b77e59
--- /dev/null
+++ b/src/main/java/nlib/col/service/impl/ReadServiceImpl.java
@@ -0,0 +1,155 @@
+package nlib.col.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpMethod;
+import org.springframework.stereotype.Service;
+
+import nlib.col.service.CollectionVO;
+import nlib.col.service.ReadService;
+import nlib.info.service.InformService;
+import nlib.restful.DataApi;
+import nlib.restful.service.DataApiReqVO;
+import nlib.restful.service.DataApiResVO;
+import nlib.util.StringUtil;
+
+@Service("readService")
+public class ReadServiceImpl implements ReadService {
+
+ private static final Logger log = LoggerFactory.getLogger(ReadServiceImpl.class);
+
+ @Resource(name="readDAO")
+ private ReadDAO readDAO;
+
+ @Resource(name="informService")
+ private InformService informService;
+
+
+ /** RESTFul API 송수신 모듈 */
+ @Resource(name = "dataApi")
+ private DataApi dataApi;
+
+
+ /**
+ * 열람신청희망 가능 일자 목록을 조회한다.
+ *
+ * @param mbInfoId
+ * @return
+ */
+ public List> listDates() {
+ return readDAO.listDates();
+ }
+
+
+ /**
+ * 열람을 신청한다.
+ *
+ * @param list
+ * @param mbInfoId
+ * @param mngOrgCd
+ * @return
+ */
+ public List insertReadItems(List list, String mbInfoId, CollectionVO readVO) throws Exception {
+
+ if(list == null || list.size() < 1) {
+ log.error("insertReadItems > 열람 신청 대상 목록이 없습니다.");
+ return null;
+ }
+ if(readVO == null) {
+ log.error("insertReadItems > 매개변수 readVO는 null일 수 없습니다.");
+ return null;
+ }
+
+ if(StringUtil.isEmpty(mbInfoId)) {
+ log.error("insertReadItems > 사용자ID를 확인할 수 없습니다.");
+ return null;
+ }
+
+ if(StringUtil.isEmpty(readVO.getMngOrgCd())) {
+ log.error("insertReadItems > 관리문화원 코드를 확인할 수 없습니다.");
+ return null;
+ }
+
+ if(StringUtil.isEmpty(readVO.getHopeReqPridDtmFrom() )) {
+ log.error("insertReadItems > 방문희망일 시작일자를 확인할 수 없습니다.");
+ return null;
+ }
+
+ if(StringUtil.isEmpty(readVO.getHopeReqPridDtmTo() )) {
+ log.error("insertReadItems > 방문희망일 종료일자를 확인할 수 없습니다.");
+ return null;
+ }
+
+ if(readVO.getHopeReqPridDtmFrom().compareTo(readVO.getHopeReqPridDtmTo()) > 0) {
+ log.error("insertReadItems > 방문희망일 종료일자는 시작일자 이후이어야 합니다.");
+ return null;
+ }
+
+ // 해당 문화원의 업무시간 조회
+ HashMap operation = informService.selectNCultureOpenTime(readVO.getMngOrgCd());
+
+ // API 호출
+ /*
+ mngOrgCd 문화원코드 O String SU01
+ mbInfoId 사용자아이디 O String "BDCCAF34CF8AA365C660ADB121CE6741
+ (ARIAUtil 암호화)"
+ jsonMasterId 자료번호목록 O String [{"masterId":"xxxx"}, {"masterId":"xxxb"},…]
+ hopeReqPridDtmFrom 희망열람기간시작일자 O String 202109071300
+ hopeReqPridDtmTo 희망열람기간종료일자 O String 202109101400
+ purpose 열람목적 String 열람목적
+ */
+ DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/col/insertReserveItem", HttpMethod.POST);
+ reqVO.setMbInfoId(mbInfoId); // 통신 시, 암호화되어 송수신됨
+ reqVO.putInfoItem("mngOrgCd" , readVO.getMngOrgCd());
+ reqVO.putInfoItem("hopeReqPridDtmFrom", readVO.getHopeReqPridDtmFrom().replaceAll("-", "") + StringUtil.getString(operation.get("OPEN_TIME"), "0900").replaceAll(":", "").substring(0, 4));
+ reqVO.putInfoItem("hopeReqPridDtmTo" , readVO.getHopeReqPridDtmTo().replaceAll("-", "") + StringUtil.getString(operation.get("CLOSED_TIME"), "1800").replaceAll(":", "").substring(0, 4));
+ CollectionVO cVO = null;
+ DataApiResVO resVO = null;
+ String jsonMasterId = "";
+
+ for(int i=0; i 열람 신청 대상으로 생성된 목록이 없습니다.");
+ return null;
+ }
+
+ jsonMasterId = "[" + jsonMasterId.substring(1) + "]";
+
+ reqVO.putInfoItem("jsonMasterId", jsonMasterId);
+ resVO = dataApi.request(reqVO);
+ CollectionVO rVO = null;
+ cVO.setResult(resVO.getResultCode(), resVO.getResultMessage());
+
+ readVO.setResultCode(resVO.getResultCode());
+ readVO.setResultMessage(resVO.getResultMessage());
+
+ // 대출예약번호/일자 설정 (rsrvId)
+ if(StringUtil.startsWithIgnoreCase(resVO.getResultCode(), "S")) {
+ readVO.setHopeReqPridDtmFrom(StringUtil.formatDateStr(resVO.getInfoItem("hopeReqPridDtmFrom", ""),""));
+ readVO.setHopeReqPridDtmTo(StringUtil.formatDateStr(resVO.getInfoItem("hopeReqPridDtmTo", ""),""));
+ readVO.setRsrvId(resVO.getInfoItem("reqId", "")); // 열람신청번호
+ readVO.setRsrvId(resVO.getInfoItem("reqDd", "")); // 열람신청일자
+ readVO.setSelItems(resVO.getInfoItem("masterId")); // 자료번호
+ } else {
+ readVO.setRsrvId(null); // 열람신청번호
+ readVO.setRsrvId(null); // 열람신청일자
+ }
+
+ return list;
+ }
+
+}
diff --git a/src/main/java/nlib/col/service/impl/RentServiceImpl.java b/src/main/java/nlib/col/service/impl/RentServiceImpl.java
index 772195b6..4c7cb8de 100644
--- a/src/main/java/nlib/col/service/impl/RentServiceImpl.java
+++ b/src/main/java/nlib/col/service/impl/RentServiceImpl.java
@@ -109,7 +109,7 @@ public class RentServiceImpl implements RentService
CollectionVO cVO = null;
DataApiResVO resVO = null;
for(int i=0; i
+ * @Class Name : ReadController.java
+ *
+ * @Description : 방문열람을 관리하는 컨트롤러
+ *
+ *
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ *
+ *
+ * @ ------------ -------- ---------------------------
+ * @ 수정일 수정자 수정내용
+ * @ ------------ -------- ---------------------------
+ * @ 2021. 10. 27. KNKIM 최초 생성
+ *
+ *
+ * @author 이씨플라자 * DIGITALSHIP KNKIM
+ * @since 2021. 10. 27.
+ * @version 1.0
+ *
+ */
+@Controller
+public class ReadController extends NlibCommonController {
+
+ private static final Logger log = LoggerFactory.getLogger(ReadController.class);
+
+ @Resource(name = "readService")
+ private ReadService readService;
+
+
+ @Resource(name = "collectionService")
+ private CollectionService collectionService;
+
+
+ /**
+ * 열람신청을 등록하는 화면을 표출한다.
+ *
+ * @param request
+ * @param readVO
+ * @param model
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/read/confirmReadFromCart.do", "/read/confirmRead.do"})
+ public String confirmRent(HttpServletRequest request, CollectionVO readVO, ModelMap model) throws Exception {
+
+ String retJsp = "nlib/read/confirmRead";
+ boolean fromCart = request.getServletPath().contains("Cart.do");
+
+ String mbInfoId = getMbInfoId(request);
+
+ if(StringUtil.isEmpty(mbInfoId)) {
+ model.addAttribute("message", "로그인 후, 이용해 주시기 바랍니다.");
+ return retJsp;
+ }
+
+ if(readVO == null || StringUtil.isEmpty(readVO.getSelItems())) {
+ model.addAttribute("message", "대출(예약)신청할 정보가 없습니다.");
+ return retJsp;
+ }
+
+ String selItems = readVO.getSelItems();
+
+ List list = collectionService.makeInfoListOfCollectionVO(selItems, mbInfoId, NlibProperty.getString("thumbnail.image.url.small"));
+ List> listDates = readService.listDates();
+
+ model.addAttribute("readVO", readVO);
+ model.addAttribute("list", list);
+ model.addAttribute("listDates", listDates);
+ if(fromCart) model.addAttribute("fromCart", fromCart ? "Y" : "N");
+
+ return retJsp;
+ }
+
+ /**
+ * 열람신청을 등록한다.
+ *
+ * @param request
+ * @param readVO
+ * @param model
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/read/insertReadItemsFromCart.do", "/read/insertReadItems.do"})
+ public String insertReadItems(HttpServletRequest request, CollectionVO readVO, ModelMap model) throws Exception {
+
+ boolean fromCart = request.getServletPath().contains("Cart.do");
+ String retJsp = "nlib/read/insertReadItems";
+ String mbInfoId = getMbInfoId(request);
+
+ if(StringUtil.isEmpty(mbInfoId)) {
+ model.addAttribute("message", "로그인 후, 이용해 주시기 바랍니다.");
+ return retJsp;
+ }
+
+ if(readVO == null || StringUtil.isEmpty(readVO.getSelItems())) {
+ model.addAttribute("message", "대출(예약)신청할 정보가 없습니다.");
+ return retJsp;
+ }
+
+ if(StringUtil.isEmpty(readVO.getMngOrgCd())) {
+ model.addAttribute("message", "관리문화원 정보가 없습니다.");
+ return retJsp;
+ }
+
+ if(StringUtil.isEmpty(readVO.getHopeReqPridDtmFrom() )) {
+ model.addAttribute("message", "방문희망일 시작일자를 확인할 수 없습니다.");
+ return retJsp;
+ }
+
+ if(StringUtil.isEmpty(readVO.getHopeReqPridDtmTo() )) {
+ model.addAttribute("message", "방문희망일 종료일자를 확인할 수 없습니다.");
+ return retJsp;
+ }
+
+ if(readVO.getHopeReqPridDtmFrom().compareTo(readVO.getHopeReqPridDtmTo()) > 0) {
+ model.addAttribute("message", "방문희망일 종료일자는 시작일자 이후이어야 합니다.");
+ return retJsp;
+ }
+
+
+ String selItems = readVO.getSelItems();
+
+ List list = collectionService.makeListOfCollectionVO(selItems);
+
+ list = readService.insertReadItems(list, mbInfoId, readVO);
+ list = collectionService.setDetailInfoForList(list, mbInfoId, NlibProperty.getString("thumbnail.image.url.small"));
+
+ model.addAttribute("readVO", readVO);
+ model.addAttribute("list", list);
+ if(fromCart) model.addAttribute("fromCart", fromCart ? "Y" : "N");
+
+ return retJsp;
+ }
+
+}
diff --git a/src/main/java/nlib/col/web/RentController.java b/src/main/java/nlib/col/web/RentController.java
index 41688c66..12f671da 100644
--- a/src/main/java/nlib/col/web/RentController.java
+++ b/src/main/java/nlib/col/web/RentController.java
@@ -220,7 +220,6 @@ public class RentController extends NlibCommonController
}
-
//
//
// /** 대출 목록 화면을 호출한다.
diff --git a/src/main/java/nlib/info/service/InformService.java b/src/main/java/nlib/info/service/InformService.java
index 146d40b2..afb6abde 100644
--- a/src/main/java/nlib/info/service/InformService.java
+++ b/src/main/java/nlib/info/service/InformService.java
@@ -52,6 +52,12 @@ public interface InformService
* 이용안내를 조회한다.
*/
public HashMap selectNCultureOperationInfo(String councilCd) throws Exception ;
+
+
+ /**
+ * 해당 문화원의 운영 시간 및 공휴일 추가 정보를 조회한다.
+ */
+ public HashMap selectNCultureOpenTime(String orgCd) throws Exception;
/*
* 찾아오는길 조회한다.
diff --git a/src/main/java/nlib/info/service/impl/InformServiceImpl.java b/src/main/java/nlib/info/service/impl/InformServiceImpl.java
index d6a1c7c4..c1c6351a 100644
--- a/src/main/java/nlib/info/service/impl/InformServiceImpl.java
+++ b/src/main/java/nlib/info/service/impl/InformServiceImpl.java
@@ -117,7 +117,7 @@ public class InformServiceImpl implements InformService
}
// 문화원별 개폐시간 및 휴관일
- HashMap openTime = informDAO.selectNCultureOpenTime(orgCd);
+ HashMap openTime = selectNCultureOpenTime(orgCd);
operationInfo.put("informTitle" , (operation != null ? operation.get("TITLE") : ""));
operationInfo.put("informContent" , content);
@@ -127,6 +127,17 @@ public class InformServiceImpl implements InformService
return operationInfo;
}
+
+ /**
+ * 해당 문화원의 운영 시간 및 공휴일 추가 정보를 조회한다.
+ *
+ * @param orgCd
+ * @return
+ * @throws Exception
+ */
+ public HashMap selectNCultureOpenTime(String orgCd) throws Exception {
+ return informDAO.selectNCultureOpenTime(orgCd);
+ }
/*
* 찾아오는길 조회한다.
diff --git a/src/main/java/nlib/restful/service/impl/DataApiRESTful.java b/src/main/java/nlib/restful/service/impl/DataApiRESTful.java
index 74b1921e..e3a4ca4d 100644
--- a/src/main/java/nlib/restful/service/impl/DataApiRESTful.java
+++ b/src/main/java/nlib/restful/service/impl/DataApiRESTful.java
@@ -13,6 +13,8 @@ import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.HttpServerErrorException;
import org.springframework.web.client.RestTemplate;
import nlib.restful.service.DataApiInterface;
@@ -92,50 +94,51 @@ public class DataApiRESTful implements DataApiInterface {
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+ HttpStatus statusCode = HttpStatus.OK;
+ String resultXML = null;
+
if(method == HttpMethod.GET) {
HttpEntity requestEntity = new HttpEntity(headers);
- responseEntity = restTemplate.exchange (DataApiInterface.makeRequestParamUrl(url, reqVO), method, requestEntity, String.class);
+ try {
+ responseEntity = restTemplate.exchange (DataApiInterface.makeRequestParamUrl(url, reqVO), method, requestEntity, String.class);
+ statusCode = responseEntity.getStatusCode();
+ resultXML = responseEntity.getBody();
+ } catch(HttpClientErrorException e) {
+ e.printStackTrace();
+ resultXML = e.getResponseBodyAsString();
+ statusCode = e.getStatusCode();
+ } catch(HttpServerErrorException e) {
+ e.printStackTrace();
+ resultXML = e.getResponseBodyAsString();
+ statusCode = e.getStatusCode();
+ }
} else if(method == HttpMethod.POST) {
MultiValueMap parameters = DataApiInterface.makeRequestParamMultiValueMap(reqVO);
parameters.forEach((k, v) -> log.debug("params > " + k + " : " + v));
HttpEntity> requestEntity = new HttpEntity(parameters, headers);
- responseEntity = restTemplate.postForEntity(url, requestEntity , String.class);
+ try {
+ responseEntity = restTemplate.postForEntity(url, requestEntity , String.class);
+ statusCode = responseEntity.getStatusCode();
+ resultXML = responseEntity.getBody();
+ } catch(HttpClientErrorException e) {
+ e.printStackTrace();
+ resultXML = e.getResponseBodyAsString();
+ statusCode = e.getStatusCode();
+ } catch(HttpServerErrorException e) {
+ e.printStackTrace();
+ resultXML = e.getResponseBodyAsString();
+ statusCode = e.getStatusCode();
+ }
} else {
String message = "RESTFul API Http Method 설정 오류입니다. : POST, GET 방식만 허용됩니다.";
log.error("request > " + message);
return DataApiInterface.makeErrorRes("E_ERR_METHOD", message);
}
- //-----------------------------------
- // 요청 처리
- //-----------------------------------
-// RestTemplate restTemplate = new RestTemplate();
- //restTemplate.setMessageConverters(msgConverters);
-
- //ResponseEntity responseEntity = restTemplate.exchange(url, method, requestEntity, String.class);
-// ResponseEntity responseEntity = restTemplate.exchange (url, method, requestEntity, String.class);
- //ResponseEntity responseEntity = restTemplate.exchange (url, HttpMethod.GET, requestEntity, String.class, parameters);
- //ResponseEntity responseEntity = restTemplate.postForEntity( url, requestEntity , String.class ); // working well
- //ResponseEntity responseEntity = restTemplate.getForEntity(url, String.class, parameters); // not working
-
- /*
- // GET // OK
- UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
- .queryParam("mngOrgCd", "SU01")
- .queryParam("masterId", "UR-408A9832D25C42289D9B1FC81FDA8360")
- .queryParam("typeDivCd", "IT_MUSE");
- HttpEntity> entity = new HttpEntity<>(headers);
- RestTemplate restTemplate = new RestTemplate();
- ResponseEntity responseEntity = restTemplate.exchange (builder.toUriString(), method, entity, String.class);
- */
-
-
//-----------------------------------
// 응답 처리
//-----------------------------------
- HttpStatus statusCode = responseEntity.getStatusCode();
log.debug("RES StatusCode : " + statusCode);
- String resultXML = responseEntity.getBody();
log.debug("RES resultXML : " + resultXML);
// 응답 자료 객체화
diff --git a/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml
new file mode 100644
index 00000000..2aaecc2e
--- /dev/null
+++ b/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/HTML안내.txt b/src/main/webapp/HTML안내.txt
new file mode 100644
index 00000000..b8859bab
--- /dev/null
+++ b/src/main/webapp/HTML안내.txt
@@ -0,0 +1,35 @@
+2021-10-25 오전 08:07 21,638 cart-complete.html 대출/열람 신청 완료
+2021-10-25 오전 08:07 21,952 cart-confirm.html 대출/열람 신청 확인
+2021-10-25 오전 08:07 31,574 cart.html 카트
+
+2021-10-25 오전 08:07 36,245 connect.html 계정연결
+2021-10-25 오전 08:07 38,172 data-detail.html 소장자료 상세조회
+2021-10-25 오전 08:07 43,189 data-noresults.html 소장자료관
+2021-10-25 오전 08:07 48,943 data.html 소장자료관
+
+2021-10-25 오전 08:07 36,249 dormant.html 휴면상태안내 및 해제
+
+2021-10-25 오전 08:07 15,686 faq.html FAQ
+2021-10-25 오전 08:07 10,011 greeting.html 인사말
+2021-10-25 오전 08:07 16,513 guide.html 이용안내
+2021-10-25 오전 08:07 73,917 index.html 메인홈
+2021-10-25 오전 08:07 17,193 Interested-data.html 관심자료
+2021-10-25 오전 08:07 42,470 join-1.html 회원가입 - 약관동의
+2021-10-25 오전 08:07 45,823 join-2.html 회원가입 - 정보입력
+2021-10-25 오전 08:07 36,457 join-3.html 회원가입 - 가입완료안내
+2021-10-25 오전 08:07 36,834 join.html 회원가입 - SNS 선택
+2021-10-25 오전 08:07 14,639 loan.html 대출관리
+2021-10-25 오전 08:07 39,715 location.html 찾아오시는길
+2021-10-25 오전 08:07 18,561 myinfo-modify.html 회원정보수정
+2021-10-25 오전 08:07 8,550 myinfo-passwd.html 회원비번 변경
+2021-10-25 오전 08:07 42,958 myinfo.html
+2021-10-25 오전 08:07 10,915 notice-view.html
+2021-10-25 오전 08:07 13,878 notice.html
+2021-10-25 오전 08:07 10,378 Notifications.html 알림
+2021-10-25 오전 08:07 12,252 qna-view.html
+2021-10-25 오전 08:07 12,118 qna-write.html
+2021-10-25 오전 08:07 14,978 qna.html
+2021-10-25 오전 08:07 36,587 secession.html 회원탈퇴
+2021-10-25 오전 08:07 15,568 visit.html 방문열람관리
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp
index 88c2b29c..7e65ae02 100644
--- a/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp
+++ b/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp
@@ -158,26 +158,6 @@ function fn_changeCartItems(cartTypeCd, cartTypeNm) {
$("#frm").submit();
}
-function fn_appRent() {
-
-
- alert("먼저 로그인하신 후, 이용해 주시기 바랍니다.");
-
-
-
- if($("[id^=chk_item_]:checked").length < 1) {
- alert("대출할 대상을 선택해 주세요.");
- return;
- }
-
-
- $("#selItems").val(fn_getCheckedCartItemsValues());
- $("#frm").attr("action","${pageContext.request.contextPath}/rent/confirmRentFromCart.do");
-
- $("#frm").submit();
-
-
-}
function fn_changeInterest(masterId, onOff) {
alert("관심등록/삭제 준비중 : " + masterId + ", " + onOff);
@@ -187,6 +167,50 @@ function fn_gotoDetail(masterId) {
alert("상세보기 준비중 : " + masterId);
}
+// 대출신청으로 이동
+function fn_appRent() {
+
+
+ alert("먼저 로그인하신 후, 이용해 주시기 바랍니다.");
+
+
+
+ if($("[id^=chk_item_]:checked").length < 1) {
+ alert("대출할 대상을 선택해 주세요.");
+ return;
+ }
+
+
+ $("#selItems").val(fn_getCheckedCartItemsValues());
+ $("#frm").attr("action","${pageContext.request.contextPath}/rent/confirmRentFromCart.do");
+
+ $("#frm").submit();
+
+
+}
+
+// 열람신청으로 이동
+function fn_appVisit() {
+
+
+ alert("먼저 로그인하신 후, 이용해 주시기 바랍니다.");
+
+
+
+ if($("[id^=chk_item_]:checked").length < 1) {
+ alert("방문열람할 대상을 선택해 주세요.");
+ return;
+ }
+
+
+ $("#selItems").val(fn_getCheckedCartItemsValues());
+ $("#frm").attr("action","${pageContext.request.contextPath}/read/confirmReadFromCart.do");
+
+ $("#frm").submit();
+
+
+}
+
$(document).ready(function() {
/* 탭메뉴 */
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cmm/headerSubPart.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cmm/headerSubPart.jsp
new file mode 100644
index 00000000..a74a4f83
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/nlib/cmm/headerSubPart.jsp
@@ -0,0 +1,82 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ 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"%>
+
+<%
+String councilCd = (String)session.getAttribute("councilCd");
+String councilNm = (String)session.getAttribute("councilNm");
+%>
+
+
+
+
+ 헤더영역
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/read/confirmRead.jsp b/src/main/webapp/WEB-INF/jsp/nlib/read/confirmRead.jsp
new file mode 100644
index 00000000..d68ca198
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/nlib/read/confirmRead.jsp
@@ -0,0 +1,343 @@
+<%
+/**
+ *
+ * @Class Name : confirmRent.jsp
+ *
+ * @Description : 대출신청 확인 화면
+ *
+ *
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ *
+ *
+ * @ ------------ -------- ---------------------------
+ * @ 수정일 수정자 수정내용
+ * @ ------------ -------- ---------------------------
+ * @ 2021. 10. 25. KNKIM 최초 생성
+ *
+ *
+ * @author 이씨플라자 * DIGITALSHIP KNKIM
+ * @since 2021. 10. 25.
+ * @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" %>
+<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
+
+
+
+
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/read/insertReadItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/read/insertReadItems.jsp
new file mode 100644
index 00000000..35d61c08
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/nlib/read/insertReadItems.jsp
@@ -0,0 +1,277 @@
+<%
+/**
+ *
+ * @Class Name : confirmRent.jsp
+ *
+ * @Description : 대출신청 확인 화면
+ *
+ *
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ *
+ *
+ * @ ------------ -------- ---------------------------
+ * @ 수정일 수정자 수정내용
+ * @ ------------ -------- ---------------------------
+ * @ 2021. 10. 25. KNKIM 최초 생성
+ *
+ *
+ * @author 이씨플라자 * DIGITALSHIP KNKIM
+ * @since 2021. 10. 25.
+ * @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" %>
+<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
+
+
+
+
+
+
+
+
+ 방문열람신청 섹션영역
+
+
+
+
+ - HOME
+
+ - 카트
+
+ - 방문열람신청
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
자료정보
+
이용상태
+
반납예정일
+
신청/예약정보
+
+
+
+
+
+
+
+
+
+
+
+ 온라인열람
+
+
+
+ 대출
+
+
+
+ 방문열람
+
+
+
+
+
+
${rent.rtnExpctDd }
+
${rent.bookLtRvStatusNm }
+
+ (${rent.rsrvDd })
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 자료 ${totCnt}건 방문열람신청이 접수되었습니다. [${readVO.rsrvId}]
+ (희망방문일자: ${readVO.hopeReqPridDtmFrom} ~ ${readVO.hopeReqPridDtmTo})
+
+
+
+ 처리에 실패하였습니다.
+ ${readVO.resultMessage } (${readVO.resultCode })
+
+
+
+
- 방문열람신청 내역은 [마이페이지 > 방문열람관리]에서 확인하실 수 있습니다.
+
- 방문열람시간은 관리자가 지정하며, 승인 후 지정된 일시에 방문하지 않는 경우, 미열람 처리됩니다.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/confirmRent.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/confirmRent.jsp
index ae3512a6..90b4b2a3 100644
--- a/src/main/webapp/WEB-INF/jsp/nlib/rent/confirmRent.jsp
+++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/confirmRent.jsp
@@ -120,6 +120,11 @@ function fn_changeInterest(masterId, onOff) {
alert("관심등록/삭제 준비중 : " + masterId + ", " + onOff);
}
+function fn_listCartItems() {
+ $("#frm").attr("action","${pageContext.request.contextPath}/cart/listCartItems.do");
+ $("#frm").submit();
+}
+
function fn_gotoDetail(masterId) {
alert("상세보기 준비중 : " + masterId);
}
@@ -305,7 +310,7 @@ $(document).ready(function() {
-
+
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/rent/insertRentItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/rent/insertRentItems.jsp
index dadf6450..c7f1402e 100644
--- a/src/main/webapp/WEB-INF/jsp/nlib/rent/insertRentItems.jsp
+++ b/src/main/webapp/WEB-INF/jsp/nlib/rent/insertRentItems.jsp
@@ -224,7 +224,11 @@ $(document).ready(function() {
${rent.rtnExpctDd }
- ${rent.bookLtRvStatusNm } (${rent.rsrvDd })
+ ${rent.bookLtRvStatusNm }
+
+ (${rent.rsrvDd })
+
+
대출신청 자료는 신청 다음날까지 방문대출이 가능합니다.
diff --git a/src/main/webapp/WEB-INF/tiles/inc-sub/footer-popup.jsp b/src/main/webapp/WEB-INF/tiles/inc-sub/footer-popup.jsp
new file mode 100644
index 00000000..31da9460
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tiles/inc-sub/footer-popup.jsp
@@ -0,0 +1,5 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
diff --git a/src/main/webapp/WEB-INF/tiles/inc-sub/header-popup.jsp b/src/main/webapp/WEB-INF/tiles/inc-sub/header-popup.jsp
new file mode 100644
index 00000000..dabfac7f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tiles/inc-sub/header-popup.jsp
@@ -0,0 +1,6 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ 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"%>
diff --git a/src/main/webapp/WEB-INF/tiles/tiles-layout-sub.jsp b/src/main/webapp/WEB-INF/tiles/tiles-layout-sub.jsp
new file mode 100644
index 00000000..47c434e1
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tiles/tiles-layout-sub.jsp
@@ -0,0 +1,9 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
+<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
+
+
+
diff --git a/src/main/webapp/WEB-INF/tiles/tiles-layout.xml b/src/main/webapp/WEB-INF/tiles/tiles-layout.xml
index c0b0bb1a..aaa7d1b7 100644
--- a/src/main/webapp/WEB-INF/tiles/tiles-layout.xml
+++ b/src/main/webapp/WEB-INF/tiles/tiles-layout.xml
@@ -19,6 +19,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+