소스 충돌 제거
This commit is contained in:
commit
30abedef77
113
src/main/java/nlib/col/service/CartCookieVO.java
Normal file
113
src/main/java/nlib/col/service/CartCookieVO.java
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package nlib.col.service;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import nlib.util.StringUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : CartCookieVO.java
|
||||||
|
*
|
||||||
|
* @Description : 비로그인 회원의 카트정보를 담는 쿠키 정보값
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 10. 13. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 10. 13.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class CartCookieVO {
|
||||||
|
|
||||||
|
String rentValues = null; /* 대출 목록으로 ":"로 구분되어 짐 */
|
||||||
|
String readValues = null; /* 방문열람 목록으로 ":"로 구분되어 짐 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 쿠키 카트값에 자료 항목을 추가한다.
|
||||||
|
*
|
||||||
|
* @param cartTypeCd
|
||||||
|
* @param masterId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String addCartItem(String cartTypeCd, String masterId) {
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(cartTypeCd)) return "카트구분 정보가 없습니다.";
|
||||||
|
if(StringUtil.isEmpty(masterId)) return "자료정보가 없습니다.";
|
||||||
|
|
||||||
|
String cartStr = null;
|
||||||
|
|
||||||
|
if("1".equals(cartTypeCd)) cartStr = getRentValues();
|
||||||
|
else if("2".equals(cartTypeCd)) cartStr = getReadValues();
|
||||||
|
else return "카트구분 정보가 적합하지 않습니다.";
|
||||||
|
|
||||||
|
cartStr = (StringUtil.isEmpty(cartStr) ? ":" : cartStr);
|
||||||
|
if(cartStr.contains(":" + masterId + ":")) return "이미 카트에 존재합니다.";
|
||||||
|
|
||||||
|
cartStr += (":" + masterId + ":");
|
||||||
|
|
||||||
|
if("1".equals(cartTypeCd)) setRentValues(cartStr);
|
||||||
|
else if("2".equals(cartTypeCd)) setReadValues(cartStr);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 쿠키 카트값에서 자료 항목을 삭제한다.
|
||||||
|
*
|
||||||
|
* @param cartTypeCd
|
||||||
|
* @param masterId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String removeCartItem(String cartTypeCd, String masterId) {
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(cartTypeCd)) return "카트구분 정보가 없습니다.";
|
||||||
|
if(StringUtil.isEmpty(masterId)) return "자료정보가 없습니다.";
|
||||||
|
|
||||||
|
String cartStr = null;
|
||||||
|
|
||||||
|
if("1".equals(cartTypeCd)) cartStr = getRentValues();
|
||||||
|
else if("2".equals(cartTypeCd)) cartStr = getReadValues();
|
||||||
|
else return "카트구분 정보가 적합하지 않습니다.";
|
||||||
|
|
||||||
|
|
||||||
|
cartStr = (StringUtil.isEmpty(cartStr) ? ":" : cartStr);
|
||||||
|
if(StringUtil.isEmpty(cartStr) || !cartStr.contains(":" + masterId + ":")) return "해당 자료는 카트에 존재하지 않습니다.";
|
||||||
|
|
||||||
|
int startIdx = cartStr.indexOf(":" + masterId + ":");
|
||||||
|
if(startIdx < 0) return "해당 자료는 카트에 존재하지 않습니다.";
|
||||||
|
|
||||||
|
int endIdx = startIdx + (":" + masterId).length();
|
||||||
|
|
||||||
|
cartStr = cartStr.substring(0, startIdx) + cartStr.substring(endIdx);
|
||||||
|
|
||||||
|
if("1".equals(cartTypeCd)) setRentValues(cartStr);
|
||||||
|
else if("2".equals(cartTypeCd)) setReadValues(cartStr);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET & SET
|
||||||
|
public String getRentValues() {
|
||||||
|
return rentValues;
|
||||||
|
}
|
||||||
|
public void setRentValues(String rentValues) {
|
||||||
|
this.rentValues = rentValues;
|
||||||
|
}
|
||||||
|
public String getReadValues() {
|
||||||
|
return readValues;
|
||||||
|
}
|
||||||
|
public void setReadValues(String readValues) {
|
||||||
|
this.readValues = readValues;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,16 +1,9 @@
|
|||||||
package nlib.col.service;
|
package nlib.col.service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
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
|
public interface CartService
|
||||||
{
|
{
|
||||||
@ -23,7 +16,7 @@ public interface CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public List<CollectionVO> listCartItems(String mbInfoId, String cartDivCd) throws Exception;
|
public List<CollectionVO> listCartItems(String mbInfoId, String cartTypeCd) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (비로그인자용) 쿠키에서 카트 목록을 조회한다.
|
* (비로그인자용) 쿠키에서 카트 목록을 조회한다.
|
||||||
@ -33,7 +26,7 @@ public interface CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public List<CollectionVO> listCartItemsFromCookie(HttpServletRequest request, String cartDivCd) throws Exception;
|
public List<CollectionVO> listCartItemsFromCookie(HttpServletRequest request, HttpServletResponse response, String cartDivCd) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (로그인자용) 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
* (로그인자용) 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||||
@ -53,7 +46,7 @@ public interface CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public int changeCartTypeFromCookie(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception;
|
public String changeCartTypeToCookie(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (로그인자용) 카트에 추가한다.
|
* (로그인자용) 카트에 추가한다.
|
||||||
@ -71,7 +64,7 @@ public interface CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public String insertCartItemToCookie(HttpServletRequest request, CollectionVO cartVO) throws Exception;
|
public String insertCartItemToCookie(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
* (로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||||
@ -89,7 +82,7 @@ public interface CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public String deleteCartItems(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception;
|
public String deleteCartItemsFromCookie(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
||||||
|
|||||||
@ -137,6 +137,13 @@ public class CollectionVO extends PagingVO {
|
|||||||
this.resultMessage = resultMessage;
|
this.resultMessage = resultMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static CollectionVO createWithMasterId(String cartTypeCd, String masterId) {
|
||||||
|
CollectionVO vo = new CollectionVO();
|
||||||
|
vo.setCartTypeCd(cartTypeCd);
|
||||||
|
vo.setMasterId(masterId);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
// GET & SET
|
// GET & SET
|
||||||
|
|
||||||
public String getMasterId() {
|
public String getMasterId() {
|
||||||
|
|||||||
@ -1,14 +1,18 @@
|
|||||||
package nlib.col.service.impl;
|
package nlib.col.service.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.Cookie;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import nlib.col.service.CartCookieVO;
|
||||||
import nlib.col.service.CartService;
|
import nlib.col.service.CartService;
|
||||||
import nlib.col.service.CollectionService;
|
import nlib.col.service.CollectionService;
|
||||||
import nlib.col.service.CollectionVO;
|
import nlib.col.service.CollectionVO;
|
||||||
@ -41,6 +45,10 @@ public class CartServiceImpl implements CartService
|
|||||||
{
|
{
|
||||||
private static final Logger log = LoggerFactory.getLogger(CartServiceImpl.class);
|
private static final Logger log = LoggerFactory.getLogger(CartServiceImpl.class);
|
||||||
|
|
||||||
|
// 비로그인회원의 카트정보 쿠키명
|
||||||
|
public static final String CART_COOKIE_NAME = "_NLIB_COOKIE";
|
||||||
|
|
||||||
|
|
||||||
@Resource(name="cartDAO")
|
@Resource(name="cartDAO")
|
||||||
private CartDAO cartDAO;
|
private CartDAO cartDAO;
|
||||||
|
|
||||||
@ -67,8 +75,31 @@ public class CartServiceImpl implements CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public List<CollectionVO> listCartItemsFromCookie(HttpServletRequest request, String cartDivCd) throws Exception {
|
public List<CollectionVO> listCartItemsFromCookie(HttpServletRequest request, HttpServletResponse response, String cartDivCd) throws Exception {
|
||||||
return null;
|
Cookie[] cookies = request.getCookies();
|
||||||
|
if(cookies == null || cookies.length < 1) return null;
|
||||||
|
|
||||||
|
List<CollectionVO> list = new ArrayList<CollectionVO>();
|
||||||
|
|
||||||
|
String targetCookieName = CART_COOKIE_NAME + (cartDivCd == null || cartDivCd.equals("0") ? "" : cartDivCd);
|
||||||
|
|
||||||
|
for(Cookie cookie : cookies) {
|
||||||
|
String cookieName = cookie.getName();
|
||||||
|
if(cookieName.startsWith(targetCookieName)) {
|
||||||
|
|
||||||
|
// _NLIB_COOKIE1=:masterId:masterId:
|
||||||
|
String cartStr = cookie.getValue();
|
||||||
|
String[] cartItemsStr = cartStr.split(":");
|
||||||
|
for(String itemStr : cartItemsStr) {
|
||||||
|
if(StringUtil.isEmpty(itemStr)) continue;
|
||||||
|
CollectionVO vo = CollectionVO.createWithMasterId(cookieName.substring(cookieName.length()-2), itemStr);
|
||||||
|
vo.setMbCartId(vo.getMasterId()); // 비회원 쿠키 카트의 경우, 카트ID를 자료ID로 대체한다.
|
||||||
|
if(vo != null) list.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -82,6 +113,11 @@ public class CartServiceImpl implements CartService
|
|||||||
public String changeCartType(CollectionVO cartVO) throws Exception {
|
public String changeCartType(CollectionVO cartVO) throws Exception {
|
||||||
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return "회원 정보가 없습니다.";
|
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return "회원 정보가 없습니다.";
|
||||||
if(StringUtil.isEmpty(cartVO.getSelItems())) return "변경할 대상 정보가 없습니다.";
|
if(StringUtil.isEmpty(cartVO.getSelItems())) return "변경할 대상 정보가 없습니다.";
|
||||||
|
|
||||||
|
String checkResult = checkValidCartItems(cartVO.getCartTypeCd(), cartVO.getSelItems());
|
||||||
|
if(checkResult != null) return checkResult;
|
||||||
|
|
||||||
|
updateSelItemsForDB(cartVO);
|
||||||
int resultCnt = cartDAO.changeCartType(cartVO);
|
int resultCnt = cartDAO.changeCartType(cartVO);
|
||||||
|
|
||||||
if(resultCnt > 0) return null;
|
if(resultCnt > 0) return null;
|
||||||
@ -97,8 +133,65 @@ public class CartServiceImpl implements CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public int changeCartTypeFromCookie(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception {
|
public String changeCartTypeToCookie(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO) throws Exception {
|
||||||
return 0;
|
|
||||||
|
if(cartVO == null) return "요청 정보가 없습니다.";
|
||||||
|
if(StringUtil.isEmpty(cartVO.getSelItems())) return "변경할 대상 정보가 없습니다.";
|
||||||
|
|
||||||
|
String checkResult = checkValidCartItems(cartVO.getCartTypeCd(), cartVO.getSelItems());
|
||||||
|
if(checkResult != null) return checkResult;
|
||||||
|
|
||||||
|
int totCnt = 0;
|
||||||
|
int sucCnt = 0;
|
||||||
|
int errCnt = 0;
|
||||||
|
|
||||||
|
String addCartTypeCd = null;
|
||||||
|
String delCartTypeCd = null;
|
||||||
|
|
||||||
|
if("1".equals(cartVO.getCartTypeCd())) {
|
||||||
|
addCartTypeCd = "1";
|
||||||
|
delCartTypeCd = "2";
|
||||||
|
} else if("2".equals(cartVO.getCartTypeCd())) {
|
||||||
|
addCartTypeCd = "2";
|
||||||
|
delCartTypeCd = "1";
|
||||||
|
} else {
|
||||||
|
return "카트 구분값 정보가 정확하지 않습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] masterIds = cartVO.getSelItems().split(",");
|
||||||
|
String resultMsgAdd = null;
|
||||||
|
String resultMsgDel = null;
|
||||||
|
|
||||||
|
// 쿠키 카트 정보 가져오기
|
||||||
|
CartCookieVO cartCookie = getCartCookieInfo(request);
|
||||||
|
|
||||||
|
for(int i=0; i<masterIds.length; i++) {
|
||||||
|
if(StringUtil.isEmpty(masterIds[i])) continue;
|
||||||
|
|
||||||
|
totCnt++;
|
||||||
|
resultMsgAdd = cartCookie.addCartItem(addCartTypeCd, masterIds[i]);
|
||||||
|
if(resultMsgAdd == null) {
|
||||||
|
sucCnt++;
|
||||||
|
resultMsgDel = cartCookie.removeCartItem(delCartTypeCd, masterIds[i]);
|
||||||
|
if(resultMsgDel != null) log.error("changeCartTypeFromCookie removing > " + delCartTypeCd + "카트 " + masterIds[i] + " : 삭제오류 => " + resultMsgDel);
|
||||||
|
} else {
|
||||||
|
errCnt++;
|
||||||
|
log.error("changeCartTypeFromCookie adding > " + addCartTypeCd + "카트 " + masterIds[i] + " : 추가 오류 => " + resultMsgAdd);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sucCnt > 0) {
|
||||||
|
String result = setCookieCart(response, cartCookie);
|
||||||
|
if(result == null) {
|
||||||
|
if(totCnt == sucCnt) return null;
|
||||||
|
else return String.format("총 %d건의 자료 중 %d건에 대한 변경 처리가 정상적으로 처리되었습니다.", totCnt, sucCnt);
|
||||||
|
} else {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return StringUtil.getString(resultMsgAdd, "") + StringUtil.getString(resultMsgDel, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -124,6 +217,126 @@ public class CartServiceImpl implements CartService
|
|||||||
return "등록 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
return "등록 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (비로그인자용) 카트에 추가한다.
|
||||||
|
*
|
||||||
|
* @param cartVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String insertCartItemToCookie(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO) throws Exception {
|
||||||
|
|
||||||
|
cartVO = checkValidCartItem(cartVO);
|
||||||
|
|
||||||
|
if(cartVO.getResultCode().charAt(0) != 'S') return cartVO.getResultMessage();
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------
|
||||||
|
// 등록 처리
|
||||||
|
//-----------------------------------------------
|
||||||
|
|
||||||
|
// 쿠키 카트 정보 가져오기
|
||||||
|
CartCookieVO cartCookie = getCartCookieInfo(request);
|
||||||
|
String result = cartCookie.addCartItem(cartVO.getCartTypeCd(), cartVO.getMasterId());
|
||||||
|
|
||||||
|
if(result != null) return result;
|
||||||
|
|
||||||
|
return setCookieCart(response, cartCookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (비로그인자용) 쿠키에서 카트 정보를 조회하여 CartCookieVO 생성하여 리턴한다.
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public CartCookieVO getCartCookieInfo(HttpServletRequest request) {
|
||||||
|
CartCookieVO cartCookieInfo = new CartCookieVO();
|
||||||
|
cartCookieInfo.setRentValues(getCookie(request, CART_COOKIE_NAME + "1"));
|
||||||
|
cartCookieInfo.setReadValues(getCookie(request, CART_COOKIE_NAME + "2"));
|
||||||
|
|
||||||
|
return cartCookieInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (비로그인자용) 쿠키 카트에 자료 항목을 추가한다.
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @param cartTypeCd
|
||||||
|
* @param masterId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String setCookieCart(HttpServletResponse response, CartCookieVO cartCookie) {
|
||||||
|
|
||||||
|
if(response == null) return "쿠키를 저장할 Response 객체 정보가 없습니다.";
|
||||||
|
if(cartCookie == null) return "쿠키에 저장할 카트정보가 없습니다.";
|
||||||
|
|
||||||
|
setCookie(response, CART_COOKIE_NAME + "1", cartCookie.getRentValues());
|
||||||
|
setCookie(response, CART_COOKIE_NAME + "2", cartCookie.getReadValues());
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (비로그인자용) 쿠키값을 설정한다.
|
||||||
|
*
|
||||||
|
* @param response
|
||||||
|
* @param name
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
public void setCookie(HttpServletResponse response, String name, String value) {
|
||||||
|
Cookie cookie = new Cookie(name, value);
|
||||||
|
response.addCookie(cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (비로그인자용) 쿠키값을 가져온다.
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param cookieName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getCookie(HttpServletRequest request, String cookieName) {
|
||||||
|
Cookie[] cookies = request.getCookies();
|
||||||
|
|
||||||
|
if(cookies == null || cookies.length < 1) return null;
|
||||||
|
if(StringUtil.isEmpty(cookieName)) return null;
|
||||||
|
|
||||||
|
for(Cookie cookie : cookies) {
|
||||||
|
if(cookieName.equalsIgnoreCase(cookie.getName())) {
|
||||||
|
return cookie.getValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당 자료가 대출/열람 카트 유형에 추가될 수 있는지 검증한다.
|
||||||
|
*
|
||||||
|
* @param String : null 정상
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String checkValidCartItems(String cartTypeCd, String selItems) throws Exception {
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(cartTypeCd)) return "카트 유형 정보가 존재하지 않습니다.";
|
||||||
|
if(StringUtil.isEmpty(selItems)) return "대상 자료 정보가 존재하지 않습니다.";
|
||||||
|
|
||||||
|
String masterIds[] = selItems.split(",");
|
||||||
|
for(int i=0; i<masterIds.length; i++) {
|
||||||
|
CollectionVO cartVO = CollectionVO.createWithMasterId(cartTypeCd, masterIds[i]);
|
||||||
|
cartVO = checkValidCartItem(cartVO);
|
||||||
|
|
||||||
|
if(cartVO.getResultCode().charAt(0) != 'S') return cartVO.getTitle() + "에 대한 유형변경은 불가합니다. 대출 또는 방문열람이 가능한 자료인지 확인바랍니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 카트에 추가할 수 있는 자료인지 확인하고, 대출/열람 유형을 검증한다. 필요시 대출/열람 유형을 변경하고 리턴한다.
|
* 카트에 추가할 수 있는 자료인지 확인하고, 대출/열람 유형을 검증한다. 필요시 대출/열람 유형을 변경하고 리턴한다.
|
||||||
*
|
*
|
||||||
@ -156,6 +369,9 @@ public class CartServiceImpl implements CartService
|
|||||||
|
|
||||||
// 자료 상세 조회 성공한 경우
|
// 자료 상세 조회 성공한 경우
|
||||||
if(collectionVO.getResultCode().startsWith("S")) {
|
if(collectionVO.getResultCode().startsWith("S")) {
|
||||||
|
|
||||||
|
cartVO.setTitle(collectionVO.getTitle());
|
||||||
|
|
||||||
// 대출인 경우
|
// 대출인 경우
|
||||||
if("1".equals(cartVO.getCartTypeCd())) {
|
if("1".equals(cartVO.getCartTypeCd())) {
|
||||||
|
|
||||||
@ -210,17 +426,6 @@ public class CartServiceImpl implements CartService
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* (비로그인자용) 카트에 추가한다.
|
|
||||||
*
|
|
||||||
* @param cartVO
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public String insertCartItemToCookie(HttpServletRequest request, CollectionVO cartVO) throws Exception {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
* (로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||||
*
|
*
|
||||||
@ -230,14 +435,17 @@ public class CartServiceImpl implements CartService
|
|||||||
*/
|
*/
|
||||||
public String deleteCartItems(CollectionVO cartVO) throws Exception {
|
public String deleteCartItems(CollectionVO cartVO) throws Exception {
|
||||||
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return "회원 정보가 없습니다.";
|
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return "회원 정보가 없습니다.";
|
||||||
if(StringUtil.isEmpty(cartVO.getSelItems())) return "삭제할 대상 정보가 없습니다.";
|
|
||||||
|
String selItems = cartVO.getSelItems();
|
||||||
|
if(StringUtil.isEmpty(selItems)) return "삭제할 자료 정보가 없습니다.";
|
||||||
|
|
||||||
|
updateSelItemsForDB(cartVO);
|
||||||
int resultCnt = cartDAO.deleteCartItems(cartVO);
|
int resultCnt = cartDAO.deleteCartItems(cartVO);
|
||||||
|
|
||||||
if(resultCnt > 0) return null;
|
if(resultCnt > 0) return null;
|
||||||
return "변경 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
return "변경 처리에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (비로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
* (비로그인자용) 카트에서 선택된 자료들을 삭제한다.
|
||||||
*
|
*
|
||||||
@ -245,10 +453,75 @@ public class CartServiceImpl implements CartService
|
|||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public String deleteCartItems(HttpServletRequest request, List<CollectionVO> targetCartItems) throws Exception {
|
public String deleteCartItemsFromCookie(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO) throws Exception {
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if(cartVO == null) return "요청 정보가 없습니다.";
|
||||||
|
if(StringUtil.isEmpty(cartVO.getSelItems())) return "변경할 대상 정보가 없습니다.";
|
||||||
|
|
||||||
|
int totCnt = 0;
|
||||||
|
int sucCnt = 0;
|
||||||
|
int errCnt = 0;
|
||||||
|
|
||||||
|
String delCartTypeCd = cartVO.getCartTypeCd();
|
||||||
|
|
||||||
|
if(!"1".equals(delCartTypeCd) && !"2".equals(delCartTypeCd)) {
|
||||||
|
return "카트 구분값 정보가 정확하지 않습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 쿠키 카트 정보 가져오기
|
||||||
|
CartCookieVO cartCookie = getCartCookieInfo(request);
|
||||||
|
|
||||||
|
String[] masterIds = cartVO.getSelItems().split(",");
|
||||||
|
String resultMsgDel = null;
|
||||||
|
for(int i=0; i<masterIds.length; i++) {
|
||||||
|
if(StringUtil.isEmpty(masterIds[i])) continue;
|
||||||
|
|
||||||
|
totCnt++;
|
||||||
|
resultMsgDel = cartCookie.removeCartItem(delCartTypeCd, masterIds[i]);
|
||||||
|
if(resultMsgDel == null) {
|
||||||
|
sucCnt++;
|
||||||
|
} else {
|
||||||
|
errCnt++;
|
||||||
|
log.error("changeCartTypeFromCookie removing > " + delCartTypeCd + "카트 " + masterIds[i] + " : 삭제 오류 => " + resultMsgDel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sucCnt > 0) {
|
||||||
|
String result = setCookieCart(response, cartCookie);
|
||||||
|
if(result == null) {
|
||||||
|
if(totCnt == sucCnt) return null;
|
||||||
|
else return String.format("총 %d건의 자료 중 %d건에 대한 삭제가 정상적으로 처리되었습니다.", totCnt, sucCnt);
|
||||||
|
} else {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return StringUtil.getString(resultMsgDel, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateSelItemsForDB(CollectionVO cartVO) {
|
||||||
|
|
||||||
|
if(cartVO == null || StringUtil.isEmpty(cartVO.getMbInfoId())) return;
|
||||||
|
|
||||||
|
String selItems = cartVO.getSelItems();
|
||||||
|
|
||||||
|
if(!selItems.startsWith("'")) {
|
||||||
|
String[] items = selItems.split(",");
|
||||||
|
String newSelItems = "";
|
||||||
|
for(String item : items) {
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(item)) continue;
|
||||||
|
|
||||||
|
if(newSelItems.length() > 0) newSelItems += ",";
|
||||||
|
|
||||||
|
newSelItems += "'" + item + "'";
|
||||||
|
}
|
||||||
|
cartVO.setSelItems(newSelItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("updateSelItemsForDB > " + cartVO.getSelItems());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
* 비로그인시 카트에 저장된 내역을 로그인한 후 해당 사용자의 카트로 저장하고, 쿠키 카트내용은 초기화한다.
|
||||||
*
|
*
|
||||||
@ -261,4 +534,4 @@ public class CartServiceImpl implements CartService
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
11
src/main/java/nlib/col/service/impl/CollectionDAO.java
Normal file
11
src/main/java/nlib/col/service/impl/CollectionDAO.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package nlib.col.service.impl;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import nlib.col.service.CollectionVO;
|
||||||
|
|
||||||
|
@Mapper("collectionDAO")
|
||||||
|
public interface CollectionDAO {
|
||||||
|
|
||||||
|
public CollectionVO selectMngOrgInfo(String masterId) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
@ -49,6 +49,10 @@ public class CollectionServiceImpl implements CollectionService {
|
|||||||
@Resource(name = "dataApi")
|
@Resource(name = "dataApi")
|
||||||
private DataApi dataApi;
|
private DataApi dataApi;
|
||||||
|
|
||||||
|
@Resource(name="collectionDAO")
|
||||||
|
private CollectionDAO collectionDAO;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 자료 상세정보를 조회한다.
|
* 자료 상세정보를 조회한다.
|
||||||
*
|
*
|
||||||
@ -262,8 +266,17 @@ public class CollectionServiceImpl implements CollectionService {
|
|||||||
vo.setRsrvPsblYn (cVO.getRsrvPsblYn());
|
vo.setRsrvPsblYn (cVO.getRsrvPsblYn());
|
||||||
vo.setReqPsblYn (cVO.getReqPsblYn());
|
vo.setReqPsblYn (cVO.getReqPsblYn());
|
||||||
vo.setInterestYn (cVO.getInterestYn());
|
vo.setInterestYn (cVO.getInterestYn());
|
||||||
|
|
||||||
|
// DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
||||||
|
// API에 존재하지 않을 경우, 추가 DB 조회
|
||||||
|
if(StringUtil.isEmpty(cVO.getMngOrgCd()) || StringUtil.isEmpty(cVO.getMngOrgNm())) {
|
||||||
|
CollectionVO dbVO = collectionDAO.selectMngOrgInfo(vo.getMasterId());
|
||||||
|
if(dbVO != null) {
|
||||||
|
vo.setMngOrgCd(dbVO.getMngOrgCd());
|
||||||
|
vo.setMngOrgNm(dbVO.getMngOrgNm());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// // DDDDDDDDDDDDDDDDDd 문화원 멀티 처리를 위해 테스트용으로 데이터 변경
|
// // DDDDDDDDDDDDDDDDDd 문화원 멀티 처리를 위해 테스트용으로 데이터 변경
|
||||||
// CollectionVO vo = list.get(cnt-2);
|
// CollectionVO vo = list.get(cnt-2);
|
||||||
|
|||||||
@ -1,10 +1,13 @@
|
|||||||
package nlib.col.web;
|
package nlib.col.web;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -63,15 +66,16 @@ public class CartController extends NlibCommonController
|
|||||||
* 로그인되지 않은 사용자의 경우, 쿠키에 저장된 값으로 처리한다.
|
* 로그인되지 않은 사용자의 경우, 쿠키에 저장된 값으로 처리한다.
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param cartTypeCd
|
* @param cartTyp
|
||||||
|
* eCd
|
||||||
* @param model
|
* @param model
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/cart/listCartItems.do")
|
@RequestMapping("/cart/listCartItems.do")
|
||||||
public String listCartItems(HttpServletRequest request, String message, String cartTypeCd, ModelMap model) throws Exception {
|
public String listCartItems(HttpServletRequest request, HttpServletResponse response, String message, String cartTypeCd, ModelMap model) throws Exception {
|
||||||
|
|
||||||
if(StringUtil.isEmpty(cartTypeCd)) cartTypeCd = "0"; // 대출 기본 설정
|
if(StringUtil.isEmpty(cartTypeCd)) cartTypeCd = "1"; // 대출 기본 설정
|
||||||
|
|
||||||
String mbInfoId = getMbInfoId(request);
|
String mbInfoId = getMbInfoId(request);
|
||||||
|
|
||||||
@ -80,20 +84,72 @@ public class CartController extends NlibCommonController
|
|||||||
// 카트 목록 가져오기
|
// 카트 목록 가져오기
|
||||||
if(StringUtil.isEmpty(mbInfoId)) {
|
if(StringUtil.isEmpty(mbInfoId)) {
|
||||||
// 쿠키에서 값 가져오기
|
// 쿠키에서 값 가져오기
|
||||||
list = cartService.listCartItemsFromCookie(request, cartTypeCd);
|
list = cartService.listCartItemsFromCookie(request, response, cartTypeCd);
|
||||||
|
|
||||||
|
// 카트 목록 자료에 대한 상세자료 설정
|
||||||
|
collectionService.setDetailInfoForList(list);
|
||||||
|
|
||||||
|
// 문화원별 정령 처리
|
||||||
|
list = sortCollectionListByMngOrgCd(list);
|
||||||
} else {
|
} else {
|
||||||
list = cartService.listCartItems(mbInfoId, cartTypeCd);
|
list = cartService.listCartItems(mbInfoId, cartTypeCd);
|
||||||
|
|
||||||
|
// 카트 목록 자료에 대한 상세자료 설정
|
||||||
|
collectionService.setDetailInfoForList(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 카트 목록 자료에 대한 상세자료 설정
|
|
||||||
collectionService.setDetailInfoForList(list);
|
|
||||||
|
|
||||||
|
if(StringUtil.isNotEmpty(message) && message.startsWith("%")) {
|
||||||
|
message = StringUtil.decodeUrl(message);
|
||||||
|
}
|
||||||
model.addAttribute("list", list);
|
model.addAttribute("list", list);
|
||||||
model.addAttribute("cartTypeCd", cartTypeCd);
|
model.addAttribute("cartTypeCd", cartTypeCd);
|
||||||
model.addAttribute("message", message);
|
model.addAttribute("message", message);
|
||||||
|
|
||||||
return "nlib/cart/listCartItems";
|
return "nlib/cart/listCartItems";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 자료 목록을 문화원별로 정렬하여 리턴한다.
|
||||||
|
*
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<CollectionVO> sortCollectionListByMngOrgCd(List<CollectionVO> list) {
|
||||||
|
|
||||||
|
if(list == null || list.size() < 1) return list;
|
||||||
|
|
||||||
|
Map<String, List<CollectionVO>> orgMap = new HashMap<String, List<CollectionVO>>();
|
||||||
|
|
||||||
|
for(CollectionVO vo : list) {
|
||||||
|
String mngOrgCd = vo.getMngOrgCd();
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(mngOrgCd)) {
|
||||||
|
mngOrgCd = "NONE";
|
||||||
|
vo.setMngOrgCd(mngOrgCd);
|
||||||
|
vo.setMngOrgNm("(없음)");
|
||||||
|
}
|
||||||
|
List<CollectionVO> orgList = orgMap.get(mngOrgCd);
|
||||||
|
if(orgList == null) {
|
||||||
|
orgList = new ArrayList<CollectionVO>();
|
||||||
|
}
|
||||||
|
|
||||||
|
orgList.add(vo);
|
||||||
|
|
||||||
|
orgMap.put(mngOrgCd, orgList);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<CollectionVO> retList = new ArrayList<CollectionVO>();
|
||||||
|
for(String key : orgMap.keySet()) {
|
||||||
|
List<CollectionVO> orgList = orgMap.get(key);
|
||||||
|
|
||||||
|
for(CollectionVO vo : orgList) {
|
||||||
|
retList.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return retList;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
* 카트 영역 구분코드를 변경한다. (대출 <-> 방문열람)
|
||||||
@ -105,20 +161,21 @@ public class CartController extends NlibCommonController
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/cart/changeCartType.do")
|
@RequestMapping("/cart/changeCartType.do")
|
||||||
public String changeCartType(HttpServletRequest request, CollectionVO cartVO, ModelMap model) throws Exception {
|
public String changeCartType(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
String message = null;
|
String message = null;
|
||||||
String mbInfoId = getMbInfoId(request);
|
String mbInfoId = getMbInfoId(request);
|
||||||
|
|
||||||
if(StringUtil.isEmpty(mbInfoId)) {
|
if(StringUtil.isEmpty(mbInfoId)) {
|
||||||
cartService.changeCartTypeFromCookie(request, null);
|
message = cartService.changeCartTypeToCookie(request, response, cartVO);
|
||||||
} else {
|
} else {
|
||||||
cartVO.setMbInfoId(getMbInfoId(request));
|
cartVO.setMbInfoId(getMbInfoId(request));
|
||||||
message = cartService.changeCartType(cartVO);
|
message = cartService.changeCartType(cartVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(message == null) message = "정상적으로 변경되었습니다.";
|
if(message == null) message = "정상적으로 변경되었습니다.";
|
||||||
model.addAttribute("message", message);
|
model.addAttribute("message", StringUtil.encodeUrl(message));
|
||||||
|
model.addAttribute("cartTypeCd", cartVO.getCartTypeCd());
|
||||||
return "redirect:/cart/listCartItems.do";
|
return "redirect:/cart/listCartItems.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,7 +189,7 @@ public class CartController extends NlibCommonController
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/cart/insertCartItemAjax.do")
|
@RequestMapping("/cart/insertCartItemAjax.do")
|
||||||
public ResponseEntity<String> insertCartItemAjax(HttpServletRequest request, @RequestBody CollectionVO cartVO, ModelMap model) throws Exception {
|
public ResponseEntity<String> insertCartItemAjax(HttpServletRequest request, HttpServletResponse response, @RequestBody CollectionVO cartVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
log.debug("insertCartItemAjax > masterId = " + cartVO.getMasterId());
|
log.debug("insertCartItemAjax > masterId = " + cartVO.getMasterId());
|
||||||
|
|
||||||
@ -152,11 +209,10 @@ public class CartController extends NlibCommonController
|
|||||||
cartVO.setMbInfoId(mbInfoId);
|
cartVO.setMbInfoId(mbInfoId);
|
||||||
cartVO.setRegId(mbInfoId);
|
cartVO.setRegId(mbInfoId);
|
||||||
message = cartService.insertCartItem(cartVO);
|
message = cartService.insertCartItem(cartVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
// 비회원인 경우
|
// 비회원인 경우
|
||||||
else {
|
else {
|
||||||
message = cartService.insertCartItemToCookie(request, cartVO);
|
message = cartService.insertCartItemToCookie(request, response, cartVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(message == null) {
|
if(message == null) {
|
||||||
@ -187,10 +243,16 @@ public class CartController extends NlibCommonController
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/cart/deleteCartItems.do")
|
@RequestMapping("/cart/deleteCartItems.do")
|
||||||
public String deleteCartItems(HttpServletRequest request, CollectionVO cartVO, ModelMap model) throws Exception {
|
public String deleteCartItems(HttpServletRequest request, HttpServletResponse response, CollectionVO cartVO, ModelMap model) throws Exception {
|
||||||
String mbInfoId = getMbInfoId(request);
|
String mbInfoId = getMbInfoId(request);
|
||||||
cartVO.setMbInfoId(mbInfoId);
|
cartVO.setMbInfoId(mbInfoId);
|
||||||
String message = cartService.deleteCartItems(cartVO);
|
String message = null;
|
||||||
|
|
||||||
|
if(!StringUtil.isEmpty(mbInfoId)) {
|
||||||
|
message = cartService.deleteCartItems(cartVO);
|
||||||
|
} else {
|
||||||
|
message = cartService.deleteCartItemsFromCookie(request, response, cartVO);
|
||||||
|
}
|
||||||
|
|
||||||
if(message == null) message = "정상적으로 삭제되었습니다.";
|
if(message == null) message = "정상적으로 삭제되었습니다.";
|
||||||
model.addAttribute("message", StringUtil.encodeUrl(message));
|
model.addAttribute("message", StringUtil.encodeUrl(message));
|
||||||
|
|||||||
@ -136,7 +136,7 @@ public class DataApiVO {
|
|||||||
|
|
||||||
public List<HashMap<String, String>> getList(String listName) {
|
public List<HashMap<String, String>> getList(String listName) {
|
||||||
if(StringUtil.isEmpty(listName)) return null;
|
if(StringUtil.isEmpty(listName)) return null;
|
||||||
if(listMap == null && listMap.size() < 1) return null;
|
if(listMap == null || listMap.size() < 1) return null;
|
||||||
|
|
||||||
return listMap.get(listName);
|
return listMap.get(listName);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,6 +87,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
.antMatchers("/code/**").permitAll()
|
.antMatchers("/code/**").permitAll()
|
||||||
.antMatchers("/homes/**").permitAll()
|
.antMatchers("/homes/**").permitAll()
|
||||||
.antMatchers("/homes/**").permitAll()
|
.antMatchers("/homes/**").permitAll()
|
||||||
|
.antMatchers("/cart/**").permitAll()
|
||||||
.antMatchers("/bbs/**").permitAll()
|
.antMatchers("/bbs/**").permitAll()
|
||||||
.anyRequest().authenticated()
|
.anyRequest().authenticated()
|
||||||
.and().formLogin()
|
.and().formLogin()
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package nlib.util;
|
package nlib.util;
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.net.URLDecoder;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@ -123,7 +124,7 @@ public class StringUtil extends StringUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base64로 인코딩한다.
|
* URLEncoder로 인코딩한다.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -142,6 +143,26 @@ public class StringUtil extends StringUtils {
|
|||||||
return encodedStr;
|
return encodedStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URLDecoder로 디코딩한다.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String decodeUrl(String str) {
|
||||||
|
|
||||||
|
if(isEmpty(str)) return "";
|
||||||
|
|
||||||
|
String decodedStr = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
decodedStr = URLDecoder.decode(str, "UTF-8");
|
||||||
|
} catch(Exception e) {
|
||||||
|
log.error("encodeUrl > Error while encoding for [" + str + "] " + e.toString());
|
||||||
|
decodedStr = str;
|
||||||
|
}
|
||||||
|
return decodedStr;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base64로 인코딩한다.
|
* Base64로 인코딩한다.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -74,7 +74,7 @@
|
|||||||
<![CDATA[
|
<![CDATA[
|
||||||
UPDATE MB_CART SET DELETE_YN = 'Y', MOD_ID = #{modId}, MOD_DD = NOW()
|
UPDATE MB_CART SET DELETE_YN = 'Y', MOD_ID = #{modId}, MOD_DD = NOW()
|
||||||
WHERE MB_INFO_ID = #{mbInfoId}
|
WHERE MB_INFO_ID = #{mbInfoId}
|
||||||
AND MB_CART_ID IN (${selItems})
|
AND MASTER_ID IN (${selItems})
|
||||||
AND DELETE_YN = 'N'
|
AND DELETE_YN = 'N'
|
||||||
]]>
|
]]>
|
||||||
</delete>
|
</delete>
|
||||||
@ -83,7 +83,7 @@
|
|||||||
<![CDATA[
|
<![CDATA[
|
||||||
UPDATE MB_CART SET CART_TYPE_CD = #{cartTypeCd}, MOD_ID = #{modId}, MOD_DD = NOW()
|
UPDATE MB_CART SET CART_TYPE_CD = #{cartTypeCd}, MOD_ID = #{modId}, MOD_DD = NOW()
|
||||||
WHERE MB_INFO_ID = #{mbInfoId}
|
WHERE MB_INFO_ID = #{mbInfoId}
|
||||||
AND MB_CART_ID IN (${selItems})
|
AND MASTER_ID IN (${selItems})
|
||||||
AND DELETE_YN = 'N'
|
AND DELETE_YN = 'N'
|
||||||
]]>
|
]]>
|
||||||
</update>
|
</update>
|
||||||
|
|||||||
@ -1,7 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><!--Converted at: Wed May 11 15:49:38 KST 2016-->
|
<?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"
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="CollectionDAO">
|
<mapper namespace="nlib.col.service.impl.CollectionDAO">
|
||||||
|
|
||||||
|
<select id="selectMngOrgInfo" parameterType="String" resultType="CollectionVO">
|
||||||
|
SELECT
|
||||||
|
A.MNG_ORG_CD
|
||||||
|
, B.DEPT_NM AS MNG_ORG_NM
|
||||||
|
FROM RG_MASTER A
|
||||||
|
LEFT OUTER JOIN SM_DEPT B ON A.MNG_ORG_CD = B.ORG_CD
|
||||||
|
WHERE A.MASTER_ID = #{masterId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
</mapper>
|
|
||||||
@ -189,16 +189,7 @@ function fn_changeCartItems(cartTypeCd, cartTypeNm) {
|
|||||||
cartTypeCd = <input type="text" id="cartTypeCd" name="cartTypeCd" value="${cartTypeCd }" />
|
cartTypeCd = <input type="text" id="cartTypeCd" name="cartTypeCd" value="${cartTypeCd }" />
|
||||||
mngOrgCd = <input type="text" id="mngOrgCd" name="mngOrgCd" value="" />
|
mngOrgCd = <input type="text" id="mngOrgCd" name="mngOrgCd" value="" />
|
||||||
selItems = <input type="text" id="selItems" name="selItems" value="" />
|
selItems = <input type="text" id="selItems" name="selItems" value="" />
|
||||||
message = ${message }
|
|
||||||
<br>
|
<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"}'>
|
<c:if test='${cartTypeCd == "1"}'>
|
||||||
<a href="javascript:void(0);" onclick="fn_search('1')"><span style="color:red">대출</span></a>
|
<a href="javascript:void(0);" onclick="fn_search('1')"><span style="color:red">대출</span></a>
|
||||||
@ -268,10 +259,11 @@ function fn_changeCartItems(cartTypeCd, cartTypeNm) {
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
chk_item_${cart.mngOrgCd }
|
chk_item_${cart.mngOrgCd }
|
||||||
<input type="checkbox" name="chk_item_${cart.mngOrgCd }" id="chk_item_${cart.mngOrgCd }" value="${cart.mbCartId }" /></td>
|
<input type="checkbox" name="chk_item_${cart.mngOrgCd }" id="chk_item_${cart.mngOrgCd }" value="${cart.masterId }" /></td>
|
||||||
<td>${cart.mbCartId }</td>
|
<td>${cart.mbCartId }</td>
|
||||||
<td><img src="${cart.rprsThumbUrl }" width="30" height="40"> : ${cart.interestYn }</td>
|
<td><img src="${cart.rprsThumbUrl }" width="30" height="40"> : ${cart.interestYn }</td>
|
||||||
<td>${cart.title }
|
<td>${cart.title }<br>
|
||||||
|
${cart.masterId }
|
||||||
${cart.mngOrgCd }
|
${cart.mngOrgCd }
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@ -85,7 +85,7 @@
|
|||||||
> useStatus = ${record.useStatus} <br />
|
> useStatus = ${record.useStatus} <br />
|
||||||
> masterId = ${record.masterId} <br />
|
> masterId = ${record.masterId} <br />
|
||||||
|
|
||||||
<input type="button" name="addCartBtn" id="addCartBtn" onclick="fn_addRentCart('${record.masterId}', '${record.mngOrgCd}', '${record.typeDivCd}', '${record.useStatus}')" value="관심자료 추가" />
|
<input type="button" name="addCartBtn" id="addCartBtn" onclick="fn_addRentCart('${record.masterId}', '${record.useStatus}')" value="관심자료 추가" />
|
||||||
<br />
|
<br />
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function fn_addRentCart(masterId, mngOrgCd, typeDivCd, useStatus) {
|
function fn_addRentCart(masterId, useStatus) {
|
||||||
|
|
||||||
/* useStatus
|
/* useStatus
|
||||||
01 : 이용가능
|
01 : 이용가능
|
||||||
@ -17,7 +17,7 @@ function fn_addRentCart(masterId, mngOrgCd, typeDivCd, useStatus) {
|
|||||||
06 : 열람대기(대출불가능)
|
06 : 열람대기(대출불가능)
|
||||||
07 : 온라인열람만"
|
07 : 온라인열람만"
|
||||||
*/
|
*/
|
||||||
fn_addRentCartItem(masterId, mngOrgCd, typeDivCd, useStatus
|
fn_addRentCartItem(masterId, useStatus
|
||||||
, function(data) {
|
, function(data) {
|
||||||
if(data.code == "S") {
|
if(data.code == "S") {
|
||||||
if(confirm(data.message + "\n카트로 이동하시겠습니까?")) {
|
if(confirm(data.message + "\n카트로 이동하시겠습니까?")) {
|
||||||
@ -39,7 +39,7 @@ function fn_gotoCart() {
|
|||||||
location.href = "/cart/listCartItems.do";
|
location.href = "/cart/listCartItems.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
function fn_addRentCartItem(masterId, mngOrgCd, typeDivCd, useStatus, resolve, reject) {
|
function fn_addRentCartItem(masterId, useStatus, resolve, reject) {
|
||||||
|
|
||||||
|
|
||||||
var cartTypeCd = null;
|
var cartTypeCd = null;
|
||||||
@ -73,8 +73,6 @@ function fn_addRentCartItem(masterId, mngOrgCd, typeDivCd, useStatus, resolve, r
|
|||||||
type : "POST",
|
type : "POST",
|
||||||
data: JSON.stringify({
|
data: JSON.stringify({
|
||||||
masterId : masterId,
|
masterId : masterId,
|
||||||
mngOrgCd : mngOrgCd,
|
|
||||||
typeDivCd : typeDivCd,
|
|
||||||
cartTypeCd : cartTypeCd
|
cartTypeCd : cartTypeCd
|
||||||
}),
|
}),
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user