Sfoglia il codice sorgente

이태영 - 20210311 장바구니 바로구매

xodud1202 5 anni fa
parent
commit
bad7328265

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

@@ -331,16 +331,16 @@ public class TsfCartService {
 					cart.setTmtbDcAmt(cart.getCurrPrice());
 				}
 			}
+		}
 
-			// 장바구니 업체별 배송비 계산
-			setCartListDelvFeeInfo(cartGoodsList);
+		// 장바구니 업체별 배송비 계산
+		setCartListDelvFeeInfo(cartGoodsList);
 
-			// 자사 / 입점업체 리스트 분리
-			order = getCartDelvGoodsCntList(cartGoodsList);
+		// 자사 / 입점업체 리스트 분리
+		order = getCartDelvGoodsCntList(cartGoodsList);
 
-			// 총계 금액 계산
-			setCartListTotAmtInfo(cartGoodsList, order);
-		}
+		// 총계 금액 계산
+		setCartListTotAmtInfo(cartGoodsList, order);
 
 		return order;
 	}

+ 4 - 2
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -123,6 +123,10 @@ public class TsfCartController extends TsfBaseController {
 			order.setShotCanYn("Y");
 			order.setShotDelvDt(format.format(time));
 		} else {
+			SimpleDateFormat format = new SimpleDateFormat ( "MM/dd");
+			Date time = new Date();
+			order.setShotDelvDt(format.format(time));
+
 			order.setShotCanYn("N");
 			order.setShotDelvYn("N");
 		}
@@ -133,8 +137,6 @@ public class TsfCartController extends TsfBaseController {
 		model.addAttribute("delvCartList", order.getDelvCartList());
 		model.addAttribute("IMG_PATH", env.getProperty("upload.goods.view"));
 
-		log.info("CHECK SESSION CARTSQARR INFO ::: {}", TsfSession.getAttribute("cartSqArr"));
-
 		return super.getDeviceViewName("cart/cartListAjaxForm");
 	}
 

+ 2 - 2
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -93,8 +93,8 @@ public class TsfOrderController extends TsfBaseController {
 		order.setCartSqArr(arr);		// 장바구니시퀀스
 		order.setShotDelvUseYn("Y");	// 장바구니총알배송사용여부
 		
-		mav.addObject("order" 	, order);										// 주문정보
-		mav.addObject("isLogin"	, TsfSession.isLogin());						// 로그인여부
+		mav.addObject("order" 	, order);						// 주문정보
+		mav.addObject("isLogin"	, TsfSession.isLogin());		// 로그인여부
 		mav.setViewName(super.getDeviceViewName("order/OrderNoMember"));		// 비회원주문서화면
 
 		return mav;

+ 25 - 11
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -26,6 +26,8 @@
 		AND    OD.ORD_EXCH_GB = 'O'
 		AND    DATE(ORD_DT) = CURRENT_DATE
 		AND    OD.ORD_DTL_STAT <![CDATA[ <> ]]> 'G013_00'
+		AND    OD.ORD_DTL_STAT <![CDATA[ <> ]]> 'G013_98'
+		AND    OD.ORD_DTL_STAT <![CDATA[ <> ]]> 'G013_99'
 		AND    OD.GOODS_CD = #{goodsCd}
 		AND    O.CUST_NO = #{custNo}
 	</select>
@@ -510,7 +512,7 @@
 			 , Z.SUPPLY_COMP_CD
 			 , Z.DELV_FEE_CD
 			 , (Z.CURR_PRICE + Z.OPT_ADD_PRICE) * Z.GOODS_QTY AS CURR_PRICE
-			 , Z.SOLDOUT_YN
+			 , CASE WHEN Z.SOLDOUT_YN = 'N' AND Z.CUST_TODAY_ORD = 0 AND Z.NOCUST_TODAY_ORD = 0 THEN 'N' ELSE 'Y' END AS SOLDOUT_YN
 			 , CASE WHEN #{frontGb} = 'P' THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
 					ELSE (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100) END AS SAVE_PNT_AMT
 			 , SYS_IMG_NM
@@ -533,8 +535,8 @@
 					 , FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb}) AS CURR_PRICE
 					 , IFNULL(O.ADD_PRICE, 0) AS OPT_ADD_PRICE
 					 , BR.BRAND_ENM
-		             , BR.BRAND_KNM
-		             , CT.CUST_GRADE
+					 , BR.BRAND_KNM
+					 , CT.CUST_GRADE
 					 , CASE WHEN GOG.CUST_GRADE IS NOT NULL AND GOG.CUST_GRADE = IFNULL(CT.CUST_GRADE, '') THEN GOG.CUST_GRADE
 							WHEN GOG.CUST_GRADE IS NOT NULL THEN 'NO'
 							ELSE CT.CUST_GRADE END AS ORDER_GRADE
@@ -542,22 +544,34 @@
 					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CD.ITEM_CD) AS ITEM_NM
 					 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 							ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
+					 , CASE WHEN C.CUST_NO > 0 AND (SELECT IFNULL(SUM(OD.ORD_QTY), 0)
+													FROM   TB_ORDER_DETAIL OD
+													INNER  JOIN TB_ORDER O
+													ON     OD.ORD_NO = O.ORD_NO
+													WHERE  O.CUST_NO = C.CUST_NO
+													AND    OD.ORD_EXCH_GB = 'O'
+													AND    OD.ORD_DTL_STAT <![CDATA[ <> ]]> 'G013_00'
+													AND    OD.ORD_DTL_STAT <![CDATA[ <> ]]> 'G013_98'
+													AND    OD.ORD_DTL_STAT <![CDATA[ <> ]]> 'G013_99'
+													AND    OD.GOODS_CD = C.GOODS_CD
+													AND    DATE(ORD_DT) = CURRENT_DATE) + C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END CUST_TODAY_ORD
+					 , CASE WHEN C.CUST_NO = 0 AND C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END AS NOCUST_TODAY_ORD
 					 , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
 							ELSE (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
 				FROM   TB_CART C
 				INNER  JOIN TB_CART_DETAIL CD
-				ON	 C.CART_SQ = CD.CART_SQ
+				ON     C.CART_SQ = CD.CART_SQ
 				INNER  JOIN TB_GOODS G
-				ON	 C.GOODS_CD = G.GOODS_CD
+				ON     C.GOODS_CD = G.GOODS_CD
 				INNER  JOIN TB_BRAND BR 
-				ON	 G.BRAND_CD = BR.BRAND_CD
+				ON     G.BRAND_CD = BR.BRAND_CD
 				INNER  JOIN TB_DELV_FEE_POLICY DFP
-				ON	 G.DELV_FEE_CD = DFP.DELV_FEE_CD
+				ON     G.DELV_FEE_CD = DFP.DELV_FEE_CD
 				INNER  JOIN TB_OPTION O
-				ON	 CD.ITEM_CD = O.GOODS_CD
-				AND	CD.OPT_CD = O.OPT_CD
+				ON     CD.ITEM_CD = O.GOODS_CD
+				AND    CD.OPT_CD = O.OPT_CD
 				INNER  JOIN (   SELECT A.CART_SQ
-									 , MIN(A.SOLDOUT_YN) AS SOLDOUT_YN
+									 , MAX(A.SOLDOUT_YN) AS SOLDOUT_YN
 								FROM   (SELECT C.CART_SQ
 											 , CASE WHEN VS.SOLDOUT_YN = 'N' AND VS.CURR_STOCK_QTY >= C.GOODS_QTY * GC.QTY THEN 'N'
 													ELSE 'Y' END AS SOLDOUT_YN
@@ -609,7 +623,7 @@
 									   ) A
 								GROUP  BY  A.CART_SQ
 					   ) STOCK
-				ON	   C.CART_SQ = STOCK.CART_SQ
+				ON     C.CART_SQ = STOCK.CART_SQ
 				LEFT   OUTER JOIN TB_CUSTOMER CT
 				ON     C.CUST_NO = CT.CUST_NO
 				LEFT   OUTER JOIN TB_GOODS_ORDER_GRADE GOG

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

@@ -1,11 +1,11 @@
 <html lang="ko"
 	  xmlns:th="http://www.thymeleaf.org">
 <form id="cartListForm" method="post" action="/order/noMember">
-	<input type="hidden" name="cartCpnDcAmt" id="cartCpnDcAmt" th:value="${param.cartCpnDcAmt}" />
+	<!--<input type="hidden" name="cartCpnDcAmt" id="cartCpnDcAmt" th:value="${param.cartCpnDcAmt}" />-->
 
 	<!-- CONT-BODY -->
 	<div class="od_cont">
-		<div class="sec_head" th:if="${order.shotCanYn.equals('Y')}">
+		<div class="sec_head shotDelvSelect">
 			<div class="tbl type4">
 				<table>
 					<colgroup>
@@ -20,11 +20,11 @@
 						<td>
 							<div class="form_field">
 								<div>
-									<input type="radio" name="shotDelvYn" id="blt_ship1" value="">
+									<input type="radio" name="shotDelvUseYn" id="blt_ship1" value="Y" th:checked="${order.shotCanYn.equals('Y')}">
 									<label for="blt_ship1"><span><em class="tag">총알배송</em><span th:text="|${order.shotDelvDt}일 24:00 까지 도착|"></span></span></label>
 								</div>
 								<div>
-									<input type="radio" name="shotDelvYn" id="blt_ship2" value="" checked="">
+									<input type="radio" name="shotDelvUseYn" id="blt_ship2" value="N" th:checked="${!order.shotCanYn.equals('Y')}">
 									<label for="blt_ship2"><span>총알 배송 안함</span></label>
 								</div>
 							</div>
@@ -139,7 +139,7 @@
 											<p class="point"><span th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></span>p 적립예정</p>
 											<p>
 												<button th:if="${cart.soldoutYn.equals('Y')}" type="button" class="btn btn_sm" disabled><span>구매불가</span></button>
-												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm"><span>즉시구매</span></button>
+												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm" th:onclick="|submitNoMember(${cart.cartSq})|"><span>즉시구매</span></button>
 											</p>
 											<p class="util">
 										<span>
@@ -274,7 +274,7 @@
 											<p class="point"><span th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></span>p 적립예정</p>
 											<p>
 												<button th:if="${cart.soldoutYn.equals('Y')}" type="button" class="btn btn_sm" disabled><span>구매불가</span></button>
-												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm"><span>즉시구매</span></button>
+												<button th:if="${cart.soldoutYn.equals('N')}" type="button" class="btn btn_primary btn_sm" th:onclick="|submitNoMember(${cart.cartSq})|"><span>즉시구매</span></button>
 											</p>
 											<p class="util">
 										<span>
@@ -394,7 +394,8 @@
 <div class="modal fade od_pop opt_modify_pop" id="optModifyPop" tabindex="-1" role="dialog" aria-labelledby="optModifyLabel" aria-hidden="true"></div>
 <!-- //옵션변경 팝업 -->
 
-
+<!-- 즉시구매 form -->
+<form id="cartInfoForm" method="post" action="/order/noMember"></form>
 <!-- KCP PG TEST -->
 <form name="order_info" method="post" action="pp_cli_hub.jsp" >
 </form>
@@ -415,8 +416,12 @@
 	}
 
 	$(document).ready(function() {
+		if([[${!order.shotCanYn.equals('Y')}]]) {
+			// $(".shotDelvSelect").hide();
+		}
+
 		$("#cartListForm .area_salecoupon .coupon_box").hide();
-		/* TODO 로그인 안했으면 .area_salecoupon (할인코드 입력 부 및 쿠폰정보영역) hide 시킬것 */
+
 		let loginInfo = [[${loginInfo}]];
 		if(!loginInfo || loginInfo.custNo == null || loginInfo.custNo == 0) {
 			$("#cartListForm .area_salecoupon").hide();
@@ -466,7 +471,7 @@
 
 		cfnAddCart(compsList);*/
 
-		let compsList = [];
+		/*let compsList = [];
 		let temp = new Object;
 		temp.goodsCd = "14373686";
 		temp.optCd = "챠콜그레이150";
@@ -493,7 +498,7 @@
 		temp.planDtlSq = "123";
 		compsList.push(temp);
 
-		cfnAddCart(compsList);
+		cfnAddCart(compsList);*/
 	});
 
 	function notApplyTmtbAreaList() {
@@ -979,5 +984,16 @@
 			}
 		});
 	}
+
+	function submitNoMember(cartSq) {
+		if(cartSq == "all") {
+			$("#cartListForm").submit();
+		} else {
+			let html	 = "<input type='hidden' name='cartSqArr' value='" + cartSq + "' />";
+			html		+= "<input type='hidden' name='shotDelvUseYn' value='" + $("input[name=shotDelvUseYn]:checked").val() + "' />";
+			$("#cartInfoForm").html(html);
+			$("#cartInfoForm").submit();
+		}
+	}
 </script>
 </html>

+ 1 - 1
src/main/webapp/ux/pc/css/common.css

@@ -1202,7 +1202,7 @@ input[type="file"] {
 .quick_menu_group .area > div:first-child span:first-child a{margin-left:0}
 .quick_menu_group .area > div:first-child span:first-child a:after{display:none}
 .quick_menu_group .area > div:first-child span a:after{position:absolute;top:13px;left:0;width:1px;height:13px;background:#959596;content:''}
-.quick_menu_group .inr a{margin-left:16px;color:#eeeeee;}*/
+.quick_menu_group .inr a{margin-left:16px;color:#eeeeee;}