diff --git a/src/main/java/nlib/col/web/RentController.java b/src/main/java/nlib/col/web/RentController.java
index 7458c6b4..66eebb92 100644
--- a/src/main/java/nlib/col/web/RentController.java
+++ b/src/main/java/nlib/col/web/RentController.java
@@ -1,428 +1,422 @@
-
-package nlib.col.web;
-
-import java.util.HashMap;
-import java.util.List;
-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) throws Exception {
- String searchKeyword = paramMap.get("searchKeyword");
- String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
- String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
-
- // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
- List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
-
- // 반환 정보
- model.addAttribute("pageIndex" , pageIndex);
- model.addAttribute("pageSize" , pageSize);
- model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", pageSizeCodes);
- 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) throws Exception {
- String searchKeyword = paramMap.get("searchKeyword");
- String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
- String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
-
- // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
- List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
-
- // 반환 정보
- model.addAttribute("pageIndex" , pageIndex);
- model.addAttribute("pageSize" , pageSize);
- model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", pageSizeCodes);
- 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) throws Exception {
- String searchKeyword = paramMap.get("searchKeyword");
- String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
- String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
-
- // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
- List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
-
- // 반환 정보
- model.addAttribute("pageIndex" , pageIndex);
- model.addAttribute("pageSize" , pageSize);
- model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", pageSizeCodes);
- 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) throws Exception {
- String searchKeyword = paramMap.get("searchKeyword");
- String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
- String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
-
- // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
- List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
-
- // 반환 정보
- model.addAttribute("pageIndex" , pageIndex);
- model.addAttribute("pageSize" , pageSize);
- model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", pageSizeCodes);
- 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) throws Exception {
- String searchKeyword = paramMap.get("searchKeyword");
- String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
- String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
-
- // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
- List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
-
- // 반환 정보
- model.addAttribute("pageIndex" , pageIndex);
- model.addAttribute("pageSize" , pageSize);
- model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", pageSizeCodes);
- 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";
- }
+
+package nlib.col.web;
+
+import java.util.HashMap;
+import java.util.List;
+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) throws Exception {
+ String searchKeyword = paramMap.get("searchKeyword");
+ String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
+ String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
+
+ // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
+
+ // 반환 정보
+ model.addAttribute("pageIndex" , pageIndex);
+ model.addAttribute("pageSize" , pageSize);
+ model.addAttribute("searchKeyword", searchKeyword);
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ 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.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) throws Exception {
+ String searchKeyword = paramMap.get("searchKeyword");
+ String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
+ String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
+
+ // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
+
+ // 반환 정보
+ model.addAttribute("pageIndex" , pageIndex);
+ model.addAttribute("pageSize" , pageSize);
+ model.addAttribute("searchKeyword", searchKeyword);
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ 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.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) throws Exception {
+ String searchKeyword = paramMap.get("searchKeyword");
+ String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
+ String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
+
+ // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
+
+ // 반환 정보
+ model.addAttribute("pageIndex" , pageIndex);
+ model.addAttribute("pageSize" , pageSize);
+ model.addAttribute("searchKeyword", searchKeyword);
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ 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.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) throws Exception {
+ String searchKeyword = paramMap.get("searchKeyword");
+ String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
+ String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
+
+ // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
+
+ // 반환 정보
+ model.addAttribute("pageIndex" , pageIndex);
+ model.addAttribute("pageSize" , pageSize);
+ model.addAttribute("searchKeyword", searchKeyword);
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ 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.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) throws Exception {
+ String searchKeyword = paramMap.get("searchKeyword");
+ String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
+ String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
+
+ // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
+
+ // 반환 정보
+ model.addAttribute("pageIndex" , pageIndex);
+ model.addAttribute("pageSize" , pageSize);
+ model.addAttribute("searchKeyword", searchKeyword);
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ 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.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.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/mail/EmailSender.java b/src/main/java/nlib/mail/EmailSender.java
index cf814ec9..10f06c71 100644
--- a/src/main/java/nlib/mail/EmailSender.java
+++ b/src/main/java/nlib/mail/EmailSender.java
@@ -1,36 +1,45 @@
-package nlib.mail;
-
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMessage.RecipientType;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.mail.javamail.MimeMessageHelper;
-import org.springframework.stereotype.Component;
-
-import nlib.mail.service.EmailVO;
-
-
-@Component
-public class EmailSender {
-
- @Autowired
- protected JavaMailSender mailSender;
-
- public void SendEmail(EmailVO email) throws Exception {
- MimeMessage msg = mailSender.createMimeMessage();
- MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
- helper.setText(email.getContent(), true); //***HTML 적용
- helper.setTo(email.getReciver());
- helper.setSubject(email.getSubject());
- helper.setFrom("teachteam02@gmail.com","한국문화원연합회");
-
- /* msg.setSubject(email.getSubject());
- msg.setText(email.getContent(),"text/html");
- msg.setText
- msg.setRecipient(RecipientType.TO , new InternetAddress(email.getReciver()));
- */
- mailSender.send(msg);
- }
+package nlib.mail;
+
+import java.io.Reader;
+import java.util.Properties;
+
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMessage.RecipientType;
+
+import org.apache.ibatis.io.Resources;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Component;
+
+import nlib.mail.service.EmailVO;
+
+
+@Component
+public class EmailSender {
+
+ @Autowired
+ protected JavaMailSender mailSender;
+
+ public void SendEmail(EmailVO email) throws Exception {
+ String resource = "egovframework/egovProps/globals.properties";
+ Properties properties = new Properties();
+
+ Reader reader = Resources.getResourceAsReader(resource);
+ properties.load(reader);
+
+ String senderName = properties.getProperty("system.notification.email.sender.name");
+ String sender = properties.getProperty("system.notification.email.sender");
+
+ MimeMessage msg = mailSender.createMimeMessage();
+ MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
+ helper.setText(email.getContent(), true); //***HTML 적용
+ helper.setTo(email.getReciver());
+ helper.setSubject(email.getSubject());
+ helper.setFrom(sender,senderName);
+
+ mailSender.send(msg);
+ }
}
\ No newline at end of file
diff --git a/src/main/resources/egovframework/spring/context-mail.xml b/src/main/resources/egovframework/spring/context-mail.xml
index ec88685b..de49cfb1 100644
--- a/src/main/resources/egovframework/spring/context-mail.xml
+++ b/src/main/resources/egovframework/spring/context-mail.xml
@@ -1,23 +1,31 @@
-
-
-
-
-
-
-
- true
- true
- true
- smtp.gmail.com
- TLSv1.2
-
-
-
+
+
+
+
+
+
+
+
+ true
+ true
+ true
+ smtp.gmail.com
+ TLSv1.2
+
+
+
\ No newline at end of file