대출 목록

This commit is contained in:
KNKIM 2021-10-14 16:44:03 +09:00
parent cabf3521ff
commit 53f13b0f4a
9 changed files with 786 additions and 557 deletions

View File

@ -107,13 +107,22 @@ public class CollectionVO extends PagingVO {
//--------------------------------------------
// 기타 연관기능 항목
//--------------------------------------------
private int mbInterestId; /* 관심 id */
private String mbInfoId; /* 회원 id */
private String mbCartId; /* 카트ID */
private String cartTypeCd; /* 카트유형코드 */
private String rsrvId; /* 카트관련대출예약ID */
private String reqId; /* 카트관련열람예약ID */
private String cartProcDivCd; /* 카트처리구분코드 */
private int mbInterestId; /* 관심 id */
private String mbInfoId; /* 회원 id */
private String mbCartId; /* 카트ID */
private String cartTypeCd; /* 카트유형코드 */
private String rsrvId; /* 카트관련대출예약ID */
private String reqId; /* 카트관련열람예약ID */
private String cartProcDivCd; /* 카트처리구분코드 */
//--------------------------------------------
// 대출관련
//--------------------------------------------
private String rsrvDd; /* 대출신청예약일자 */
private String bookLtRvStatusCd; /* 대출상태구분코드 */
private String bookLtRvStatusNm; /* 대출상태구분코드명 */
private String rsrvExpctDd; /* 대출예약만료일자 */
private String rtnDd; /* 반납일자 */
//--------------------------------------------
// 기타 처리결과 항목
@ -642,5 +651,45 @@ public class CollectionVO extends PagingVO {
this.selItems = selItems;
}
public String getBookLtRvStatusCd() {
return bookLtRvStatusCd;
}
public void setBookLtRvStatusCd(String bookLtRvStatusCd) {
this.bookLtRvStatusCd = bookLtRvStatusCd;
}
public String getRsrvDd() {
return rsrvDd;
}
public void setRsrvDd(String rsrvDd) {
this.rsrvDd = rsrvDd;
}
public String getBookLtRvStatusNm() {
return bookLtRvStatusNm;
}
public void setBookLtRvStatusNm(String bookLtRvStatusNm) {
this.bookLtRvStatusNm = bookLtRvStatusNm;
}
public String getRsrvExpctDd() {
return rsrvExpctDd;
}
public void setRsrvExpctDd(String rsrvExpctDd) {
this.rsrvExpctDd = rsrvExpctDd;
}
public String getRtnDd() {
return rtnDd;
}
public void setRtnDd(String rtnDd) {
this.rtnDd = rtnDd;
}
}

View File

@ -1,48 +1,60 @@
package nlib.col.service;
import java.util.HashMap;
import java.util.List;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
public interface RentService
{
/**
* 사용자의 대출건이 존재하는 문화원 정보 목록을 조회한다.
*
* @param mbInfoId
* @return
*/
public List<HashMap<String, String>> listRentMngOrg(String mbInfoId);
/**
* 대출 목록 조회한다.
*
* @param reqVO
* @param searchVO
* @return
*/
public DataApiResVO listRentItems(DataApiReqVO reqVO);
/**
* 반납 연기 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listPostpones(DataApiReqVO reqVO);
/**
* 대출 취소 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO);
/**
* 대출 예약 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listReservations(DataApiReqVO reqVO);
public DataApiResVO cancelReservations(DataApiReqVO reqVO);
public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO);
public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO);
public DataApiResVO listRentItems(CollectionVO searchVO);
//
// /**
// * 반납 연기 목록을 조회한다.
// *
// * @param reqVO
// * @return
// */
// public DataApiResVO listPostpones(DataApiReqVO reqVO);
//
// /**
// * 대출 취소 목록을 조회한다.
// *
// * @param reqVO
// * @return
// */
// public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO);
//
// /**
// * 대출 예약 목록을 조회한다.
// *
// * @param reqVO
// * @return
// */
// public DataApiResVO listReservations(DataApiReqVO reqVO);
//
// public DataApiResVO cancelReservations(DataApiReqVO reqVO);
//
// public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO);
//
// public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO);
}

View File

@ -1,89 +1,13 @@
package nlib.col.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
@Repository("rentDAO")
public class RentDAO extends DataApi
{
private static final Logger log = LoggerFactory.getLogger(RentDAO.class);
/**
* 자원의 URI
*/
public static final String RESOURCE_URI = "/uac/service/col/rent";
/**
* 대출 목록 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listRentItems(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 반납 연기 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listPostpones(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 대출 취소 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 대출 예약 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listReservations(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
return null;
}
/**
* 열람 요청 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/read/list");
return request(reqVO);
}
public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/read");
return request(reqVO);
}
@Mapper("rentDAO")
public interface RentDAO {
public List<HashMap<String, String>> listRentMngOrg(String mbInfoId);
}

View File

@ -0,0 +1,89 @@
package nlib.col.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
@Repository("rentDAO")
public class RentDAO extends DataApi
{
private static final Logger log = LoggerFactory.getLogger(RentDAO.class);
/**
* 자원의 URI
*/
public static final String RESOURCE_URI = "/uac/service/col/rent";
/**
* 대출 목록 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listRentItems(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 반납 연기 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listPostpones(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 대출 취소 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 대출 예약 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listReservations(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
return null;
}
/**
* 열람 요청 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/read/list");
return request(reqVO);
}
public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/read");
return request(reqVO);
}
}

View File

@ -1,14 +1,22 @@
package nlib.col.service.impl;
import java.util.HashMap;
import java.util.List;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service;
import nlib.col.service.CollectionVO;
import nlib.col.service.RentService;
import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
import nlib.restful.service.XmlConverter;
import nlib.util.StringUtil;
@Service("rentService")
public class RentServiceImpl implements RentService
@ -18,65 +26,100 @@ public class RentServiceImpl implements RentService
@Resource(name="rentDAO")
private RentDAO rentDAO;
/*
/** RESTFul API 송수신 모듈 */
@Resource(name = "dataApi")
private DataApi dataApi;
/**
* 사용자의 대출건이 존재하는 문화원 정보 목록을 조회한다.
*
* @param mbInfoId
* @return
*/
public List<HashMap<String, String>> listRentMngOrg(String mbInfoId) {
return rentDAO.listRentMngOrg(mbInfoId);
}
/**
* 대출 목록 조회한다.
*
* (non-Javadoc)
* @see nlib.col.service.RentService#listRentItems(nlib.restful.service.DataApiReqVO)
* @param searchVO
* @return
*/
public DataApiResVO listRentItems(DataApiReqVO reqVO) {
return rentDAO.listRentItems(reqVO);
}
public DataApiResVO listRentItems(CollectionVO searchVO) {
/*
* 반납 연기 목록을 조회한다.
*
* (non-Javadoc)
* @see nlib.col.service.RentService#listPostpones(nlib.restful.service.DataApiReqVO)
*/
public DataApiResVO listPostpones(DataApiReqVO reqVO) {
return rentDAO.listPostpones(reqVO);
}
/*
* 대출 취소 목록을 조회한다.
*
* (non-Javadoc)
* @see nlib.col.service.RentService#listCanceledRentItems(nlib.restful.service.DataApiReqVO)
*/
public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
return rentDAO.listCanceledRentItems(reqVO);
}
if(searchVO == null || StringUtil.isEmpty(searchVO.getMbInfoId())) {
log.error("listRentItems > 대출 목록 조회 요청 정보가 없습니다.");
return null;
}
/*
* 대출 예약 목록을 조회한다.
*
* (non-Javadoc)
* @see nlib.col.service.RentService#listReservations(nlib.restful.service.DataApiReqVO)
*/
public DataApiResVO listReservations(DataApiReqVO reqVO) {
return rentDAO.listReservations(reqVO);
}
public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
return null;
}
/*
* 열람 요청 목록을 조회한다.
*
* (non-Javadoc)
* @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO)
*/
public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
return rentDAO.listRequestsForViewingItem(reqVO);
}
/*
* 열람 요청 상세 조회한다.
*
* (non-Javadoc)
* @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO)
*/
public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
return rentDAO.selectRequestInfoForViewingItem(reqVO);
// API 호출
/*
mngOrgCd 문화원코드
mbInfoId 사용자아이디
rows 페이지크기(페이지당최대표출건수)
page 페이지번호
bookLtRvStatusCd 대출상태구분코드("": 전체, A:신청, B:대출준비완료, C:취소, W:대출중, R0:정상반납, R1:연체반납 P:연체)
*/
DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/rent/listRentItem", HttpMethod.GET);
reqVO.setMbInfoId(searchVO.getMbInfoId()); // 통신 , 암호화되어 송수신됨
reqVO.setPageSize(searchVO.getPageSize());
reqVO.setPageIndex(searchVO.getPageIndex());
reqVO.putInfoItem("mngOrgCd", searchVO.getMngOrgCd());
reqVO.putInfoItem("bookLtRvStatusCd", searchVO.getBookLtRvStatusCd());
return dataApi.request(reqVO);
}
//
// /*
// * 반납 연기 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listPostpones(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listPostpones(DataApiReqVO reqVO) {
// return rentDAO.listPostpones(reqVO);
// }
// /*
// * 대출 취소 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listCanceledRentItems(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
// return rentDAO.listCanceledRentItems(reqVO);
// }
//
// /*
// * 대출 예약 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listReservations(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listReservations(DataApiReqVO reqVO) {
// return rentDAO.listReservations(reqVO);
// }
//
// public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
// return null;
// }
//
// /*
// * 열람 요청 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
// return rentDAO.listRequestsForViewingItem(reqVO);
// }
// /*
// * 열람 요청 상세 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
// return rentDAO.selectRequestInfoForViewingItem(reqVO);
// }
}

View File

@ -1,6 +1,7 @@
package nlib.col.web;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -21,6 +22,7 @@ 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.CollectionVO;
import nlib.col.service.RentService;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
@ -42,6 +44,7 @@ import nlib.util.StringUtil;
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성
* @ 2021.10. 14. KNKIM 대출목록 API방식 변경 화면설계서 적용 개발
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
@ -62,26 +65,37 @@ public class RentController extends NlibCommonController
private CodeService codeService;
/** 대출 목록 화면을 호출한다.
* @param req
/**
* 대출 목록 화면을 호출한다.
*
* @param request
* @param searchVO
* @param model
* @param message
* @return
* @throws Exception
*/
@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);
public String listRentItems(HttpServletRequest request, CollectionVO searchVO, ModelMap model, String message) throws Exception {
// 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
List<HashMap<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
String mbInfoId = getMbInfoId(request);
// 반환 정보
model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword);
model.addAttribute("pageSizeCodes", pageSizeCodes);
return "nlib/rent/listRentItems";
}
if(StringUtil.isEmpty(mbInfoId)) {
message = "로그인하신 후, 이용바랍니다.";
model.addAttribute("message", message);
return "nlib/rent/listRentItems";
}
// 대출자료 문화원 목록 조회
List<HashMap<String, String>> rentMngOrgList = rentService.listRentMngOrg(mbInfoId);
model.addAttribute("bookLtRvStatusCd", searchVO.getBookLtRvStatusCd());
model.addAttribute("pageSize" , searchVO.getPageSize());
model.addAttribute("pageSize" , searchVO.getPageSize());
model.addAttribute("pageIndex" , searchVO.getPageIndex());
model.addAttribute("message" , message);
return "nlib/rent/listRentItems";
}
/**
* 대출 목록을 조회한다.
@ -90,334 +104,364 @@ public class RentController extends NlibCommonController
* @return
*/
@RequestMapping(value="/rent/listRentItemsAjax.do")
public ResponseEntity<String> listRentItemsAjax(HttpServletRequest req,
Authentication authentication, @RequestBody Map<String, String> paramMap) {
public ResponseEntity<String> listRentItemsAjax(
HttpServletRequest request,
@RequestBody CollectionVO searchVO) {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE);
String message = null;
String mbInfoId = getMbInfoId(request);
//-------------------------------
// REQ VO 구성
//-------------------------------
DataApiReqVO reqVO = new DataApiReqVO();
reqVO.setPageIndex(pageIndex);
reqVO.setPageSize(pageSize);
reqVO.putInfoItem("searchKeyword", searchKeyword);
// 요청
DataApiResVO resVO = rentService.listRentItems(reqVO);
if(StringUtil.isEmpty(mbInfoId)) {
message = "로그인하신 후, 이용바랍니다.";
}
//-------------------------------
// JSON변환 응답 처리
//-------------------------------
// JS-GRID 페이징 처리를 포함한 응답값 처리
// {data: [{...}],
// itemsCount: 255
// }
HashMap<String, Object> retMap = new HashMap<String, Object>();
retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
retMap.put("itemsCount", resVO.getRecordTotCount());
// JS-GRID 페이징 처리를 포함한 응답값 처리
// {data: [{...}],
// itemsCount: 255
// }
HashMap<String, Object> retMap = new HashMap<String, Object>();
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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
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.putInfoItem("boardNo", "QNA"); // 게시판ID
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
// 요청
DataApiResVO resVO = rentService.selectRequestInfoForViewingItem(reqVO);
// 반환 정보
model.addAttribute("articleNo" , articleNo);
model.addAttribute("article" , resVO.getInfo()); // 게시물 상세
model.addAttribute("preArticle" , resVO.getList(DataApiVO.XML_EL_NAME_RECORD).get(0)); // 이전글 정보
model.addAttribute("nextArticle" , resVO.getList(DataApiVO.XML_EL_NAME_RECORD).get(1)); // 다음글 정보
model.addAttribute("message" , message);
model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword);
return "nlib/rent/selectRequestInfoForViewingItem";
if(StringUtil.isNotEmpty(mbInfoId)) {
// 로그인 사용자 정보 설정
searchVO.setMbInfoId(mbInfoId);
// TO-DO : DDDDDDDDDDDDDDDDDDDddd
// 기본값은 전체이나, API 반영전까지 문화원 코드 전송
// if(StringUtil.isEmpty(searchVO.getMngOrgCd())) searchVO.setMngOrgCd(getCurCouncilCd(request));
searchVO.setMngOrgCd("KCCF");
// 조회
DataApiResVO resVO = rentService.listRentItems(searchVO);
retMap.put("data" , resVO.getRecordList());
retMap.put("itemsCount", resVO.getRecordTotCount());
retMap.put("pageIndex" , resVO.getPageIndex());
} else {
retMap.put("message" , "로그인하신 후, 이용바랍니다.");
}
return makeResponseEntityJson(retMap);
}
//
// /** 대출 목록 화면을 호출한다.
// * @param req
// * @return
// */
// @RequestMapping("/rent/listRentItems_BK.do")
// public String listRentItems_BK(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("/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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
// 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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
// 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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
// 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.putInfoItem("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(DataApiVO.XML_EL_NAME_RECORD));
// 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.putInfoItem("boardNo", "QNA"); // 게시판ID
// reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
//
// // 요청
// DataApiResVO resVO = rentService.selectRequestInfoForViewingItem(reqVO);
//
// // 반환 정보
// model.addAttribute("articleNo" , articleNo);
// model.addAttribute("article" , resVO.getInfo()); // 게시물 상세
// model.addAttribute("preArticle" , resVO.getList(DataApiVO.XML_EL_NAME_RECORD).get(0)); // 이전글 정보
// model.addAttribute("nextArticle" , resVO.getList(DataApiVO.XML_EL_NAME_RECORD).get(1)); // 다음글 정보
// model.addAttribute("message" , message);
// model.addAttribute("pageIndex" , pageIndex);
// model.addAttribute("pageSize" , pageSize);
// model.addAttribute("searchKeyword", searchKeyword);
//
// return "nlib/rent/selectRequestInfoForViewingItem";
// }
}

View File

@ -141,6 +141,24 @@ public class DataApiVO {
return listMap.get(listName);
}
public List<HashMap<String, String>> getRecordList() {
return getList(XML_EL_NAME_RECORD);
}
public<T> List<T> getRecordList(Class<T> clazz) {
List<HashMap<String, String>> list = getList(XML_EL_NAME_RECORD);
if(list == null || list.size() < 1) return null;
List<T> retList = new ArrayList<T>();
for(HashMap<String, String> map : list) {
T vo = (T)XmlConverter.convertMapToObject(map, clazz);
retList.add(vo);
}
return retList;
}
public void setList(String listName, List<HashMap<String, String>> list) {
if(StringUtil.isEmpty(listName)) return;
if(listMap == null) initList();
@ -174,7 +192,7 @@ public class DataApiVO {
setPageIndex("" + pageIndex);
}
public void setPageIndex(String pageIndex) {
putInfoItem("XML_EL_NAME_PAGE_INDEX", pageIndex);
putInfoItem(XML_EL_NAME_PAGE_INDEX, pageIndex);
}
public int getPageLastIndex() {
int pageLastIndex = 0;
@ -206,7 +224,7 @@ public class DataApiVO {
setPageSize("" + pageSize);
}
public void setPageSize(String pageSize) {
putInfoItem("XML_EL_NAME_PAGE_SIZE", pageSize);
putInfoItem(XML_EL_NAME_PAGE_SIZE, pageSize);
}
public int getRecordTotCount() {
int recordTotCount = 0;

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?><!--Converted at: Wed May 11 15:49:38 KST 2016-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="nlib.col.service.impl.RentDAO">
<select id="listRentMngOrg" parameterType="String" resultType="EgovMap">
SELECT DISTINCT B.MNG_ORG_CD, C.DEPT_NM AS MNG_ORG_NM
FROM (
SELECT FILE_ID AS MASTER_ID
FROM PE_BOOK_LENT A
JOIN PE_BOOK_LENT_FILE B ON (A.BOOK_LENT_ID = B.BOOK_LENT_ID)
WHERE A.BOOK_LENTER_ID = #{masterId}
UNION
SELECT A.MASTER_ID
FROM PE_BOOK_LENT_RESERVE A
WHERE A.RSRV_USER_ID = #{masterId}
) A
JOIN RG_MASTER B ON (A.MASTER_ID = B.MASTER_ID)
JOIN SM_DEPT C ON (B.MNG_ORG_CD = C.ORG_CD)
ORDER BY C.DEPT_NM
</select>
</mapper>

View File

@ -14,6 +14,7 @@
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성
* @ 2021.10. 14. KNKIM 변경API 및 화면설계서 반영
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
@ -30,8 +31,9 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<c:set var="pageTitle">대출 목록</c:set>
<c:set var="pageTitle">대출관리</c:set>
<!DOCTYPE html>
<html>
@ -58,16 +60,17 @@ window.onload = function() {
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
//======================================
var reqUrl = "${pageContext.request.contextPath}/rent/listRentItemsAjax.do";
var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
$("#pageIndex").val(pageIndex);
var inputData = {
"searchKeyword" : searchKeyword
, "pageIndex" : pageIndex
, "pageSize": pageSize};
"pageIndex" : pageIndex
, "pageSize" : pageSize
, "bookLtRvStatusCd" : $("#bookLtRvStatusCd").val()
, "mngOrgCd" : $("#mngOrgCd").val()
};
//--------------------------------------
@ -85,7 +88,12 @@ window.onload = function() {
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
%>
data.resolve(JSON.parse(response));
var retObj = JSON.parse(response);
if(retObj.data == null) {
retObj.data = [];
}
data.resolve(retObj);
});
return data.promise();
} // loadData
@ -95,15 +103,19 @@ window.onload = function() {
// 그리드 컬럼 정의 (각 요청에 맞게 조정)
//======================================
fields: [
{ title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"},
{ title:"자료명", name: "rentItem", type: "text" , width: 200, align: "center" },
{ title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" },
{ title:"저자", name: "author", type: "text", width: 100, align: "center"},
{ title:"출판사", name: "publisher", type: "text", width: 100, align: "center"},
{ title:"대여일", name: "rentDate", type: "text", width: 100, align: "center"},
{ title:"반납예정일", name: "retDueDate", type: "text", width: 100, align: "center"},
{ title:"대출연장", name: "loanExtension", type: "text", width: 80, align: "center" , itemTemplate: function (_, item) {
var btn = $("<button type='button'>").text("연장").click(function (e) {
{ title:"번호", name: "no" , type: "text" , width: 50, align: "center"},
{ title:"masterId", name: "masterId" , type: "text" , width: 50, align: "center"},
{ title:"문화원", name: "mngOrgNm", type: "text" , width: 200, align: "center" },
{ title:"자료정보", name: "title", type: "text", width: 50, align: "center" },
{ title:"신청/예약일", name: "rsrvDd", type: "text", width: 100, align: "center"},
{ title:"신청/예약만료일", name: "rsrvExpctDd", type: "text", width: 100, align: "center"},
{ title:"반납예정일", name: "rtnExpctDd", type: "text", width: 100, align: "center"},
{ title:"반납일", name: "rtnDd", type: "text", width: 100, align: "center"},
{ title:"대출상태", name: "useStatus", type: "text", width: 100, align: "center"},
{ title:"대출상태구분코드", name: "bookLtRvStatusCd", type: "text", width: 100, align: "center"},
{ title:"대출상태구분코드명", name: "bookLtRvStatusNm", type: "text", width: 100, align: "center"},
{ title:"취소", name: "loanExtension", type: "text", width: 80, align: "center" , itemTemplate: function (_, item) {
var btn = $("<button type='button'>").text("취소").click(function (e) {
alert("Clicked!");
e.stopPropagation();
});
@ -113,23 +125,18 @@ window.onload = function() {
]
});
// 페이지 크기 변경시 재조회
$("#pageSize").on("change", function(e) {
$("#mngOrgCd").on("change", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
// 검색 버튼 클릭
$("#btnSearch").on("click", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
<sec:authorize access="isAuthenticated()">
//초기 자료 조회
fn_search_article();
</sec:authorize>
//초기 자료 조회
fn_search_article();
}; // window.onload
// 그리드 데이터 조회 호출
function fn_search_article(pageSize, pageIndex) {
$("#jsGrid").jsGrid("search"
@ -139,6 +146,12 @@ function fn_search_article(pageSize, pageIndex) {
);
}
//----------------------------------------------------------------------------------------------
function fn_search(bookLtRvStatusCd) {
$("#bookLtRvStatusCd").val(bookLtRvStatusCd);
fn_search_article();
}
</script>
</head>
@ -146,22 +159,36 @@ function fn_search_article(pageSize, pageIndex) {
<h1>${pageTitle }</h1>
<form name="articleForm" id="articleForm"
method="post">
<br/>
메시지 : <span style="color:red !important;">${message }</span>
<br/><br/>
<!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status">
<option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option>
<form name="frm" id="frm" method="post">
총 <span name="totRecordCount" id="totRecordCount">0</span> 건
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bookLtRvStatusCd <input type="text" name="bookLtRvStatusCd" id="bookLtRvStatusCd" value="${bookLtRvStatusCd }" title="대출상태구분" />
<br>
<a href="javascript:void(0);" onclick="fn_search('')"> <span id="bookLtRvStatusCd" style="color:red">전체</span></a> |
<a href="javascript:void(0);" onclick="fn_search('A')"><span id="bookLtRvStatusCdA" style="color:red">신청/예약</span></a> |
<a href="javascript:void(0);" onclick="fn_search('C')"><span id="bookLtRvStatusCdC" style="color:red">취소</span></a> |
<a href="javascript:void(0);" onclick="fn_search('W')"><span id="bookLtRvStatusCdW" style="color:red">대출중</span></a> |
<a href="javascript:void(0);" onclick="fn_search('R')"><span id="bookLtRvStatusCdR" style="color:red">반납</span></a> |
<a href="javascript:void(0);" onclick="fn_search('P')"><span id="bookLtRvStatusCdP" style="color:red">연체</span></a>
&nbsp; &nbsp;
<select name="mngOrgCd" id="mngOrgCd" title="문화원 선택">
<option value="">전체</option>
<c:forEach var="orgItem" items="${rentMngOrgList}" varStatus="status">
<option value="<c:out value="${orgItem.mngOrgCd }" />" <c:if test="${orgItem.mngOrgCd == mngOrgCd }">selected</c:if> ><c:out value="${orgItem.mngOrgNm }" /></option>
</c:forEach>
</select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" />
<input type="button" name="btnSearch" id="btnSearch" value="검색" />
pageIndex <input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<div id="jsGrid" name="jsGrid" style="height: 100%"></div>
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
<input type="button" value="대출 취소목록" onClick="location.href='${pageContext.request.contextPath}/rent/listCanceledRentItems.do'">
<input type="button" value="반납 연기" onClick="location.href='${pageContext.request.contextPath}/rent/listPostpones.do'">