이전 서버 체크인버전

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; package nlib.col.web;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import nlib.cmm.NlibCommonController; import nlib.cmm.NlibCommonController;
import nlib.cmm.service.CodeService; import nlib.cmm.service.CodeService;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.col.service.RentService; import nlib.col.service.RentService;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
* <pre> * <pre>
* @Class Name : RentController.java * @Class Name : RentController.java
* *
* @Description : 대출 Controller * @Description : 대출 Controller
* *
* *
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
* *
* </pre> * </pre>
* *
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용 * @ 수정일 수정자 수정내용
* @ ------------ -------- --------------------------- * @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성 * @ 2021. 7. 21. JSYOO 최초 생성
* *
* *
* @author 이씨플라자 * DIGITALSHIP JSYOO * @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21. * @since 2021. 7. 21.
* @version 1.0 * @version 1.0
* *
*/ */
@Controller @Controller
public class RentController extends NlibCommonController public class RentController extends NlibCommonController
{ {
private static final Logger log = LoggerFactory.getLogger(RentController.class); private static final Logger log = LoggerFactory.getLogger(RentController.class);
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
@Resource(name = "rentService") @Resource(name = "rentService")
private RentService rentService; private RentService rentService;
@Resource(name = "codeService") @Resource(name = "codeService")
private CodeService codeService; private CodeService codeService;
/** 대출 목록 화면을 호출한다. /** 대출 목록 화면을 호출한다.
* @param req * @param req
* @return * @return
*/ */
@RequestMapping("/rent/listRentItems.do") @RequestMapping("/rent/listRentItems.do")
public String listRentItems(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception { public String listRentItems(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception {
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
// 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM) // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
// 반환 정보 // 반환 정보
model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize); model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("pageSizeCodes", pageSizeCodes); model.addAttribute("pageSizeCodes", pageSizeCodes);
return "nlib/rent/listRentItems"; return "nlib/rent/listRentItems";
} }
/** /**
* 대출 목록을 조회한다. * 대출 목록을 조회한다.
* *
* @param req * @param req
* @return * @return
*/ */
@RequestMapping(value="/rent/listRentItemsAjax.do") @RequestMapping(value="/rent/listRentItemsAjax.do")
public ResponseEntity<String> listRentItemsAjax(HttpServletRequest req, public ResponseEntity<String> listRentItemsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> paramMap) { Authentication authentication, @RequestBody Map<String, String> paramMap) {
String searchKeyword = paramMap.get("searchKeyword"); String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
//------------------------------- //-------------------------------
// REQ VO 구성 // REQ VO 구성
//------------------------------- //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO(); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageIndex(pageIndex);
reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize);
reqVO.setPageSize(pageSize); reqVO.addInfoItem("searchKeyword", searchKeyword);
reqVO.addInfoItem("searchKeyword", searchKeyword);
// 요청
// 요청 DataApiResVO resVO = rentService.listRentItems(reqVO);
DataApiResVO resVO = rentService.listRentItems(reqVO);
//-------------------------------
//------------------------------- // JSON변환 응답 처리
// JSON변환 응답 처리 //-------------------------------
//------------------------------- // JS-GRID 페이징 처리를 포함한 응답값 처리
// JS-GRID 페이징 처리를 포함한 응답값 처리 // {data: [{...}],
// {data: [{...}], // itemsCount: 255
// itemsCount: 255 // }
// } HashMap<String, Object> retMap = new HashMap<String, Object>();
HashMap<String, Object> retMap = new HashMap<String, Object>(); retMap.put("data", resVO.getList());
retMap.put("data", resVO.getList()); retMap.put("itemsCount", resVO.getRecordTotCount());
retMap.put("itemsCount", resVO.getRecordTotCount());
return makeResponseEntityJson(retMap);
return makeResponseEntityJson(retMap); }
}
/** 대출 목록 화면을 호출한다.
/** 대출 목록 화면을 호출한다. * @param req
* @param req * @return
* @return */
*/ @RequestMapping("/rent/listCanceledRentItems.do")
@RequestMapping("/rent/listCanceledRentItems.do") public String listCanceledRentItems(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception {
public String listCanceledRentItems(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception { String searchKeyword = paramMap.get("searchKeyword");
String searchKeyword = paramMap.get("searchKeyword"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
// 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
// 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM) List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
// 반환 정보
// 반환 정보 model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageSize" , pageSize);
model.addAttribute("pageSize" , pageSize); model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("pageSizeCodes", pageSizeCodes);
model.addAttribute("pageSizeCodes", pageSizeCodes); return "nlib/rent/listCanceledRentItems";
return "nlib/rent/listCanceledRentItems"; }
}
/**
/** * 대출 취소 목록을 조회한다.
* 대출 취소 목록을 조회한다. *
* * @param req
* @param req * @return
* @return */
*/ @RequestMapping(value="/rent/listCanceledRentItemsAjax.do")
@RequestMapping(value="/rent/listCanceledRentItemsAjax.do") public ResponseEntity<String> listCanceledRentItemsAjax(HttpServletRequest req,
public ResponseEntity<String> listCanceledRentItemsAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map<String, String> paramMap) {
Authentication authentication, @RequestBody Map<String, String> paramMap) {
String searchKeyword = paramMap.get("searchKeyword");
String searchKeyword = paramMap.get("searchKeyword"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
//-------------------------------
//------------------------------- // REQ VO 구성
// REQ VO 구성 //-------------------------------
//------------------------------- DataApiReqVO reqVO = new DataApiReqVO();
DataApiReqVO reqVO = new DataApiReqVO(); reqVO.setPageIndex(pageIndex);
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.setPageSize(pageSize);
reqVO.setPageIndex(pageIndex); reqVO.addInfoItem("searchKeyword", searchKeyword);
reqVO.setPageSize(pageSize);
reqVO.addInfoItem("searchKeyword", searchKeyword); // 요청
DataApiResVO resVO = rentService.listCanceledRentItems(reqVO);
// 요청
DataApiResVO resVO = rentService.listCanceledRentItems(reqVO); //-------------------------------
// JSON변환 응답 처리
//------------------------------- //-------------------------------
// JSON변환 응답 처리 // JS-GRID 페이징 처리를 포함한 응답값 처리
//------------------------------- // {data: [{...}],
// JS-GRID 페이징 처리를 포함한 응답값 처리 // itemsCount: 255
// {data: [{...}], // }
// itemsCount: 255 HashMap<String, Object> retMap = new HashMap<String, Object>();
// } retMap.put("data", resVO.getList());
HashMap<String, Object> retMap = new HashMap<String, Object>(); retMap.put("itemsCount", resVO.getRecordTotCount());
retMap.put("data", resVO.getList());
retMap.put("itemsCount", resVO.getRecordTotCount()); return makeResponseEntityJson(retMap);
}
return makeResponseEntityJson(retMap);
} /** 반납 연기 화면을 호출한다.
* @param req
/** 반납 연기 화면을 호출한다. * @return
* @param req */
* @return @RequestMapping("/rent/listPostpones.do")
*/ public String listPostpones(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception {
@RequestMapping("/rent/listPostpones.do") String searchKeyword = paramMap.get("searchKeyword");
public String listPostpones(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception { String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String searchKeyword = paramMap.get("searchKeyword"); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
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");
// 페이징 사이즈 코드 목록 조회 (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("pageIndex" , pageIndex); model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("pageSize" , pageSize); model.addAttribute("pageSizeCodes", pageSizeCodes);
model.addAttribute("searchKeyword", searchKeyword); return "nlib/rent/listPostpones";
model.addAttribute("pageSizeCodes", pageSizeCodes); }
return "nlib/rent/listPostpones";
} /**
* 반납 연기 목록을 조회한다.
/** *
* 반납 연기 목록을 조회한다. * @param req
* * @return
* @param req */
* @return @RequestMapping(value="/rent/listPostponesAjax.do")
*/ public ResponseEntity<String> listPostponesAjax(HttpServletRequest req,
@RequestMapping(value="/rent/listPostponesAjax.do") Authentication authentication, @RequestBody Map<String, String> paramMap) {
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 searchKeyword = paramMap.get("searchKeyword"); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); //-------------------------------
// REQ VO 구성
//------------------------------- //-------------------------------
// REQ VO 구성 DataApiReqVO reqVO = new DataApiReqVO();
//------------------------------- reqVO.setPageIndex(pageIndex);
DataApiReqVO reqVO = new DataApiReqVO(); reqVO.setPageSize(pageSize);
reqVO.setAuthKey(createAuthKey(req, authentication)); reqVO.addInfoItem("searchKeyword", searchKeyword);
reqVO.setPageIndex(pageIndex);
reqVO.setPageSize(pageSize); // 요청
reqVO.addInfoItem("searchKeyword", searchKeyword); DataApiResVO resVO = rentService.listPostpones(reqVO);
// 요청 //-------------------------------
DataApiResVO resVO = rentService.listPostpones(reqVO); // JSON변환 응답 처리
//-------------------------------
//------------------------------- // JS-GRID 페이징 처리를 포함한 응답값 처리
// JSON변환 응답 처리 // {data: [{...}],
//------------------------------- // itemsCount: 255
// JS-GRID 페이징 처리를 포함한 응답값 처리 // }
// {data: [{...}], HashMap<String, Object> retMap = new HashMap<String, Object>();
// itemsCount: 255 retMap.put("data", resVO.getList());
// } retMap.put("itemsCount", resVO.getRecordTotCount());
HashMap<String, Object> retMap = new HashMap<String, Object>();
retMap.put("data", resVO.getList()); return makeResponseEntityJson(retMap);
retMap.put("itemsCount", resVO.getRecordTotCount()); }
return makeResponseEntityJson(retMap); public ModelMap listCanceledRentItems(HttpServletRequest req) {
} return null;
}
public ModelMap listCanceledRentItems(HttpServletRequest req) {
return null; /** 대출 예약 화면을 호출한다.
} * @param req
* @return
/** 대출 예약 화면을 호출한다. */
* @param req @RequestMapping("/rent/listReservations.do")
* @return public String listReservations(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception {
*/ String searchKeyword = paramMap.get("searchKeyword");
@RequestMapping("/rent/listReservations.do") String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
public String listReservations(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception { String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
// 페이징 사이즈 코드 목록 조회 (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("pageIndex" , pageIndex); model.addAttribute("pageSizeCodes", pageSizeCodes);
model.addAttribute("pageSize" , pageSize); return "nlib/rent/listReservations";
model.addAttribute("searchKeyword", searchKeyword); }
model.addAttribute("pageSizeCodes", pageSizeCodes);
return "nlib/rent/listReservations"; /**
} * 대출 예약 목록을 조회한다.
*
/** * @param req
* 대출 예약 목록을 조회한다. * @return
* */
* @param req @RequestMapping(value="/rent/listReservationsAjax.do")
* @return public ResponseEntity<String> listReservationsAjax(HttpServletRequest req,
*/ Authentication authentication, @RequestBody Map<String, String> paramMap) {
@RequestMapping(value="/rent/listReservationsAjax.do")
public ResponseEntity<String> listReservationsAjax(HttpServletRequest req, String searchKeyword = paramMap.get("searchKeyword");
Authentication authentication, @RequestBody Map<String, String> paramMap) { String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
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();
// REQ VO 구성 reqVO.setPageIndex(pageIndex);
//------------------------------- reqVO.setPageSize(pageSize);
DataApiReqVO reqVO = new DataApiReqVO(); reqVO.addInfoItem("searchKeyword", searchKeyword);
reqVO.setAuthKey(createAuthKey(req, authentication));
reqVO.setPageIndex(pageIndex); // 요청
reqVO.setPageSize(pageSize); DataApiResVO resVO = rentService.listReservations(reqVO);
reqVO.addInfoItem("searchKeyword", searchKeyword);
//-------------------------------
// 요청 // JSON변환 응답 처리
DataApiResVO resVO = rentService.listReservations(reqVO); //-------------------------------
// JS-GRID 페이징 처리를 포함한 응답값 처리
//------------------------------- // {data: [{...}],
// JSON변환 응답 처리 // itemsCount: 255
//------------------------------- // }
// JS-GRID 페이징 처리를 포함한 응답값 처리 HashMap<String, Object> retMap = new HashMap<String, Object>();
// {data: [{...}], retMap.put("data", resVO.getList());
// itemsCount: 255 retMap.put("itemsCount", resVO.getRecordTotCount());
// }
HashMap<String, Object> retMap = new HashMap<String, Object>(); return makeResponseEntityJson(retMap);
retMap.put("data", resVO.getList()); }
retMap.put("itemsCount", resVO.getRecordTotCount());
public ModelMap cancelReservations(HttpServletRequest req) {
return makeResponseEntityJson(retMap); return null;
} }
public ModelMap cancelReservations(HttpServletRequest req) { /**
return null; * 열람 요청 화면을 호출한다.
} *
* @param req
/** * @return
* 열람 요청 화면을 호출한다. */
* @RequestMapping("/rent/listRequestsForViewingItem.do")
* @param req public String listRequestsForViewingItem(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception {
* @return String searchKeyword = paramMap.get("searchKeyword");
*/ String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@RequestMapping("/rent/listRequestsForViewingItem.do") String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
public String listRequestsForViewingItem(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) throws Exception {
String searchKeyword = paramMap.get("searchKeyword"); // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
// 반환 정보
// 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM) model.addAttribute("pageIndex" , pageIndex);
List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword);
// 반환 정보 model.addAttribute("pageSizeCodes", pageSizeCodes);
model.addAttribute("pageIndex" , pageIndex); return "nlib/rent/listRequestsForViewingItem";
model.addAttribute("pageSize" , pageSize); }
model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("pageSizeCodes", pageSizeCodes); /**
return "nlib/rent/listRequestsForViewingItem"; * 열람 요청 목록을 조회한다.
} *
* @param req
/** * @return
* 열람 요청 목록을 조회한다. */
* @RequestMapping(value="/rent/listRequestsForViewingItemAjax.do")
* @param req public ResponseEntity<String> listRequestsForViewingItemAjax(HttpServletRequest req,
* @return Authentication authentication, @RequestBody Map<String, String> paramMap) {
*/
@RequestMapping(value="/rent/listRequestsForViewingItemAjax.do") String searchKeyword = paramMap.get("searchKeyword");
public ResponseEntity<String> listRequestsForViewingItemAjax(HttpServletRequest req, String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
Authentication authentication, @RequestBody Map<String, String> paramMap) { String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
String searchKeyword = paramMap.get("searchKeyword"); //-------------------------------
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); // REQ VO 구성
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); //-------------------------------
DataApiReqVO reqVO = new DataApiReqVO();
//------------------------------- reqVO.setPageIndex(pageIndex);
// REQ VO 구성 reqVO.setPageSize(pageSize);
//------------------------------- reqVO.addInfoItem("searchKeyword", searchKeyword);
DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); // 요청
reqVO.setPageIndex(pageIndex); DataApiResVO resVO = rentService.listRequestsForViewingItem(reqVO);
reqVO.setPageSize(pageSize);
reqVO.addInfoItem("searchKeyword", searchKeyword); //-------------------------------
// JSON변환 응답 처리
// 요청 //-------------------------------
DataApiResVO resVO = rentService.listRequestsForViewingItem(reqVO); // JS-GRID 페이징 처리를 포함한 응답값 처리
// {data: [{...}],
//------------------------------- // itemsCount: 255
// JSON변환 응답 처리 // }
//------------------------------- HashMap<String, Object> retMap = new HashMap<String, Object>();
// JS-GRID 페이징 처리를 포함한 응답값 처리 retMap.put("data", resVO.getList());
// {data: [{...}], retMap.put("itemsCount", resVO.getRecordTotCount());
// itemsCount: 255
// } return makeResponseEntityJson(retMap);
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) {
* @param req
* @return // 목록 이동시 전달할 매개변수
*/ String searchKeyword = paramMap.get("searchKeyword");
@RequestMapping("/rent/selectRequestInfoForViewingItem.do") String pageIndex = paramMap.get("pageIndex");
public String selectRequestInfoForViewingItem(HttpServletRequest req, Authentication authentication, @RequestParam Map<String, String> paramMap, ModelMap model) { String pageSize = paramMap.get("pageSize");
String message = paramMap.get("message");
// 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword"); // 게시물 번호
String pageIndex = paramMap.get("pageIndex"); String articleNo = paramMap.get("articleNo");
String pageSize = paramMap.get("pageSize");
String message = paramMap.get("message"); log.debug("selectRequestInfoForViewingItem > pageIndex = " + pageIndex);
log.debug("selectRequestInfoForViewingItem > pageSize = " + pageSize);
// 게시물 번호 log.debug("selectRequestInfoForViewingItem > searchKeyword = " + searchKeyword);
String articleNo = paramMap.get("articleNo"); log.debug("selectRequestInfoForViewingItem > articleNo = " + articleNo);
log.debug("selectRequestInfoForViewingItem > message = " + message);
log.debug("selectRequestInfoForViewingItem > pageIndex = " + pageIndex);
log.debug("selectRequestInfoForViewingItem > pageSize = " + pageSize); //-------------------------------
log.debug("selectRequestInfoForViewingItem > searchKeyword = " + searchKeyword); // REQ VO 구성
log.debug("selectRequestInfoForViewingItem > articleNo = " + articleNo); //-------------------------------
log.debug("selectRequestInfoForViewingItem > message = " + message); DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setPageIndex(pageIndex);
//------------------------------- reqVO.setPageSize(pageSize);
// REQ VO 구성 reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
//------------------------------- reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setAuthKey(createAuthKey(req, authentication)); // 요청
reqVO.setPageIndex(pageIndex); DataApiResVO resVO = rentService.selectRequestInfoForViewingItem(reqVO);
reqVO.setPageSize(pageSize);
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID // 반환 정보
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 model.addAttribute("articleNo" , articleNo);
model.addAttribute("article" , resVO.getInfo()); // 게시물 상세
// 요청 model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보
DataApiResVO resVO = rentService.selectRequestInfoForViewingItem(reqVO); model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보
model.addAttribute("message" , message);
// 반환 정보 model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("articleNo" , articleNo); model.addAttribute("pageSize" , pageSize);
model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보
model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보 return "nlib/rent/selectRequestInfoForViewingItem";
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; package nlib.mail;
import javax.mail.internet.InternetAddress; import java.io.Reader;
import javax.mail.internet.MimeMessage; import java.util.Properties;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.mail.internet.InternetAddress;
import org.springframework.beans.factory.annotation.Autowired; import javax.mail.internet.MimeMessage;
import org.springframework.mail.javamail.JavaMailSender; import javax.mail.internet.MimeMessage.RecipientType;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component; import org.apache.ibatis.io.Resources;
import org.springframework.beans.factory.annotation.Autowired;
import nlib.mail.service.EmailVO; import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
@Component import org.springframework.stereotype.Component;
public class EmailSender {
import nlib.mail.service.EmailVO;
@Autowired
protected JavaMailSender mailSender;
@Component
public void SendEmail(EmailVO email) throws Exception { public class EmailSender {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); @Autowired
helper.setText(email.getContent(), true); //***HTML 적용 protected JavaMailSender mailSender;
helper.setTo(email.getReciver());
helper.setSubject(email.getSubject()); public void SendEmail(EmailVO email) throws Exception {
helper.setFrom("teachteam02@gmail.com","한국문화원연합회"); String resource = "egovframework/egovProps/globals.properties";
Properties properties = new Properties();
/* msg.setSubject(email.getSubject());
msg.setText(email.getContent(),"text/html"); Reader reader = Resources.getResourceAsReader(resource);
msg.setText properties.load(reader);
msg.setRecipient(RecipientType.TO , new InternetAddress(email.getReciver()));
*/ String senderName = properties.getProperty("system.notification.email.sender.name");
mailSender.send(msg); 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"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <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" 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"> 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">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" <property name="locations">
p:host="smtp.gmail.com" <list>
p:port="587" <value>classpath:/egovframework/egovProps/globals.properties</value>
p:protocol="smtp" value>file:/product/jeus/egovProps/globals.properties</value
p:username="teachteam02@gmail.com" </list>
p:password="wltlrtkdjq11$$"> </property>
<property name="javaMailProperties"> </bean> -->
<props> <!-- 이메일 발송 -->
<prop key="mail.smtp.starttls.enable">true</prop> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
<prop key="mail.smtp.auth">true </prop> p:host="smtp.gmail.com"
<prop key="mail.debug">true</prop> p:port="587"
<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop> p:protocol="smtp"
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop> p:username="${system.notification.email.sender}"
</props> p:password="${system.notification.email.sender.password}">
</property> <property name="javaMailProperties">
</bean> <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> </beans>