카트 기능 개발 중간백업 - 회원용 DB 카트 기능 개발
This commit is contained in:
parent
43b1981de8
commit
655b326d63
@ -1,10 +1,104 @@
|
||||
package nlib.col.service;
|
||||
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
|
||||
public interface CartService
|
||||
{
|
||||
|
||||
|
||||
package nlib.col.service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.http.HttpMethod;
|
||||
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.XmlConverter;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
public interface CartService
|
||||
{
|
||||
|
||||
/**
|
||||
* (로그인자용) 로그인한 사용자의 카트 목록을 조회한다.
|
||||
*
|
||||
* @param mbInfoId
|
||||
* @param cartDivCd
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CollectionVO> listCartItems(String mbInfoId, String cartDivCd) throws Exception;
|
||||
|
||||
/**
|
||||
* (비로그인자용) 쿠키에서 카트 목록을 조회한다.
|
||||
*
|
||||
* @param request
|
||||
* @param cartDivCd
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CollectionVO> listCartItemsFromCookie(HttpServletRequest request, String cartDivCd) throws Exception;
|
||||
|
||||
/**
|
||||
* (로그인자용) 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||
*
|
||||
* @param mbInfoId
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String changeCartType(CollectionVO cartVO) throws Exception;
|
||||
|
||||
/**
|
||||
* (비로그인자용) 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||
*
|
||||
* @param request
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int changeCartTypeFromCookie(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception;
|
||||
|
||||
/**
|
||||
* (로그인자용) 카트에 추가한다.
|
||||
*
|
||||
* @param cartVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertCartItem(CollectionVO cartVO) throws Exception;
|
||||
|
||||
/**
|
||||
* (비로그인자용) 카트에 추가한다.
|
||||
*
|
||||
* @param cartVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertCartItemToCookie(HttpServletRequest request, CollectionVO cartVO) throws Exception;
|
||||
|
||||
/**
|
||||
* (로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||
*
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String deleteCartItems(CollectionVO cartVO) throws Exception;
|
||||
|
||||
/**
|
||||
* (비로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||
*
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String deleteCartItems(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception;
|
||||
|
||||
/**
|
||||
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
||||
*
|
||||
* @param mbInfoId
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int saveCartItemsOfNonMember(String mbInfoId, HttpServletRequest request) throws Exception;
|
||||
|
||||
}
|
||||
@ -1,16 +1,25 @@
|
||||
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("cartDAO")
|
||||
public class CartDAO extends DataApi
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(CartDAO.class);
|
||||
|
||||
package nlib.col.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||
import nlib.col.service.CollectionVO;
|
||||
|
||||
@Mapper("cartDAO")
|
||||
public interface CartDAO {
|
||||
|
||||
public List<CollectionVO> listCartItems(@Param("mbInfoId") String mbInfoId, @Param("cartTypeCd") String cartTypeCd) throws Exception;
|
||||
|
||||
public int changeCartDiv(CollectionVO cartVO) throws Exception;
|
||||
|
||||
public int countCartItem(CollectionVO cartVO) throws Exception;
|
||||
|
||||
public int insertCartItem(CollectionVO cartVO) throws Exception;
|
||||
|
||||
public int deleteCartItems(CollectionVO cartVO) throws Exception;
|
||||
|
||||
public int changeCartType(CollectionVO cartVO) throws Exception;
|
||||
|
||||
}
|
||||
@ -1,20 +1,264 @@
|
||||
package nlib.col.service.impl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import nlib.col.service.CartService;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
|
||||
@Service("cartService")
|
||||
public class CartServiceImpl implements CartService
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(CartServiceImpl.class);
|
||||
|
||||
@Resource(name="cartDAO")
|
||||
private CartDAO cartDAO;
|
||||
package nlib.col.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import nlib.col.service.CartService;
|
||||
import nlib.col.service.CollectionVO;
|
||||
import nlib.util.StringUtil;
|
||||
import nlib.col.service.CollectionService;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : CartServiceImpl.java
|
||||
*
|
||||
* @Description : 카트관련 기능 서비스 구현 클래스
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 10. 5. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 10. 5.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
@Service("cartService")
|
||||
public class CartServiceImpl implements CartService
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(CartServiceImpl.class);
|
||||
|
||||
@Resource(name="cartDAO")
|
||||
private CartDAO cartDAO;
|
||||
|
||||
@Resource(name = "collectionService")
|
||||
private CollectionService collectionService;
|
||||
|
||||
/**
|
||||
* (로그인자용) 로그인한 사용자의 카트 목록을 조회한다.
|
||||
*
|
||||
* @param mbInfoId
|
||||
* @param cartDivCd
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CollectionVO> listCartItems(String mbInfoId, String cartTypeCd) throws Exception {
|
||||
return cartDAO.listCartItems(mbInfoId, cartTypeCd);
|
||||
}
|
||||
|
||||
/**
|
||||
* (비로그인자용) 쿠키에서 카트 목록을 조회한다.
|
||||
*
|
||||
* @param request
|
||||
* @param cartDivCd
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CollectionVO> listCartItemsFromCookie(HttpServletRequest request, String cartDivCd) throws Exception {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* (로그인자용) 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||
*
|
||||
* @param mbInfoId
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String changeCartType(CollectionVO cartVO) throws Exception {
|
||||
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return "회원 정보가 없습니다.";
|
||||
if(StringUtil.isEmpty(cartVO.getSelItems())) return "변경할 대상 정보가 없습니다.";
|
||||
int resultCnt = cartDAO.changeCartType(cartVO);
|
||||
|
||||
if(resultCnt > 0) return null;
|
||||
|
||||
return "변경 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
||||
}
|
||||
|
||||
/**
|
||||
* (비로그인자용) 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||
*
|
||||
* @param request
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int changeCartTypeFromCookie(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* (로그인자용) 카트에 추가한다.
|
||||
*
|
||||
* @param cartVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertCartItem(CollectionVO cartVO) throws Exception {
|
||||
|
||||
cartVO = checkValidCartItem(cartVO);
|
||||
|
||||
if(cartVO.getResultCode().charAt(0) != 'S') return cartVO.getResultMessage();
|
||||
|
||||
//-----------------------------------------------
|
||||
// 등록 처리
|
||||
//-----------------------------------------------
|
||||
int resultCnt = cartDAO.insertCartItem(cartVO);
|
||||
|
||||
if(resultCnt > 0) return null;
|
||||
|
||||
return "등록 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카트에 추가할 수 있는 자료인지 확인하고, 대출/열람 유형을 검증한다. 필요시 대출/열람 유형을 변경하고 리턴한다.
|
||||
*
|
||||
* @param cartVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public CollectionVO checkValidCartItem(CollectionVO cartVO) throws Exception {
|
||||
|
||||
if(cartVO == null) return new CollectionVO("FCART00", "카트에 추가할 자료 정보가 없습니다.");
|
||||
|
||||
//-----------------------------------------------
|
||||
// 기존에 등록된 자료인지 확인
|
||||
//-----------------------------------------------
|
||||
int existCnt = cartDAO.countCartItem(cartVO);
|
||||
if(existCnt > 0) {
|
||||
cartVO.setResult("FCART01", "이미 카트에 등록된 자료입니다.");
|
||||
return cartVO;
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
// 해당 카트 구분값으로 등록가능한지 여부 체크
|
||||
//-----------------------------------------------
|
||||
CollectionVO searchColVO = new CollectionVO();
|
||||
searchColVO.setMasterId(cartVO.getMasterId());
|
||||
searchColVO.setMngOrgCd(cartVO.getMngOrgCd());
|
||||
searchColVO.setTypeDivCd(cartVO.getTypeDivCd());
|
||||
searchColVO.setMbInfoId(cartVO.getMbInfoId());
|
||||
CollectionVO collectionVO = collectionService.getItemInfo(searchColVO);
|
||||
|
||||
// 자료 상세 조회 성공한 경우
|
||||
if(collectionVO.getResultCode().startsWith("S")) {
|
||||
// 대출인 경우
|
||||
if("1".equals(cartVO.getCartTypeCd())) {
|
||||
|
||||
// 대출불가인 경우
|
||||
if("02".equals(collectionVO.getOperOutRangeCd())) { // 대출가능여부 확인 : 02 대출불가
|
||||
|
||||
// 열람 가능인 경우 열람 처리
|
||||
if(!"03".equals(collectionVO.getOperReadRangeCd())) {
|
||||
cartVO.setCartTypeCd("2"); // 대출가능하지 않으나 열람 가능한 경우, 열람으로 강제 변경
|
||||
} else {
|
||||
cartVO.setResult("FCART02", "대출 및 열람이 불가한 자료입니다.");
|
||||
return cartVO;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 열람인 경우
|
||||
else if("2".equals(cartVO.getCartTypeCd())) {
|
||||
|
||||
// 열람불가인 경우
|
||||
if("03".equals(collectionVO.getOperReadRangeCd())) { // 열람가능여부 확인 : 03 열람불가
|
||||
|
||||
// 대출가능한 경우, 대출로 처리
|
||||
if(!"02".equals(collectionVO.getOperOutRangeCd())) {
|
||||
cartVO.setCartTypeCd("1"); // 대출가능한 경우, 대출로 강제 변경
|
||||
} else {
|
||||
cartVO.setResult("FCART03", "열람 및 대출이 불가한 자료입니다.");
|
||||
return cartVO;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// 카드유형구분이 없는 경우, 대출->열람 우선순위서 설정
|
||||
else {
|
||||
if(!"02".equals(collectionVO.getOperOutRangeCd())) { // 대출가능여부 확인 : 02 대출불가
|
||||
cartVO.setCartTypeCd("1"); // 대출가능한 경우, 대출로 설정
|
||||
} else if(!"03".equals(collectionVO.getOperReadRangeCd())) { // 열람가능여부 확인 : 03 열람불가
|
||||
cartVO.setCartTypeCd("2"); // 열람가능한 경우, 열람으로 설정
|
||||
} else {
|
||||
cartVO.setResult("FCART04", "대출 및 열람이 불가한 자료입니다.");
|
||||
return cartVO;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 자료 상세 조회 실패한 경우, 처리결과 메시지를 리턴한다.
|
||||
else {
|
||||
cartVO.setResult("FCART05", collectionVO.getResultMessage());
|
||||
return cartVO;
|
||||
}
|
||||
|
||||
cartVO.setResult("S", null);
|
||||
return cartVO;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* (비로그인자용) 카트에 추가한다.
|
||||
*
|
||||
* @param cartVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertCartItemToCookie(HttpServletRequest request, CollectionVO cartVO) throws Exception {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* (로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||
*
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String deleteCartItems(CollectionVO cartVO) throws Exception {
|
||||
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return "회원 정보가 없습니다.";
|
||||
if(StringUtil.isEmpty(cartVO.getSelItems())) return "삭제할 대상 정보가 없습니다.";
|
||||
int resultCnt = cartDAO.deleteCartItems(cartVO);
|
||||
|
||||
if(resultCnt > 0) return null;
|
||||
return "변경 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* (비로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||
*
|
||||
* @param targetCartItems
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String deleteCartItems(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
||||
*
|
||||
* @param mbInfoId
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int saveCartItemsOfNonMember(String mbInfoId, HttpServletRequest request) throws Exception {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,48 +1,231 @@
|
||||
package nlib.col.web;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
import nlib.cmm.NlibCommonController;
|
||||
import nlib.cmm.service.CodeService;
|
||||
import nlib.cmm.service.NlibProperty;
|
||||
import nlib.col.service.RentService;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : CartController.java
|
||||
*
|
||||
* @Description : 소장자료 카트 컨트롤러
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 10. 01. JSYOO 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP JSYOO
|
||||
* @since 2021. 10. 01.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class CartController extends NlibCommonController
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(CartController.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;
|
||||
|
||||
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.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.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import nlib.bbs.service.ArticleVO;
|
||||
import nlib.cmm.NlibCommonController;
|
||||
import nlib.cmm.service.CodeService;
|
||||
import nlib.cmm.service.NlibProperty;
|
||||
import nlib.col.service.CartService;
|
||||
import nlib.col.service.CollectionService;
|
||||
import nlib.col.service.CollectionVO;
|
||||
import nlib.user.service.NlibLoginVO;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : CartController.java
|
||||
*
|
||||
* @Description : 소장자료 카트 컨트롤러
|
||||
* 로그인하지 않은 사용자도 카트 추가 가능하며, 추가 시 정보가 저장되는 영역은 다음과 같다.
|
||||
* - 비회원 카트정보 쿠키 저장
|
||||
* - 회원 카트정보 DB 저장
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 10. 5. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 10. 5.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class CartController extends NlibCommonController
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(CartController.class);
|
||||
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
|
||||
|
||||
@Resource(name = "cartService")
|
||||
private CartService cartService;
|
||||
|
||||
@Resource(name = "collectionService")
|
||||
private CollectionService collectionService;
|
||||
|
||||
/**
|
||||
* 카트 목록을 조회한다.
|
||||
* 로그인되지 않은 사용자의 경우, 쿠키에 저장된 값으로 처리한다.
|
||||
*
|
||||
* @param request
|
||||
* @param cartTypeCd
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cart/listCartItems.do")
|
||||
public String listCartItems(HttpServletRequest request, String message, String cartTypeCd, ModelMap model) throws Exception {
|
||||
|
||||
if(StringUtil.isEmpty(cartTypeCd)) cartTypeCd = "0"; // 대출 기본 설정
|
||||
|
||||
String mbInfoId = getMbInfoId(request);
|
||||
|
||||
List<CollectionVO> list = null;
|
||||
|
||||
// 카트 목록 가져오기
|
||||
if(StringUtil.isEmpty(mbInfoId)) {
|
||||
// 쿠키에서 값 가져오기
|
||||
list = cartService.listCartItemsFromCookie(request, cartTypeCd);
|
||||
} else {
|
||||
list = cartService.listCartItems(mbInfoId, cartTypeCd);
|
||||
}
|
||||
|
||||
// 카트 목록 자료에 대한 상세자료 설정
|
||||
collectionService.setDetailInfoForList(list);
|
||||
|
||||
model.addAttribute("list", list);
|
||||
model.addAttribute("cartTypeCd", cartTypeCd);
|
||||
model.addAttribute("message", message);
|
||||
|
||||
return "nlib/cart/listCartItems";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||
*
|
||||
* @param request
|
||||
* @param cartVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cart/changeCartType.do")
|
||||
public String changeCartType(HttpServletRequest request, CollectionVO cartVO, ModelMap model) throws Exception {
|
||||
|
||||
String message = null;
|
||||
String mbInfoId = getMbInfoId(request);
|
||||
|
||||
if(StringUtil.isEmpty(mbInfoId)) {
|
||||
cartService.changeCartTypeFromCookie(request, null);
|
||||
} else {
|
||||
cartVO.setMbInfoId(getMbInfoId(request));
|
||||
message = cartService.changeCartType(cartVO);
|
||||
}
|
||||
|
||||
if(message == null) message = "정상적으로 변경되었습니다.";
|
||||
model.addAttribute("message", message);
|
||||
return "redirect:/cart/listCartItems.do";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카트에 추가한다.
|
||||
*
|
||||
* @param request
|
||||
* @param cartVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cart/insertCartItemAjax.do")
|
||||
public ResponseEntity<String> insertCartItemAjax(HttpServletRequest request, @RequestBody CollectionVO cartVO, ModelMap model) throws Exception {
|
||||
|
||||
log.debug("insertCartItemAjax > masterId = " + cartVO.getMasterId());
|
||||
|
||||
String code = "S";
|
||||
String message = null;
|
||||
|
||||
String mbInfoId = getMbInfoId(request);
|
||||
|
||||
int changedCnt = 0;
|
||||
|
||||
try {
|
||||
|
||||
// 로그인한 경우
|
||||
if(!StringUtil.isEmpty(mbInfoId)) {
|
||||
log.debug("insertCartItemAjax > masterId = " + cartVO.getMasterId());
|
||||
log.debug("insertCartItemAjax > cartDivCd = " + cartVO.getCartTypeCd());
|
||||
cartVO.setMbInfoId(mbInfoId);
|
||||
cartVO.setRegId(mbInfoId);
|
||||
message = cartService.insertCartItem(cartVO);
|
||||
|
||||
}
|
||||
// 비회원인 경우
|
||||
else {
|
||||
message = cartService.insertCartItemToCookie(request, cartVO);
|
||||
}
|
||||
|
||||
if(message == null) {
|
||||
code = "S";
|
||||
message = "정상적으로 추가되었습니다.";
|
||||
} else {
|
||||
code = "F";
|
||||
}
|
||||
|
||||
} catch(Exception e) {
|
||||
code = "F";
|
||||
message = "등록되지 않았습니다. : " + e.toString();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------
|
||||
// JSON변환 응답 처리
|
||||
//-------------------------------
|
||||
// JS-GRID 페이징 처리를 포함한 응답값 처리
|
||||
// {data: [{...}],
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("code", code);
|
||||
retMap.put("message", message);
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
}
|
||||
|
||||
@RequestMapping("/cart/deleteCartItems.do")
|
||||
public String deleteCartItems(HttpServletRequest request, CollectionVO cartVO, ModelMap model) throws Exception {
|
||||
String mbInfoId = getMbInfoId(request);
|
||||
cartVO.setMbInfoId(mbInfoId);
|
||||
String message = cartService.deleteCartItems(cartVO);
|
||||
|
||||
if(message == null) message = "정상적으로 삭제되었습니다.";
|
||||
model.addAttribute("message", StringUtil.encodeUrl(message));
|
||||
return "redirect:/cart/listCartItems.do";
|
||||
}
|
||||
|
||||
/**
|
||||
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
||||
*
|
||||
* @param request
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cart/saveCartItemsOfNonMemberAjax")
|
||||
public String saveCartItemsOfNonMemberAjax(HttpServletRequest request, ModelMap model) throws Exception {
|
||||
|
||||
String message = null;
|
||||
String mbInfoId = getMbInfoId(request);
|
||||
int resultCnt = 0;
|
||||
if(StringUtil.isEmpty(mbInfoId)) {
|
||||
message = "잘못된 접근입니다. 로그인 후, 이용가능합니다.";
|
||||
} else {
|
||||
resultCnt = cartService.saveCartItemsOfNonMember(mbInfoId, request);
|
||||
}
|
||||
|
||||
model.addAttribute("message", message);
|
||||
model.addAttribute("resultCnt", resultCnt);
|
||||
|
||||
return "nlib/col/saveCartItemsOfNonMember";
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package nlib.restful.service;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -114,7 +115,19 @@ public interface DataApiInterface {
|
||||
if(reqVO.hasInfo()) {
|
||||
HashMap<String, String> info = reqVO.getInfo();
|
||||
for(String key : info.keySet()) {
|
||||
Object val = info.get(key);
|
||||
Object val = null;
|
||||
if(DataApiVO.XML_EL_NAME_MB_INFO_ID.equals(key)) {
|
||||
val = reqVO.getEncMbInfoId();
|
||||
} else {
|
||||
val = info.get(key);
|
||||
}
|
||||
String encVal = null;
|
||||
try {
|
||||
encVal = URLEncoder.encode((String)val, "UTF-8");
|
||||
} catch(Exception e) {
|
||||
log.error("makeRequestParamUrl > " + e.toString());
|
||||
continue;
|
||||
}
|
||||
builder.queryParam(key, (String)val);
|
||||
}
|
||||
}
|
||||
@ -138,9 +151,10 @@ public interface DataApiInterface {
|
||||
} // if(listMap != null)
|
||||
} // if(reqVO.hasList())
|
||||
|
||||
log.debug("makeRequestParamUrl > queryUrl = " + builder.toUriString());
|
||||
String retUrl = builder.toUriString();
|
||||
log.debug("makeRequestParamUrl > queryUrl = " + retUrl);
|
||||
|
||||
return builder.toUriString();
|
||||
return retUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -229,13 +229,13 @@ public class DataApiVO {
|
||||
// 사용자ID 처리 관련
|
||||
//--------------------------------------------------------------
|
||||
public String getMbInfoId() {
|
||||
return getInfoItem("XML_EL_NAME_MB_INFO_ID");
|
||||
return getInfoItem(XML_EL_NAME_MB_INFO_ID);
|
||||
}
|
||||
public String getEncMbInfoId() {
|
||||
return AriaCrypto.encode(getInfoItem("XML_EL_NAME_MB_INFO_ID"));
|
||||
return AriaCrypto.encode(getInfoItem(XML_EL_NAME_MB_INFO_ID));
|
||||
}
|
||||
public void setMbInfoId(String mbInfoId) {
|
||||
putInfoItem("XML_EL_NAME_MB_INFO_ID", mbInfoId);
|
||||
putInfoItem(XML_EL_NAME_MB_INFO_ID, mbInfoId);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
|
||||
@ -0,0 +1,91 @@
|
||||
<?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.CartDAO">
|
||||
|
||||
<select id="listCartItems" parameterType="String" resultType="CollectionVO">
|
||||
SELECT
|
||||
A.MB_CART_ID
|
||||
, A.MB_INFO_ID
|
||||
, A.MASTER_ID
|
||||
, A.CART_TYPE_CD
|
||||
, A.REL_RSRV_ID
|
||||
, A.REL_REQ_ID
|
||||
, A.CART_PROC_DIV_CD
|
||||
, A.DELETE_YN
|
||||
, A.REG_ID
|
||||
, DATE_FORMAT(A.REG_DD, '%Y-%M-%D') AS REG_DD
|
||||
, A.MOD_ID
|
||||
, DATE_FORMAT(A.MOD_DD, '%Y-%M-%D') AS MOD_DD
|
||||
, B.MNG_ORG_CD
|
||||
, B.MNG_ORG_NM
|
||||
FROM MB_CART A
|
||||
INNER JOIN RG_MASTER B ON A.MASTER_ID = B.MASTER_ID
|
||||
WHERE A.MB_INFO_ID = #{mbInfoId}
|
||||
<if test='cartTypeCd != null and !cartTypeCd.equals("") and !cartTypeCd.equals("0")'>
|
||||
AND A.CART_TYPE_CD = #{cartTypeCd}
|
||||
</if>
|
||||
AND A.DELETE_YN = 'N'
|
||||
AND IFNULL(A.CART_PROC_DIV_CD, 'N') = 'N'
|
||||
ORDER BY B.MNG_ORG_CD
|
||||
</select>
|
||||
|
||||
<select id="countCartItem" parameterType="CollectionVO" resultType="Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM MB_CART A
|
||||
WHERE MB_INFO_ID = #{mbInfoId}
|
||||
AND MASTER_ID = #{masterId}
|
||||
AND DELETE_YN = 'N'
|
||||
</select>
|
||||
|
||||
<insert id="insertCartItem" parameterType="CollectionVO">
|
||||
<![CDATA[
|
||||
INSERT INTO MB_CART (
|
||||
MB_CART_ID
|
||||
, MB_INFO_ID
|
||||
, MASTER_ID
|
||||
, CART_TYPE_CD
|
||||
, REL_RSRV_ID
|
||||
, REL_REQ_ID
|
||||
, CART_PROC_DIV_CD
|
||||
, DELETE_YN
|
||||
, REG_ID
|
||||
, REG_DD
|
||||
, MOD_ID
|
||||
, MOD_DD
|
||||
) VALUES (
|
||||
NULL /* 자동생성 */
|
||||
, #{mbInfoId}
|
||||
, #{masterId}
|
||||
, #{cartTypeCd}
|
||||
, NULL
|
||||
, NULL
|
||||
, 'N'
|
||||
, 'N'
|
||||
, #{regId}
|
||||
, NOW()
|
||||
, NULL
|
||||
, NULL
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<delete id="deleteCartItems" parameterType="CollectionVO">
|
||||
<![CDATA[
|
||||
UPDATE MB_CART SET DELETE_YN = 'Y', MOD_ID = #{modId}, MOD_DD = NOW()
|
||||
WHERE MB_INFO_ID = #{mbInfoId}
|
||||
AND MB_CART_ID IN (${selItems})
|
||||
AND DELETE_YN = 'N'
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<update id="changeCartType" parameterType="CollectionVO">
|
||||
<![CDATA[
|
||||
UPDATE MB_CART SET CART_TYPE_CD = #{cartTypeCd}, MOD_ID = #{modId}, MOD_DD = NOW()
|
||||
WHERE MB_INFO_ID = #{mbInfoId}
|
||||
AND MB_CART_ID IN (${selItems})
|
||||
AND DELETE_YN = 'N'
|
||||
]]>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
311
src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp
Normal file
311
src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp
Normal file
@ -0,0 +1,311 @@
|
||||
<%
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : listNotices.jsp
|
||||
*
|
||||
* @Description : 공지사항 목록을 조회한다.
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 6. 15.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ 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" %>
|
||||
|
||||
<c:set var="pageTitle">카트</c:set>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<title>${pageTitle}</title>
|
||||
|
||||
<!-- GRID -->
|
||||
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.css" />
|
||||
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid-theme.css" />
|
||||
<script src="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.js"></script>
|
||||
|
||||
<script type="text/javaScript" language="javascript">
|
||||
var BTN_APP_PREFIX = "대출신청/예약";
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
$("[id^=chk_item_]").prop("disabled", true);
|
||||
$("[id^=chk_all_]").prop("disabled", true);
|
||||
|
||||
$("[id=selMngOrgCd]").change(function(obj) {
|
||||
var checked = $(this).prop("checked");
|
||||
var mngOrgCd = $(this).val();
|
||||
|
||||
if(checked) {
|
||||
// uncheck others and disable
|
||||
// enable
|
||||
//$("[id^=chk_item_" + mngOrgCd + "]").prop("checked", false);
|
||||
$("[id^=chk_item_" + mngOrgCd + "]").prop("disabled", false);
|
||||
$("[id^=chk_all_" + mngOrgCd + "]").prop("disabled", false);
|
||||
|
||||
$("[id^=chk_item_]").not("[id^=chk_item_" + mngOrgCd + "]").prop("checked", false);
|
||||
$("[id^=chk_item_]").not("[id^=chk_item_" + mngOrgCd + "]").prop("disabled", true);
|
||||
|
||||
$("[id^=chk_all_]").not("[id^=chk_all_" + mngOrgCd + "]").prop("checked", false);
|
||||
$("[id^=chk_all_]").not("[id^=chk_all_" + mngOrgCd + "]").prop("disabled", true);
|
||||
|
||||
}
|
||||
$("#mngOrgCd").val(mngOrgCd);
|
||||
$("[id^=chk_item_" + mngOrgCd + "]").filter(":first").trigger("change");
|
||||
|
||||
});
|
||||
|
||||
$("[id^=chk_item_]").change(function(obj) {
|
||||
var mngOrgCd = $(this).attr("id").substr(9);
|
||||
|
||||
var totNum = $("[id^=chk_item_" + mngOrgCd + "]").length;
|
||||
var selNum = $("[id^=chk_item_" + mngOrgCd + "]:checked").length;
|
||||
|
||||
var checked = false;
|
||||
if(totNum <= selNum) checked = true;
|
||||
$("[id^=chk_all_" + mngOrgCd + "]").prop("checked", checked);
|
||||
|
||||
$("#btnApp").val(BTN_APP_PREFIX + " (" + selNum + ")");
|
||||
});
|
||||
|
||||
$("[id^=selMngOrgCd]").filter(":first").prop("checked", true);
|
||||
$("[id^=selMngOrgCd]").filter(":first").trigger("change",true);
|
||||
|
||||
}); // document ready
|
||||
|
||||
function fn_deleteCartItems() {
|
||||
if($("[id^=chk_item_]:checked").length < 1) {
|
||||
alert("삭제할 대상을 선택해 주세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!confirm(($("[id^=chk_item_]:checked").length) + "건을 삭제하시겠습니까?")) {
|
||||
return;
|
||||
}
|
||||
|
||||
$("#selItems").val(fn_getCheckedCartItemsValues());
|
||||
$("#frm").attr("action","${pageContext.request.contextPath}/cart/deleteCartItems.do");
|
||||
$("#frm").submit();
|
||||
}
|
||||
|
||||
function fn_getCheckedCartItemsValues() {
|
||||
var values = "";
|
||||
$("[id^=chk_item_]:checked").each(function() {
|
||||
if(values.length > 0) values += ",";
|
||||
values += $(this).val();
|
||||
});
|
||||
return values;
|
||||
}
|
||||
|
||||
function fn_checkMngOrgGroup() {
|
||||
alert("hi");
|
||||
// $("[id^=chk_" + mngOrgCd + "]").prop("checked", checked);
|
||||
}
|
||||
|
||||
// 선택한 게시글 상세 보기로 이동
|
||||
function fn_viewDetail(articleNo) {
|
||||
$("#articleNo").val(articleNo);
|
||||
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectNotice.do");
|
||||
$("#articleForm").submit();
|
||||
}
|
||||
|
||||
// 게시글 작성으로 이동
|
||||
function fn_newArticle() {
|
||||
$("#articleNo").val("");
|
||||
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/insertNoticeForm.do");
|
||||
$("#articleForm").submit();
|
||||
}
|
||||
|
||||
// 그리드 데이터 조회 호출
|
||||
function fn_searchArticle(pageSize, pageIndex) {
|
||||
$("#jsGrid").jsGrid("search"
|
||||
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize}) ),
|
||||
'pageIndex' : (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1))
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function fn_search(cartTypeCd) {
|
||||
$("#cartTypeCd").val(cartTypeCd);
|
||||
$("#frm").submit();
|
||||
}
|
||||
|
||||
function fn_selectAll(mngOrgCd) {
|
||||
var allOjbName = "chk_all_" + mngOrgCd;
|
||||
var checked = $("#" + allOjbName).prop("checked");
|
||||
$("[id^=chk_item_" + mngOrgCd + "]").prop("checked", checked);
|
||||
|
||||
$("[id^=chk_item_" + mngOrgCd + "]").filter(":first").trigger("change");
|
||||
}
|
||||
|
||||
function fn_changeCartItems(cartTypeCd, cartTypeNm) {
|
||||
if($("[id^=chk_item_]:checked").length < 1) {
|
||||
alert("변경할 대상을 선택해 주세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!confirm(($("[id^=chk_item_]:checked").length) + "건을 " + cartTypeNm + "(으)로 변경하시겠습니까?")) {
|
||||
return;
|
||||
}
|
||||
$("#cartTypeCd").val(cartTypeCd);
|
||||
$("#frm").attr("action", "${pageContext.request.contextPath}/cart/changeCartType.do");
|
||||
$("#frm").submit();
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>${pageTitle }</h1>
|
||||
|
||||
메시지 : ${message}
|
||||
<br/>
|
||||
<form name="frm" id="frm"
|
||||
action="${pageContext.request.contextPath}/cart/listCartItems.do"
|
||||
method="post">
|
||||
|
||||
cartTypeCd = <input type="text" id="cartTypeCd" name="cartTypeCd" value="${cartTypeCd }" />
|
||||
mngOrgCd = <input type="text" id="mngOrgCd" name="mngOrgCd" value="" />
|
||||
selItems = <input type="text" id="selItems" name="selItems" value="" />
|
||||
message = ${message }
|
||||
<br>
|
||||
<c:if test='${cartTypeCd == "0"}'>
|
||||
<a href="javascript:void(0);" onclick="fn_search('0')"><span style="color:red">전체</span></a>
|
||||
</c:if>
|
||||
<c:if test='${cartTypeCd != "0"}'>
|
||||
<a href="javascript:void(0);" onclick="fn_search('0')"><span style="color:blue">전체</span></a>
|
||||
</c:if>
|
||||
|
||||
|
|
||||
|
||||
<c:if test='${cartTypeCd == "1"}'>
|
||||
<a href="javascript:void(0);" onclick="fn_search('1')"><span style="color:red">대출</span></a>
|
||||
</c:if>
|
||||
<c:if test='${cartTypeCd != "1"}'>
|
||||
<a href="javascript:void(0);" onclick="fn_search('1')"><span style="color:blue">대출</span></a>
|
||||
</c:if>
|
||||
|
||||
|
|
||||
|
||||
<c:if test='${cartTypeCd == "2"}'>
|
||||
<a href="javascript:void(0);" onclick="fn_search('2')"><span style="color:red">열람</span></a>
|
||||
</c:if>
|
||||
<c:if test='${cartTypeCd != "2"}'>
|
||||
<a href="javascript:void(0);" onclick="fn_search('2')"><span style="color:blue">열람</span></a>
|
||||
</c:if>
|
||||
|
||||
|
||||
<br>
|
||||
----------------------------------
|
||||
<br>
|
||||
1. 카트 > 2.신청/예약확인 > 3.신청/예약완료
|
||||
<br>
|
||||
----------------------------------
|
||||
<br>
|
||||
|
||||
<c:set var="preMngOrgCd" value="" />
|
||||
<c:set var="mngOrgCdCnt" value="0" />
|
||||
<c:forEach var="cart" items="${list}" varStatus="status">
|
||||
|
||||
<c:if test="${preMngOrgCd != cart.mngOrgCd}">
|
||||
<c:if test="${status.count > 1 }">
|
||||
</table>
|
||||
<br>
|
||||
<br>
|
||||
<script>
|
||||
$("#_${preMngOrgCd}_cnt").text("${mngOrgCdCnt }");
|
||||
</script>
|
||||
</c:if>
|
||||
|
||||
<c:set var="mngOrgCdCnt" value="0" />
|
||||
<table style="border: 1px solid black;">
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
selMngOrgCd
|
||||
<input type="radio" id="selMngOrgCd" name="selMngOrgCd" value="${cart.mngOrgCd}">
|
||||
${cart.mngOrgNm } (<span id="_${cart.mngOrgCd}_cnt"></span>)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
chk_all_${cart.mngOrgCd }
|
||||
<input type="checkbox" id="chk_all_${cart.mngOrgCd }" name="chk_all_${cart.mngOrgCd }" onclick="fn_selectAll('${cart.mngOrgCd}')">선택</a></td>
|
||||
<td>ID</td>
|
||||
<td>썸네일/관심</td>
|
||||
<td>제목</td>
|
||||
<td>이용상태</td>
|
||||
<td>반납예정일</td>
|
||||
<td>대출</td>
|
||||
<td>방문열람</td>
|
||||
</tr>
|
||||
<c:set var="preMngOrgCd" value="${cart.mngOrgCd}" />
|
||||
</c:if>
|
||||
|
||||
<c:set var="mngOrgCdCnt" value="${mngOrgCdCnt+1}" />
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
chk_item_${cart.mngOrgCd }
|
||||
<input type="checkbox" name="chk_item_${cart.mngOrgCd }" id="chk_item_${cart.mngOrgCd }" value="${cart.mbCartId }" /></td>
|
||||
<td>${cart.mbCartId }</td>
|
||||
<td><img src="${cart.rprsThumbUrl }" width="30" height="40"> : ${cart.interestYn }</td>
|
||||
<td>${cart.title }
|
||||
${cart.mngOrgCd }
|
||||
|
||||
</td>
|
||||
<td>${cart.useStatus }<br> ${cart.useStatusNm }</td>
|
||||
<td>${cart.rtnExpctDd }</td>
|
||||
<td>${cart.operOutRangeCd } ${cart.operOutRangeNm }</td>
|
||||
<td>${cart.operReadRangeCd } ${cart.operReadRangeNm }</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
|
||||
|
||||
<c:if test="${fn:length(list) > 0 }">
|
||||
</table>
|
||||
<br>
|
||||
<br>
|
||||
<script>
|
||||
$("#_${preMngOrgCd}_cnt").text("${mngOrgCdCnt }");
|
||||
</script>
|
||||
</c:if>
|
||||
|
||||
<input type="button" name="btnDelete" id="btnDelete" value="선택삭제" onclick="fn_deleteCartItems()" />
|
||||
|
||||
<c:if test='${cartTypeCd == "1"}'>
|
||||
<input type="button" name="btnMove" id="btnMove" value="방문열람으로이동" onclick="fn_changeCartItems('2', '방문열람')" />
|
||||
<input type="button" name="btnApp" id="btnApp" value="대출신청/예약 (0)" onclick="fn_reserveCartItems()" />
|
||||
<script>BTN_APP_PREFIX = "대출신청/예약"; </script>
|
||||
</c:if>
|
||||
|
||||
<c:if test='${cartTypeCd == "2"}'>
|
||||
<input type="button" name="btnMove" id="btnMove" value="대출로이동" onclick="fn_changeCartItems('1', '대출')" />
|
||||
<input type="button" name="btnApp" id="btnApp" value="열람신청 (0)" onclick="fn_reserveCartItems()" />
|
||||
<script>BTN_APP_PREFIX = "열람신청"; </script>
|
||||
</c:if>
|
||||
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -33,6 +33,9 @@ String councilNm = (String)session.getAttribute("councilCd");
|
||||
<li><a href="javascript:void(0)" onclick="javascript:location.href='${pageContext.request.contextPath}/user/member/searchIdForm.do';">ID/PW찾기</a></li>
|
||||
<li><a href="javascript:void(0)" onclick="javascript:location.href='${pageContext.request.contextPath}/login/loginCouncil.do?callType=member';">회원가입</a></li>
|
||||
</sec:authorize>
|
||||
|
||||
<li><a href="javascript:void(0)" onclick="javascript:location.href='${pageContext.request.contextPath}/cart/listCartItems.do';">카트</a></li>
|
||||
|
||||
<li>
|
||||
<sec:authorize access="isAuthenticated()">
|
||||
<sec:authentication property="principal.name" var="userName" />
|
||||
|
||||
95
src/main/webapp/js/cart.js
Normal file
95
src/main/webapp/js/cart.js
Normal file
@ -0,0 +1,95 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* NLIB : 카트 JavaScript
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
function fn_addRentCart(masterId, mngOrgCd, typeDivCd, useStatus) {
|
||||
|
||||
/* useStatus
|
||||
01 : 이용가능
|
||||
02 : 대출중 (대기자 0명)
|
||||
03 : 대출중 (대기자 1명)
|
||||
04 : 열람대기(대출가능)
|
||||
05 : 이용가능
|
||||
06 : 열람대기(대출불가능)
|
||||
07 : 온라인열람만"
|
||||
*/
|
||||
fn_addRentCartItem(masterId, mngOrgCd, typeDivCd, useStatus
|
||||
, function(data) {
|
||||
if(data.code == "S") {
|
||||
if(confirm(data.message + "\n카트로 이동하시겠습니까?")) {
|
||||
fn_gotoCart();
|
||||
}
|
||||
} else {
|
||||
alert(data.message);
|
||||
}
|
||||
}
|
||||
, function(error) {
|
||||
alert(error.message);
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function fn_gotoCart() {
|
||||
location.href = "/cart/listCartItems.do";
|
||||
}
|
||||
|
||||
function fn_addRentCartItem(masterId, mngOrgCd, typeDivCd, useStatus, resolve, reject) {
|
||||
|
||||
|
||||
var cartTypeCd = null;
|
||||
|
||||
if(masterId == "undefined" || masterId == "") {
|
||||
reject(new Error("선택된 자료 정보가 없습니다."));
|
||||
return;
|
||||
}
|
||||
|
||||
if(useStatus == "undefined" || useStatus == "") {
|
||||
reject(new Error("선택된 자료의 상태 정보를 확인할 수 없습니다."));
|
||||
return;
|
||||
}
|
||||
|
||||
if("01" <= useStatus && useStatus <= "04") {
|
||||
cartTypeCd = "1"; // 대출
|
||||
} else if("05" <= useStatus && useStatus <= "06") {
|
||||
cartTypeCd = "2"; // 방문열람
|
||||
} else if("07" == useStatus) {
|
||||
reject(new Error("해당 자료는 온라인열람만 가능한 자료입니다. 온라인 열람을 통해 자료를 조회하시기 바랍니다."));
|
||||
return null;
|
||||
} else {
|
||||
reject(new Error("해당 자료의 상태를 확인할 수 없습니다."));
|
||||
return null;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : "/cart/insertCartItemAjax.do",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
dataType: "json",
|
||||
type : "POST",
|
||||
data: JSON.stringify({
|
||||
masterId : masterId,
|
||||
mngOrgCd : mngOrgCd,
|
||||
typeDivCd : typeDivCd,
|
||||
cartTypeCd : cartTypeCd
|
||||
}),
|
||||
success : function(data) {
|
||||
resolve(JSON.parse(data));
|
||||
},
|
||||
error : function(error) {
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function fn_addReserveCart() {
|
||||
alert("카트 추가 - 로그인");
|
||||
}
|
||||
|
||||
function fn_deleteCart() {
|
||||
alert("카트 삭제");
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user