|
|
@@ -1,18 +1,19 @@
|
|
|
package com.style24.front.biz.service;
|
|
|
|
|
|
+import com.style24.core.support.env.TscConstants;
|
|
|
import com.style24.core.support.session.TscSession;
|
|
|
-import com.style24.front.support.env.TsfConstants;
|
|
|
+import com.style24.front.biz.dao.TsfCartDao;
|
|
|
import com.style24.persistence.domain.Cart;
|
|
|
import com.style24.persistence.domain.Goods;
|
|
|
import com.style24.persistence.domain.GoodsStock;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import com.style24.front.biz.dao.TsfCartDao;
|
|
|
-
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* 장바구니 Service
|
|
|
*
|
|
|
@@ -36,15 +37,17 @@ public class TsfCartService {
|
|
|
* @param cart
|
|
|
*/
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public void saveCartInfo(Cart param) {
|
|
|
- Cart cart = new Cart(); // 최종 정보가 담길 cart 객체
|
|
|
+ public void saveCartInfo(Collection<Cart> params) {
|
|
|
+ Cart cart = new Cart();
|
|
|
// JSESSION_ID 저장
|
|
|
- param.setJsessionId(TscSession.getSessionId());
|
|
|
+ cart.setJsessionId(TscSession.getSessionId());
|
|
|
|
|
|
// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
|
|
|
+ cart.setRegNo(0);
|
|
|
+ cart.setUpdNo(0);
|
|
|
|
|
|
// 상품 정보 확인
|
|
|
- Goods goods = new Goods(); // 상품 마스터 정보
|
|
|
+ /*Goods goods = new Goods(); // 상품 마스터 정보
|
|
|
goods.setGoodsCd(param.getGoodsCd());
|
|
|
goods = goodsService.getGoodsInfo(goods);
|
|
|
if(goods == null) {
|
|
|
@@ -53,10 +56,13 @@ public class TsfCartService {
|
|
|
|
|
|
cart.setGoodsCd(goods.getGoodsCd());
|
|
|
cart.setProductNo(goods.getProductNo());
|
|
|
- cart.setProductCode(goods.getProductCode());
|
|
|
+ cart.setProductCode(goods.getProductCode());*/
|
|
|
+
|
|
|
+ // 재고 정보 확인
|
|
|
+
|
|
|
|
|
|
// 재고 정보 확인
|
|
|
- if(TsfConstants.GOODS_TYPE.SET.value().equals(goods.getGoodsType())) { // 장바구니 상품이 세트상품이라면
|
|
|
+ /*if(TscConstants.GOODS_TYPE.SET.value().equals(goods.getGoodsType())) { // 장바구니 상품이 세트상품이라면
|
|
|
if(param.getCompsList() != null && param.getCompsList().size() > 0) {
|
|
|
for(int i = 0 ; i < param.getCompsList().size() ; i++) {
|
|
|
Cart tCart = param.getCompsList().get(i);
|
|
|
@@ -69,7 +75,7 @@ public class TsfCartService {
|
|
|
|
|
|
// 구성상품 재고 정보
|
|
|
GoodsStock stock = new GoodsStock();
|
|
|
- stock.setGoodsCd(compsGoodsInfo.getGoodsCd());
|
|
|
+ stock.setGoodsCd(compsGoodsInfo.getCompsGoodsCd());
|
|
|
stock.setOptCd(tCart.getOptCd());
|
|
|
stock = goodsService.getGoodsStockInfo(stock);
|
|
|
|
|
|
@@ -78,7 +84,7 @@ public class TsfCartService {
|
|
|
}
|
|
|
|
|
|
// 세트상품 요청 수량 * 구성상품 필요 수량이 해당 구성수량의 재고보다 많으면
|
|
|
- if(param.getItemQty() * compsGoodsInfo.getQty() > stock.getCurrStockQty()) {
|
|
|
+ if(param.getGoodsQty() * compsGoodsInfo.getQty() > stock.getCurrStockQty()) {
|
|
|
throw new IllegalArgumentException("요청하신 수량만큼의 재고가 존재하지 않습니다.");
|
|
|
}
|
|
|
|
|
|
@@ -86,20 +92,54 @@ public class TsfCartService {
|
|
|
tCart.setOptCd(stock.getOptCd());
|
|
|
tCart.setOptCd1(stock.getOptCd1());
|
|
|
tCart.setOptCd2(stock.getOptCd2());
|
|
|
- tCart.setSkuModelNo(stock.getSKU_MODEL_NO());
|
|
|
+ tCart.setSkuModelNo(stock.getSkuModelNo());
|
|
|
tCart.setProductNo(compsGoodsInfo.getProductNo());
|
|
|
tCart.setProductCode(compsGoodsInfo.getProductCode());
|
|
|
- tCart.setItemQty(param.getItemQty() * compsGoodsInfo.getQty());
|
|
|
+ tCart.setItemQty(compsGoodsInfo.getQty());
|
|
|
}
|
|
|
} else {
|
|
|
throw new IllegalArgumentException("세트 상품 정보가 존재하지 않습니다.");
|
|
|
}
|
|
|
} else { // 딜상품이거나 일반 상품일 경우
|
|
|
|
|
|
- }
|
|
|
+ }*/
|
|
|
+
|
|
|
+ // 현재 장바구니에 존재하는지 확인 후 정보 저장
|
|
|
+ /*if(param.getCompsList() != null && param.getCompsList().size() > 0) { // 세트상품
|
|
|
+ int haveCartSq = 0, ifHaveSq = 0;
|
|
|
+ for(int i = 0 ; i < param.getCompsList().size() ; i++) { // 세트상품 전체 옵션이 같은지 확인
|
|
|
+ int cnt = 0; // 맞는 수량 체크
|
|
|
+ List<Cart> goodsCartList = cartDao.getHasGoodsCartList(param); // 해당 세트 상품이 있는 cart_sq 검색
|
|
|
+
|
|
|
+ // cart_sq마다 같은 옵션의 세트상품이 있는지 검색
|
|
|
+ for (Cart value : goodsCartList) {
|
|
|
+ Cart searchParam = new Cart();
|
|
|
+ searchParam.setCartSq(value.getCartSq());
|
|
|
+ searchParam.setItemCd(param.getCompsList().get(i).getCompsGoodsCd());
|
|
|
+ searchParam.setOptCd(param.getCompsList().get(i).getOptCd());
|
|
|
+
|
|
|
+ if (cartDao.getCartDetailCnt(searchParam) > 0) {
|
|
|
+ cnt++;
|
|
|
+ ifHaveSq = searchParam.getCartSq();
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 현재 장바구니에 존재하는지 확인
|
|
|
+ if(param.getCompsList().size() == cnt) {
|
|
|
+ haveCartSq = ifHaveSq;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(haveCartSq != 0) { // 세트상품 전체 옵션이 같은 장바구니가 있다면
|
|
|
+ // update (추가)
|
|
|
+ Cart updateInfo = new Cart();
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // insert (추가)
|
|
|
+ }
|
|
|
+ } else { // 세트상품이 아닐 경우
|
|
|
|
|
|
- // 존재하면 update 없으면 insert
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|