diff --git a/src/main/java/nlib/col/service/CartService.java b/src/main/java/nlib/col/service/CartService.java index b623beb2..bf75cc79 100644 --- a/src/main/java/nlib/col/service/CartService.java +++ b/src/main/java/nlib/col/service/CartService.java @@ -1,10 +1,13 @@ package nlib.col.service; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import nlib.util.StringUtil; + public interface CartService { diff --git a/src/main/java/nlib/col/service/CollectionService.java b/src/main/java/nlib/col/service/CollectionService.java index cae817b7..0435ff82 100644 --- a/src/main/java/nlib/col/service/CollectionService.java +++ b/src/main/java/nlib/col/service/CollectionService.java @@ -56,5 +56,21 @@ public interface CollectionService { * @throws Exception */ public List setDetailInfoForList(List list, String mbInfoId, String defaultThumbnailUrl) throws Exception; + + /** + * 자료 마스터ID 목록 문자열을 받아 CollectionVO 리스트 생성하여 리턴한다. + * + * @param masterIds + * @return + */ + public List makeListOfCollectionVO(String masterIds); + + /** + * 자료 마스터ID 목록 문자열을 받아 상세내용을 조회하고, CollectionVO 리스트 생성하여 리턴한다. + * + * @param masterIds + * @return + */ + public List makeInfoListOfCollectionVO(String masterIds, String mbInfoId, String defaultThumbnailUrl) throws Exception; } diff --git a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java index 628338ad..09b497c2 100644 --- a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java @@ -1,5 +1,6 @@ package nlib.col.service.impl; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -204,4 +205,50 @@ public class CollectionServiceImpl implements CollectionService { return list; } + + + /** + * 자료 마스터ID 목록 문자열을 받아 CollectionVO 리스트 생성하여 리턴한다. + * + * @param masterIds + * @return + */ + public List makeListOfCollectionVO(String masterIds) { + + if(masterIds == null || StringUtil.isEmpty(masterIds)) return null; + + String[] items = masterIds.split(","); + + if(items == null || items.length < 1) return null; + + List retList = new ArrayList(); + for(String item : items) { + + if(StringUtil.isEmpty(item)) continue; + + CollectionVO itemVO = new CollectionVO(); + itemVO.setMasterId(item); + retList.add(itemVO); + } + if(retList.size() < 1) return null; + + return retList; + } + + + /** + * 자료 마스터ID 목록 문자열을 받아 상세내용을 조회하고, CollectionVO 리스트 생성하여 리턴한다. + * + * @param masterIds + * @return + */ + public List makeInfoListOfCollectionVO(String masterIds, String mbInfoId, String defaultThumbnailUrl) throws Exception { + + List retList = makeListOfCollectionVO(masterIds); + + if(retList == null || retList.size() < 1) return null; + + return setDetailInfoForList(retList, mbInfoId, defaultThumbnailUrl); + } + } diff --git a/src/main/java/nlib/col/web/RentController.java b/src/main/java/nlib/col/web/RentController.java index f4acd012..cdf7b7d9 100644 --- a/src/main/java/nlib/col/web/RentController.java +++ b/src/main/java/nlib/col/web/RentController.java @@ -8,6 +8,7 @@ import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,6 +23,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.CollectionService; import nlib.col.service.CollectionVO; import nlib.col.service.RentService; import nlib.restful.service.DataApiReqVO; @@ -61,6 +63,9 @@ public class RentController extends NlibCommonController @Resource(name = "rentService") private RentService rentService; + @Resource(name = "collectionService") + private CollectionService collectionService; + @Resource(name = "codeService") private CodeService codeService; @@ -148,6 +153,31 @@ public class RentController extends NlibCommonController return makeResponseEntityJson(retMap); } + + @RequestMapping("/rent/confirmRent.do") + public String confirmRent(HttpServletRequest request, CollectionVO rentVO, ModelMap model) throws Exception { + + String mbInfoId = getMbInfoId(request); + + if(StringUtil.isEmpty(mbInfoId)) { + model.addAttribute("message", "로그인 후, 이용해 주시기 바랍니다."); + return "nlib/rent/confirmRent"; + } + + if(rentVO == null || StringUtil.isEmpty(rentVO.getSelItems())) { + model.addAttribute("message", "대출(예약)신청할 정보가 없습니다."); + return "nlib/rent/confirmRent"; + } + + String selItems = rentVO.getSelItems(); + + List list = collectionService.makeInfoListOfCollectionVO(selItems, mbInfoId, NlibProperty.getString("thumbnail.image.url.small")); + + model.addAttribute("list", list); + return "nlib/rent/confirmRent"; + } + + // // /** 대출 목록 화면을 호출한다. // * @param req diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp index 85631810..4ef2c8e5 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp @@ -173,7 +173,7 @@ function fn_appRent() { } $("#selItems").val(fn_getCheckedCartItemsValues()); - $("#frm").attr("action","${pageContext.request.contextPath}/cart/confirmRent.do"); + $("#frm").attr("action","${pageContext.request.contextPath}/rent/confirmRent.do"); $("#frm").submit();