Procházet zdrojové kódy

이태영 - 20210311 장바구니 옵션변경

xodud1202 před 5 roky
rodič
revize
a4ada3f8df

+ 18 - 6
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -888,20 +888,32 @@ public class TsfCartService {
 			}
 		} else {
 			param.setCartGb(TscConstants.CartGb.CART.value());
+			param.setNotCartSq(param.getCartSq());						// 수정 장바구니 번호 제외
 			Collection<Integer> cartSqList = cartDao.selectHasNormalDealItemCartList(param);
 			if (cartSqList != null && cartSqList.size() > 0) {			// 장바구니 기존재
 				if (cartSqList.size() > 1) {							// 장바구니 조회 결과 이상시 insert or select 수정 필요
 					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
 				} else {
 					param.setCartSq(cartSqList.iterator().next());
-					cartDao.updateCartInfo(param);
-					cartDao.insertCartHst(param);                // 장바구니 수정 이력 저장
+					cartDao.updateCartInfo(param);				// 장바구니 기존 데이터에 UPDATE(수량증가)
+					cartDao.insertCartHst(param);				// 장바구니 수정 이력 저장
+
+					// 이전 장바구니에 수정되었으므로 현재 수정된 장바구니 데이터 삭제
+					int[] delCartSq = {param.getNotCartSq()};
+					param.setCartSqArr(delCartSq);
+					cartDao.deleteCart(param);					// 현재 장바구니 삭제
+					cartDao.deleteCartDetail(param);			// 현재 장바구니 삭제
 				}
 			} else {
-				/*cartDao.insertCartInfo(param);					// 장바구니 마스터 정보 저장
-				cartDao.insertCartHst(param);                   // 장바구니 수정 이력 저장
-				cartDao.insertCartDetailInfo(param);			// 장바구니 상세 저장
-				cartDao.insertCartDetailHst(param);             // 장바구니 수정 이력 저장*/
+				cartDao.updateCart(param);						// 장바구니 마스터 정보 저장
+				cartDao.insertCartHst(param);					// 장바구니 수정 이력 저장
+
+				param.setItemCd(param.getItemCds()[0]);
+				param.setCartDtlSq(param.getCartDtlSqArr()[0]);
+				param.setOptCd(param.getOptCds()[0]);
+
+				cartDao.updateCartDetail(param);                // 장바구니 상세 저장
+				cartDao.insertCartDetailHst(param);                // 장바구니 수정 이력 저장
 			}
 		}
 	}

+ 2 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -79,6 +79,7 @@
 		AND    C.GOODS_CD = #{goodsCd}
 		AND    C.CART_GB = #{cartGb}
 		AND    CD.OPT_CD = #{optCd}
+		AND    C.CART_SQ <![CDATA[ <> ]]> #{notCartSq}
 	</select>
 
 	<!-- 장바구니 신규 등록 -->
@@ -921,6 +922,7 @@
 			 , ST.CURR_STOCK_QTY
 			 , ST.SOLDOUT_YN
 			 , CD.OPT_CD AS CART_OPT_CD
+			 , CD.CART_DTL_SQ
 		FROM   TB_GOODS G
 		INNER  JOIN VW_STOCK ST
 		ON     G.GOODS_CD = ST.GOODS_CD

+ 34 - 9
src/main/webapp/WEB-INF/views/web/cart/cartChangeOptionPopupWeb.html

@@ -59,7 +59,6 @@
 
 										<div class="form_field">
 											<select class="setColorSelect">
-												<option th:data="${comp.goodsCd}" value="aa">TEST</option>
 												<th:block th:each="color, index : ${comp.cartColorList}">
 													<option th:data="${comp.goodsCd}" th:value="${color.optCd1}" rel="icon-temperature" th:text="${color.colorNm}" th:selected="${color.cartColorNm != null}"></option>
 												</th:block>
@@ -92,7 +91,7 @@
 										</div>
 										<ul>
 											<li th:each="color, index : ${comp.cartColorList}" class="selfGoodsColor">
-												<a href="" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
+												<a href="" th:cartDtlSq="${color.cartDtlSq}" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
 													<img th:src="${cart.imgPath + '/' + color.sysImgNm}" src="#" th:alt="${color.colorNm}" alt="" />
 												</a>
 											</li>
@@ -125,9 +124,9 @@
 											<span class="title">옵션선택</span>
 										</div>
 										<div class="form_field">
-											<select id="">
+											<select class="selfGoodsColor">
 												<th:block th:each="color, index : ${comp.cartColorList}">
-												<option th:value="${color.optCd}" th:text="${color.optCd1 + '/' + color.optCd2}" th:selected="${color.cartOptCd != null}"></option>
+												<option th:data="${color.cartDtlSq}" th:value="${color.optCd}" th:text="${color.optCd1 + '/' + color.optCd2}" th:selected="${color.cartOptCd != null}"></option>
 												</th:block>
 											</select>
 										</div>
@@ -182,7 +181,7 @@
 				if(optCd1 == size[j].optCd1) {
 					html += "<div>";
 					html += "<input type='radio' name='rdi-optsize' id='" + size[j].goodsCd + "-" + size[j].optCd + "' value='" + size[j].optCd + "' ";
-					if(size[j].soldoutYn == "Y" || cart.goodsQty < size[j].currStockQty) {
+					if(size[j].soldoutYn == "Y" || cart.goodsQty > size[j].currStockQty) {
 						html += "disabled = 'disabled'";
 					}
 					html += " />\n";
@@ -217,18 +216,44 @@
 				, goodsQty : $("input[name=goodsQty]").val()
 			}
 		} else if(cart.goodsType != "G056_S" && cart.selfGoodsYn == "Y") {
+			optCds.push($(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val());
+			itemCds.push(cart.goodsCd);
+			$(".selfGoodsColorSelect").each(function() {
+				if($(this).attr("cartDtlSq") > 0) {
+					cartDtlSqArr.push($(this).attr("cartDtlSq"));
+				}
+			});
+
 			data = {
 				  cartSq : cart.cartSq
 				, goodsCd : cart.goodsCd
 				, goodsType : cart.goodsType
-				, optCd : $(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val()
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
 				, goodsQty : $("input[name=goodsQty]").val()
 			}
 		} else {
-			alert("입점업체");
+			optCds.push($(".selfGoodsColor").val());
+			itemCds.push(cart.goodsCd);
+			$(".selfGoodsColor option").each(function() {
+				if($(this).attr("data") > 0) {
+					cartDtlSqArr.push($(this).attr("data"));
+				}
+			});
+
+			data = {
+				cartSq : cart.cartSq
+				, goodsCd : cart.goodsCd
+				, goodsType : cart.goodsType
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
+				, goodsQty : $("input[name=goodsQty]").val()
+			}
 		}
 
-		/*$.ajax( {
+		$.ajax( {
 			type: "POST",
 			url : '/cart/change/option',
 			contentType: 'application/json',
@@ -239,7 +264,7 @@
 				$(".closeCartOptionModal").trigger("click");
 				getCartList();
 			}
-		});*/
+		});
 	}
 
 	$(".closeCartOptionModal").on("click", function() {

+ 2 - 2
src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html

@@ -473,7 +473,7 @@
 		temp.goodsQty = 2;
 		temp.goodsType = "G056_D";
 		temp.dealGoodsCd = "STYD000000025"
-		temp.cartGb = "O";
+		temp.cartGb = "C";
 		temp.afLinkCd = "afLinkCd";
 		temp.ithrCd = "G027_ZZZ";
 		temp.contentsLoc = "G028_YYY";
@@ -486,7 +486,7 @@
 		temp.goodsQty = 3;
 		temp.goodsType = "G056_D";
 		temp.dealGoodsCd = "STYD000000025"
-		temp.cartGb = "O";
+		temp.cartGb = "C";
 		temp.afLinkCd = "afLinkCd";
 		temp.ithrCd = "G027_ZZZ";
 		temp.contentsLoc = "G028_YYY";