|
|
@@ -58,7 +58,7 @@ public class TsfCartService {
|
|
|
* @param params
|
|
|
*/
|
|
|
public void saveCartInfo(Collection<Cart> params) {
|
|
|
- Cart cart = new Cart();
|
|
|
+ String goodsType = "";
|
|
|
|
|
|
// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
|
|
|
Login login = new Login();
|
|
|
@@ -70,10 +70,6 @@ public class TsfCartService {
|
|
|
|
|
|
// 장바구니 상품 및 재고 가능 여부 체크
|
|
|
for (Cart param : params) {
|
|
|
- cart.setJsessionId(TscSession.getSessionId());
|
|
|
- cart.setRegNo(login.getCustNo());
|
|
|
- cart.setUpdNo(login.getCustNo());
|
|
|
- cart.setCustNo(login.getCustNo());
|
|
|
|
|
|
// 상품 마스터 정보 확인
|
|
|
Goods goods = new Goods();
|
|
|
@@ -102,24 +98,22 @@ public class TsfCartService {
|
|
|
throw new IllegalArgumentException(stockResult);
|
|
|
}
|
|
|
|
|
|
- cart.setGoodsCd(param.getGoodsCd());
|
|
|
-
|
|
|
// 장바구니에 있는 같은 상품(옵션이 상이해도 같은 상품이므로 상품 전체 조회)
|
|
|
int goodsCartCnt = cartDao.getHasGoodsCartCnt(param);
|
|
|
if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
|
|
|
throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
|
|
|
}
|
|
|
|
|
|
- cart = param;
|
|
|
+ goodsType = param.getGoodsType();
|
|
|
}
|
|
|
|
|
|
// 장바구니 정보 수정
|
|
|
- if (cart.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {
|
|
|
+ if (goodsType.equals(TscConstants.GoodsType.SET.value())) {
|
|
|
// 세트상품일 경우
|
|
|
saveSetTypeCartInfo(params);
|
|
|
} else {
|
|
|
// 세트 상품이 아닐 경우
|
|
|
- saveNormalDealCartInfo(params.iterator().next());
|
|
|
+ saveNormalDealCartInfo(params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -169,8 +163,12 @@ public class TsfCartService {
|
|
|
cart.setGoodsType(params.iterator().next().getGoodsType());
|
|
|
cart.setItemCdSql(sb.toString());
|
|
|
|
|
|
+ Collection<Cart> cartSqList = null;
|
|
|
+
|
|
|
if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "C".equals(params.iterator().next().getCartGb())) {
|
|
|
cart.setCartGb(TscConstants.CartGb.CART.value());
|
|
|
+ cartSqList = cartDao.selectHasSetItemCartList(cart);
|
|
|
+ // 같은 장바구니 상품 확인
|
|
|
} else if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "O".equals(params.iterator().next().getCartGb())) {
|
|
|
if ("P".equals(TsfSession.getFrontGb())) {
|
|
|
cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
|
|
|
@@ -181,9 +179,6 @@ public class TsfCartService {
|
|
|
cart.setCartGb(TscConstants.CartGb.CREATE_ORDER.value());
|
|
|
}
|
|
|
|
|
|
- // 같은 장바구니 상품 확인
|
|
|
- Collection<Cart> cartSqList = cartDao.selectHasSetItemCartList(cart);
|
|
|
-
|
|
|
if (cartSqList != null && cartSqList.size() > 0) { // 장바구니 기존재
|
|
|
if (cartSqList.size() > 1) { // 장바구니 조회 결과 이상시 insert or select 수정 필요
|
|
|
throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
|
|
|
@@ -195,6 +190,9 @@ public class TsfCartService {
|
|
|
} else {
|
|
|
cartDao.insertCartInfo(cart); // 장바구니 마스터 정보 저장
|
|
|
cartDao.insertCartHst(cart); // 장바구니 이력 정보 저장
|
|
|
+
|
|
|
+ TsfSession.setAttribute("cartSqArr", cart.getCartSq()+"");
|
|
|
+
|
|
|
for (Cart param : params) {
|
|
|
param.setCartSq(cart.getCartSq());
|
|
|
param.setRegNo(cart.getRegNo());
|
|
|
@@ -210,50 +208,74 @@ public class TsfCartService {
|
|
|
}
|
|
|
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public void saveNormalDealCartInfo(Cart param) {
|
|
|
+ public void saveNormalDealCartInfo(Collection<Cart> params) {
|
|
|
+ Cart cart = new Cart();
|
|
|
// 로그인 정보
|
|
|
if(TsfSession.isLogin()) {
|
|
|
Login login = TsfSession.getInfo();
|
|
|
- param.setRegNo(login.getCustNo());
|
|
|
- param.setCustNo(login.getCustNo());
|
|
|
- param.setUpdNo(login.getCustNo());
|
|
|
+ cart.setCustNo(login.getCustNo());
|
|
|
} else {
|
|
|
- param.setCustNo(0);
|
|
|
- param.setRegNo(0);
|
|
|
- param.setUpdNo(0);
|
|
|
+ cart.setCustNo(0);
|
|
|
}
|
|
|
- param.setJsessionId(TscSession.getSessionId());
|
|
|
-
|
|
|
+ cart.setJsessionId(TscSession.getSessionId());
|
|
|
|
|
|
- if ("C".equals(param.getCartGb())) {
|
|
|
- param.setCartGb(TscConstants.CartGb.CART.value());
|
|
|
- } else if ("O".equals(param.getCartGb())) {
|
|
|
+ if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "C".equals(params.iterator().next().getCartGb())) {
|
|
|
+ cart.setCartGb(TscConstants.CartGb.CART.value());
|
|
|
+ } else if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "O".equals(params.iterator().next().getCartGb())) {
|
|
|
if ("P".equals(TsfSession.getFrontGb())) {
|
|
|
- param.setCartGb(TscConstants.CartGb.PC_ORDER.value());
|
|
|
+ cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
|
|
|
} else {
|
|
|
- param.setCartGb(TscConstants.CartGb.MOB_ORDER.value());
|
|
|
+ cart.setCartGb(TscConstants.CartGb.MOB_ORDER.value());
|
|
|
}
|
|
|
} else {
|
|
|
- param.setCartGb(TscConstants.CartGb.CREATE_ORDER.value());
|
|
|
+ cart.setCartGb(TscConstants.CartGb.CREATE_ORDER.value());
|
|
|
}
|
|
|
|
|
|
- // 같은 장바구니 상품 확인
|
|
|
- Collection<Integer> cartSqList = cartDao.selectHasNormalDealItemCartList(param);
|
|
|
+ // 세션 추가용 변수
|
|
|
+ List<String> sendCartSqList = new ArrayList<String>();
|
|
|
+ for(Cart item : params) {
|
|
|
+ item.setCartGb(cart.getCartGb());
|
|
|
+ item.setCustNo(cart.getCustNo());
|
|
|
+ item.setRegNo(cart.getCustNo());
|
|
|
+ item.setUpdNo(cart.getCustNo());
|
|
|
+ item.setJsessionId(cart.getJsessionId());
|
|
|
|
|
|
- if (cartSqList != null && cartSqList.size() > 0) { // 장바구니 기존재
|
|
|
- if (cartSqList.size() > 1) { // 장바구니 조회 결과 이상시 insert or select 수정 필요
|
|
|
- throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
|
|
|
+ // 같은 장바구니 상품 확인
|
|
|
+ Collection<Integer> cartSqList = null;
|
|
|
+ if(TscConstants.CartGb.CART.value().equals(cart.getCartGb())) {
|
|
|
+ cartSqList = cartDao.selectHasNormalDealItemCartList(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cartSqList != null && cartSqList.size() > 0) { // 장바구니 기존재
|
|
|
+ if (cartSqList.size() > 1) { // 장바구니 조회 결과 이상시 insert or select 수정 필요
|
|
|
+ throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
|
|
|
+ } else {
|
|
|
+ item.setCartSq(cartSqList.iterator().next());
|
|
|
+ cartDao.updateCartInfo(item);
|
|
|
+ cartDao.insertCartHst(item); // 장바구니 수정 이력 저장
|
|
|
+ }
|
|
|
} else {
|
|
|
- param.setCartSq(cartSqList.iterator().next());
|
|
|
- cartDao.updateCartInfo(param);
|
|
|
- cartDao.insertCartHst(param); // 장바구니 수정 이력 저장
|
|
|
+ cartDao.insertCartInfo(item); // 장바구니 마스터 정보 저장
|
|
|
+ cartDao.insertCartHst(item); // 장바구니 수정 이력 저장
|
|
|
+ cartDao.insertCartDetailInfo(item); // 장바구니 상세 저장
|
|
|
+ cartDao.insertCartDetailHst(item); // 장바구니 수정 이력 저장
|
|
|
+
|
|
|
+ sendCartSqList.add(item.getCartSq() + "");
|
|
|
}
|
|
|
- } else {
|
|
|
- cartDao.insertCartInfo(param); // 장바구니 마스터 정보 저장
|
|
|
- cartDao.insertCartHst(param); // 장바구니 수정 이력 저장
|
|
|
- cartDao.insertCartDetailInfo(param); // 장바구니 상세 저장
|
|
|
- cartDao.insertCartDetailHst(param); // 장바구니 수정 이력 저장
|
|
|
}
|
|
|
+
|
|
|
+ StringBuilder cartSqComma = new StringBuilder();
|
|
|
+
|
|
|
+ int i = 0;
|
|
|
+ for(String cartSq : sendCartSqList) {
|
|
|
+ if(i > 0) {
|
|
|
+ cartSqComma.append(",");
|
|
|
+ }
|
|
|
+ cartSqComma.append(cartSq);
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+
|
|
|
+ TsfSession.setAttribute("cartSqArr", cartSqComma.toString());
|
|
|
}
|
|
|
|
|
|
// 장바구니 상품 리스트 조회 서비스
|