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