Przeglądaj źródła

이태영 - 20210306 장바구니 임시 커밋

xodud1202 5 lat temu
rodzic
commit
8c8aeb2919

+ 19 - 3
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -203,6 +203,8 @@ public class TsfCartService {
 
 				cartDao.insertCartDetailInfo(param);		// 장바구니 상세 저장
 				cartDao.insertCartDetailHst(param);         // 장바구니 상세 이력 저장
+
+				log.info("CHECK INFO PARAM :::: {}", param.toString());
 			}
 		}
 	}
@@ -238,7 +240,7 @@ public class TsfCartService {
 		// 같은 장바구니 상품 확인
 		Collection<Integer> cartSqList = cartDao.selectHasNormalDealItemCartList(param);
 
-		if (cartSqList != null && cartSqList.size() > 0) {		// 장바구니 기존재
+		if (cartSqList != null && cartSqList.size() > 0) {			// 장바구니 기존재
 			if (cartSqList.size() > 1) {							// 장바구니 조회 결과 이상시 insert or select 수정 필요
 				throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
 			} else {
@@ -863,8 +865,22 @@ public class TsfCartService {
 				}
 			}
 		} else {
-			// TODO 세트가 아닐 경우 처리
-			int a = 0;
+			param.setCartGb(TscConstants.CartGb.CART.value());
+			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);                // 장바구니 수정 이력 저장
+				}
+			} else {
+				/*cartDao.insertCartInfo(param);					// 장바구니 마스터 정보 저장
+				cartDao.insertCartHst(param);                   // 장바구니 수정 이력 저장
+				cartDao.insertCartDetailInfo(param);			// 장바구니 상세 저장
+				cartDao.insertCartDetailHst(param);             // 장바구니 수정 이력 저장*/
+			}
 		}
 	}
 }

+ 13 - 5
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -66,11 +66,19 @@
 	<select id="selectHasNormalDealItemCartList" parameterType="Cart" resultType="int">
 		/* TsfCart.selectHasNormalDealItemCartList : 장바구니 등록 일반 or 딜 상품 확인 */
 		SELECT C.CART_SQ
-		  FROM TB_CART C
-		 WHERE 1=1
-		   AND C.CUST_NO = #{custNo}
-		   AND C.JSESSION_ID = #{jsessionId}
-		   AND C.GOODS_CD = #{goodsCd}
+		FROM   TB_CART C
+		INNER  JOIN TB_CART_DETAIL CD
+		ON     C.CART_SQ = CD.CART_SQ
+		WHERE  1=1
+		<if test="custNo != null and custNo > 0">
+		AND    C.CUST_NO = #{custNo}
+		</if>
+		<if test="custNo == null or custNo == 0">
+		AND    C.JSESSION_ID = #{jsessionId}
+		</if>
+		AND    C.GOODS_CD = #{goodsCd}
+		AND    C.CART_GB = #{cartGb}
+		AND    CD.OPT_CD = #{optCd}
 	</select>
 
 	<!-- 장바구니 신규 등록 -->

+ 10 - 4
src/main/webapp/WEB-INF/views/web/cart/cartChangeOptionPopupWeb.html

@@ -108,7 +108,7 @@
 												<th:block th:if="${color.cartColorNm != null}">
 													<th:block th:each="size, index : ${color.cartSizeList}">
 														<div>
-															<input type="radio" name="rdi-optsize" th:id="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|" th:value="${size.optCd}" th:checked="${size.cartOptCd != null}" th:disabled="${size.soldoutYn == 'Y' or cart.goodsQty < size.currStockQty}">
+															<input type="radio" name="rdi-optsize" th:id="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|" th:value="${size.optCd}" th:checked="${size.cartOptCd != null}" th:disabled="${size.soldoutYn == 'Y' or cart.goodsQty > size.currStockQty}">
 															<label th:for="|${'rdi-optsize' + size.goodsCd + '-' + size.optCd}|"><span th:text="${size.optCd2}"></span></label>
 														</div>
 													</th:block>
@@ -217,12 +217,18 @@
 				, goodsQty : $("input[name=goodsQty]").val()
 			}
 		} else if(cart.goodsType != "G056_S" && cart.selfGoodsYn == "Y") {
-			alert("자사 일반");
+			data = {
+				  cartSq : cart.cartSq
+				, goodsCd : cart.goodsCd
+				, goodsType : cart.goodsType
+				, optCd : $(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val()
+				, goodsQty : $("input[name=goodsQty]").val()
+			}
 		} else {
 			alert("입점업체");
 		}
 
-		$.ajax( {
+		/*$.ajax( {
 			type: "POST",
 			url : '/cart/change/option',
 			contentType: 'application/json',
@@ -233,7 +239,7 @@
 				$(".closeCartOptionModal").trigger("click");
 				getCartList();
 			}
-		});
+		});*/
 	}
 
 	$(".closeCartOptionModal").on("click", function() {

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

@@ -142,12 +142,17 @@
 												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm"><span>즉시구매</span></button>
 											</p>
 											<p class="util">
-                                        <span>
-                                            <button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                        </span>
+										<span>
+											<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
 												<span>
-                                            <button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                        </span>
+													<i class="ico ico_like2"></i>
+													<em class="sr-only">관심상품 추가</em>
+												</span>
+											</button>
+										</span>
+												<span>
+											<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+										</span>
 											</p>
 										</div>
 									</div>
@@ -272,12 +277,12 @@
 												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm"><span>즉시구매</span></button>
 											</p>
 											<p class="util">
-                                        <span>
-                                            <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                        </span>
+										<span>
+											<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
+										</span>
 												<span>
-                                            <button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                        </span>
+											<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
+										</span>
 											</p>
 										</div>
 									</div>
@@ -308,8 +313,8 @@
 			<div class="tit_box">
 				<h3>결제 정보</h3>
 				<span>
-                <em class="number" th:text="${order.totCartCnt}"></em>개의 상품
-            </span>
+				<em class="number" th:text="${order.totCartCnt}"></em>개의 상품
+			</span>
 			</div>
 			<div class="od_amount_box">
 				<dl>
@@ -364,10 +369,10 @@
 						<span class="availStdt"></span>&nbsp;~&nbsp;<span class="availEddt"></span>
 					</p>
 					<button type="button" class="btn_close_code" onClick="cancelCartCpn()">
-                    <span>
-                        <i class="ico ico_close1"></i>
-                        <em class="sr-only">닫기</em>
-                    </span>
+					<span>
+						<i class="ico ico_close1"></i>
+						<em class="sr-only">닫기</em>
+					</span>
 					</button>
 				</div>
 				<div class="info_coupon">
@@ -421,7 +426,7 @@
 		notApplyTmtbAreaList();
 
 		/* 세트상품 장바구니 */
-		/* let compsList = [];
+		/*let compsList = [];
 		let temp = new Object;
 		temp.goodsCd = "STYS00000042";
 		temp.itemCd = "14373746";
@@ -434,7 +439,7 @@
 		temp.contentsLoc = "G028_YYY";
 		temp.planDtlSq = "123";
 		compsList.push(temp);
-
+		temp = new Object;
 		temp.goodsCd = "STYS00000042";
 		temp.itemCd = "14373769";
 		temp.optCd = "블루110";
@@ -446,7 +451,7 @@
 		temp.contentsLoc = "G028_YYY";
 		temp.planDtlSq = "123";
 		compsList.push(temp);
-
+		temp = new Object;
 		temp.goodsCd = "STYS00000042";
 		temp.itemCd = "14373770";
 		temp.optCd = "아이보리110";
@@ -459,7 +464,9 @@
 		temp.planDtlSq = "123";
 		compsList.push(temp);
 
-		cfnAddCart(compsList); */
+		alert(JSON.stringify(compsList));
+
+		cfnAddCart(compsList);*/
 	});
 
 	function notApplyTmtbAreaList() {
@@ -480,7 +487,7 @@
 				notApplyQtyTmtbList.push(obj);
 			}
 
-			if($(this).parent().find("input[name=applyAmtSectionYn]").val() == "N") {       // 다다익선 금액은 기본상품만 가져오면됨 (N은 기본상품에 걸려있음)
+			if($(this).parent().find("input[name=applyAmtSectionYn]").val() == "N") {	   // 다다익선 금액은 기본상품만 가져오면됨 (N은 기본상품에 걸려있음)
 				let obj = new Object();
 				obj.tmtbSq = $(this).parent().find("input[name=amtTmtbSq]").val();
 				obj.tmtbNm = $(this).parent().find("input[name=amtTmtbNm]").val();
@@ -548,41 +555,41 @@
 			for(let j = 0 ; j < tmtb.goodsList.length ; j++) {
 				let goods = tmtb.goodsList[j];
 				tmtbHtml += '<div class="item_gd">\n' +
-					'                <figure>\n' +
-					'                    <a href="">\n' +
-					'                        <span class="thumb"><img src="';
+					'				<figure>\n' +
+					'					<a href="">\n' +
+					'						<span class="thumb"><img src="';
 				tmtbHtml += goods.imgPath;
 				tmtbHtml += '" alt=""></span>\n' +
-					'                    </a>\n' +
-					'                    <figcaption>\n' +
-					'                        <a href="">\n' +
-					'                            <div class="brand">';
+					'					</a>\n' +
+					'					<figcaption>\n' +
+					'						<a href="">\n' +
+					'							<div class="brand">';
 				tmtbHtml += goods.brandNm;
 				tmtbHtml += '</div>\n' +
-					'                            <div class="name">';
+					'							<div class="name">';
 				tmtbHtml += goods.goodsNm;
 				tmtbHtml += '</div>\n' +
-					'                            <div class="price">\n' +
-					'                                <span class="selling_price">';
+					'							<div class="price">\n' +
+					'								<span class="selling_price">';
 				tmtbHtml += Number(goods.currPrice).toLocaleString();
 				tmtbHtml += '</span>\n' +
-					'                            </div>\n' +
-					'                        </a>\n' +
-					'                    </figcaption>\n' +
-					'                </figure>\n' +
-					'            </div>';
+					'							</div>\n' +
+					'						</a>\n' +
+					'					</figcaption>\n' +
+					'				</figure>\n' +
+					'			</div>';
 			}
 
 			tmtbHtml += '<div class="txt">\n' +
-				'                <a href="">\n' +
-				'                    <i class="ico ico_saletag"></i>\n' +
-				'                    <input type="hidden" name="tmtbSq" value="' + tmtb.tmtbSq + '" />' +
-				'                    <span>\n';
+				'				<a href="">\n' +
+				'					<i class="ico ico_saletag"></i>\n' +
+				'					<input type="hidden" name="tmtbSq" value="' + tmtb.tmtbSq + '" />' +
+				'					<span>\n';
 			tmtbHtml += tmtb.tmtbNm;
 			tmtbHtml += '</span>\n' +
-				'                </a>\n' +
-				'            </div>\n' +
-				'        </div>';
+				'				</a>\n' +
+				'			</div>\n' +
+				'		</div>';
 		}
 
 		// 금액 다다익선 정보 HTML 작성
@@ -590,16 +597,16 @@
 			if (notApplyAmtTmtbList[i].tmtbSq != 0) {
 				let tmtb = notApplyAmtTmtbList[i];
 				tmtbHtml += '<div class="more_sale amtNotApplyTmtbList">\n' +
-					'            <div class="txt">\n' +
-					'                <a href="">\n' +
-					'                    <i class="ico ico_saletag"></i>\n' +
-					'                    <input type="hidden" name="tmtbSq" value="' + tmtb.tmtbSq + '" />' +
-					'                    <span>';
+					'			<div class="txt">\n' +
+					'				<a href="">\n' +
+					'					<i class="ico ico_saletag"></i>\n' +
+					'					<input type="hidden" name="tmtbSq" value="' + tmtb.tmtbSq + '" />' +
+					'					<span>';
 				tmtbHtml += tmtb.tmtbNm;
 				tmtbHtml += '</span>\n' +
-					'                </a>\n' +
-					'            </div>\n' +
-					'        </div>';
+					'				</a>\n' +
+					'			</div>\n' +
+					'		</div>';
 			}
 		}
 
@@ -754,7 +761,7 @@
 		});
 
 		// 선택된 장바구니 정보 가공
-		let data = {    cartSqArr : cartArr }
+		let data = {	cartSqArr : cartArr }
 		let jsonData = JSON.stringify(data);
 
 		$.ajax( {

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -33,7 +33,7 @@
 				url : '/order/create/preOrder',
 				dataType : 'html',
 				data : {
-					  pgGb		: "PAYCO"
+					  pgGb		: "KCP"
 					, payMeans	: "G014_30"
 					, ordNo		: "5"
 					, goodsNm	: "상품 테스트"