이전 서버 체크인버전

This commit is contained in:
KNKIM 2021-09-15 16:51:15 +09:00
parent 5eefce1852
commit 8835fb255f
3 changed files with 495 additions and 484 deletions

View File

@ -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;
/**
* <pre>
* @Class Name : RentController.java
*
* @Description : 대출 Controller
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 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<String, String> 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<HashMap<String,String>> 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<String> listRentItemsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listCanceledRentItemsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listPostponesAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listReservationsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listRequestsForViewingItemAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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;
/**
* <pre>
* @Class Name : RentController.java
*
* @Description : 대출 Controller
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 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<String, String> 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<HashMap<String,String>> 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<String> listRentItemsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listCanceledRentItemsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listPostponesAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listReservationsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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<HashMap<String,String>> 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<String> listRequestsForViewingItemAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> 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<String, Object> retMap = new HashMap<String, Object>();
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<String, String> 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";
}
}

View File

@ -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);
}
}

View File

@ -1,23 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 이메일 발송 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:host="smtp.gmail.com"
p:port="587"
p:protocol="smtp"
p:username="teachteam02@gmail.com"
p:password="wltlrtkdjq11$$">
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.auth">true </prop>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop>
</props>
</property>
</bean>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- <bean id="egov.propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/egovframework/egovProps/globals.properties</value>
value>file:/product/jeus/egovProps/globals.properties</value
</list>
</property>
</bean> -->
<!-- 이메일 발송 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:host="smtp.gmail.com"
p:port="587"
p:protocol="smtp"
p:username="${system.notification.email.sender}"
p:password="${system.notification.email.sender.password}">
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.auth">true </prop>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop>
</props>
</property>
</bean>
</beans>