Procházet zdrojové kódy

주문서개발중

jsh77b před 5 roky
rodič
revize
9084ae5014

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

@@ -166,7 +166,7 @@ public class TsfOrderController extends TsfBaseController {
 		
 		mav.addObject("goodsTotCnt" 		, delvOrderMap.get("goodsTotCnt"));			// 총상품건수
 		mav.addObject("delvAllCartList" 	, delvOrderMap.get("delvAllCartList"));		// 전체배송목록
-		mav.addObject("delvCartGoodsList" 	, delvOrderMap.get("delvCartGoodsList"));	// 장바구니상품목록 sort
+		mav.addObject("delvFeeCdList" 		, delvOrderMap.get("delvFeeCdList"));		// 배송단위목록
 		mav.addObject("sumDelvFee" 			, delvOrderMap.get("sumDelvFee"));			// 배송비합계
 
 		// 4.2 할인정보(상품금액, 즉시할인, 다다익선, 선포인트, 적립예정포인트) 
@@ -775,12 +775,25 @@ public class TsfOrderController extends TsfBaseController {
 	 * @since 2021. 03. 04
 	 */
 	@PostMapping("/create/preOrder")
-	public ModelAndView createOrder(Order order) {
+	@ResponseBody
+	public ModelAndView createOrder(@RequestBody Order order) {
 		ModelAndView mav = new ModelAndView();
-		// TODO 주문 시작 데이터 처리
-
-
-
+		
+		// TODO 주문 시작 데이터 처리 
+		// 2021.03.09 주문데이타 등록 
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo());
+		} else {
+			order.setCustNo(0);
+		}
+		
+		order.setFrontGb(TsfSession.getFrontGb());
+		
+		// 2. 주문기본정보등록
+		coreOrderService.createPreOrder(order);
+		
+		
 
 
 

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

@@ -155,7 +155,7 @@
 													<ul class="list">
 														<li value="0">선택없음</li>
 														<th:block th:each="delvCpn, k : ${delvCpnList}">
-															<li th:value="${delvCpn.custCpnSq}" th:data="${delvCpn.cpnDcAmt}" th:delvfeecd="${delvCpn.delvFeeCd}" th:text="${delvCpn.cpnNm}"></li>
+															<li th:value="${delvCpn.custCpnSq}" th:data="${delvCpn.dcVal}" th:delvfeecd="${delvCpn.delvFeeCd}" th:delvfee="${delvCpn.delvFee}" th:text="${delvCpn.cpnNm}"></li>
 														</th:block>
 													</ul>
 												</div>

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

@@ -288,36 +288,37 @@
 
 <!--  container -->
 <form id="payForm" name="payForm">
-	<br>
+
 	<!-- 주문고객정보 -->
-	<table border="1" style="font-size:10px; text-align:center;">
-		<tr style="height:30px;">
-			<th>custNm</th>
-			<th>email</th>
-			<th>cellPhnno</th>
-			<th>recipZipcode</th>
-			<th>recipBaseAddr</th>
-			<th>recipDtlAddr</th>
-			<th>delvMemo</th>
-			<th>foreignBuyYn</th>
-			<th>orderMadeYn</th>
-		</tr>
-		<tr style="height:30px;">
-			<td class="custNm"></td>
-			<td class="email"></td>
-			<td class="cellPhnno"></td>
-			<td class="recipZipcode"></td>
-			<td class="recipBaseAddr"></td>
-			<td class="recipDtlAddr"></td>
-			<td class="delvMemo"></td>
-			<td class="foreignBuyYn"></td>
-			<td class="orderMadeYn"></td>
-		</tr>
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderInfo">
+		<tbody>
+			<tr style="height:30px;">
+				<th>custNm</th>
+				<th>email</th>
+				<th>cellPhnno</th>
+				<th>recipZipcode</th>
+				<th>recipBaseAddr</th>
+				<th>recipDtlAddr</th>
+				<th>delvMemo</th>
+				<th>foreignBuyYn</th>
+				<th>orderMadeYn</th>
+			</tr>
+			<tr style="height:30px;">
+				<td class="custNm"></td>
+				<td class="email"></td>
+				<td class="cellPhnno"></td>
+				<td class="recipZipcode"></td>
+				<td class="recipBaseAddr"></td>
+				<td class="recipDtlAddr"></td>
+				<td class="delvMemo"></td>
+				<td class="foreignBuyYn"></td>
+				<td class="orderMadeYn"></td>
+			</tr>
+		</tbody>
 	</table>
-	
-	<br>
+
 	<!-- 사은품정보 -->
-	<table border="1" style="font-size:10px; text-align:center;">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="freegiftInfo">
 		<tr style="height:30px;">
 			<th>freegiftValArr</th>
 			<th>freegiftUsePointArr</th>
@@ -327,10 +328,9 @@
 			<td class="freegiftUsePointArr"></td>
 		</tr>
 	</table>
-	
-	<br>
+
 	<!-- 주문상세금액 -->
-	<table border="1" style="font-size:10px; text-align:center;">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderDetailInfo">
 		<tr style="height:30px;">
 			<th>cartSq</th>
 			<th>orgCurrPrice</th>
@@ -353,11 +353,12 @@
 			<th>gfcdUseAmt1</th>
 			<th>realOrdAmt1</th>
 			<th>savePntAmt1</th>
-			<th>shoDelvYn</th>
+			<th>shotDelvYn</th>
 			<th>foreignYn</th>
 			<th>orderMadeYn</th>
+			<th>delvFeeCd</th>
 		</tr>
-		<th:block th:each="delvAllCart, index : ${delvCartGoodsList}">
+		<th:block th:each="delvAllCart, index : ${delvAllCartList}">
 			<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
 				<th:block th:each="goods, i : ${delvAllCart}">
 					<tr style="height:30px;">
@@ -397,15 +398,35 @@
 						<td class="shotDelvYn" 		th:text="${goods.shotDelvYn}"></td>
 						<td class="foreignBuyYn" 	th:text="${goods.foreignBuyYn}"></td>
 						<td class="orderMadeYn" 	th:text="${goods.orderMadeYn}"></td>
+						<td class="delvFeeCd" 		th:text="${goods.delvFeeCd}"></td>
 					</tr>
 				</th:block>
 			</th:block>
 		</th:block>
 	</table>
-	
-	<br>
+
+	<!-- 배송단위목록 -->
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="delvFeeCdInfo">
+		<tr style="height:30px;">
+			<th>supplyCompCd</th>
+			<th>delvFeeCd</th>
+			<th>delvFee</th>
+			<th>delvCpnSq</th>
+			<th>delvCpnDcAmt</th>
+		</tr>
+		<th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
+			<tr style="height:30px;">
+				<td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
+				<td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
+				<td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
+				<td class="delvCpnSq">0</td>
+				<td class="delvCpnDcAmt">0</td>
+			</tr>
+		</th:block>
+	</table>
+
 	<!-- 주문금액합계 -->
-	<table border="1" style="font-size:10px; text-align:center;">
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="orderSumAmtInfo">
 		<tr style="height:30px;">
 			<th>orgGoodsSumAmt</th>
 			<th>delvSumAmt</th>
@@ -675,6 +696,27 @@ $(document).ready( function() {
 
 	// 1. AJAX 정보(회원정보로드)
 	custemerInfoSet(jsonData);
+	
+	// 999. 개발화면정보설정
+	var devTemp = true;
+	var arr = []
+	arr[0] = "orderInfo";
+	arr[1] = "freegiftInfo";
+	arr[2] = "orderDetailInfo";
+	arr[3] = "delvFeeCdInfo";
+	arr[4] = "orderSumAmtInfo";
+	
+	if (devTemp) {
+		$("table").each(function(){
+			var name = $(this).attr("name");
+			for (i=0 ; i<arr.length ; i++) {
+				if (name == arr[i]) {
+					$(this).show();
+				}
+			}
+		});
+	}
+	
 });
 
 // 1. 함수기능 정의
@@ -886,7 +928,7 @@ var freegiftInfoSet = function(jsonData) {
 	});
 }
 
-// 1.6 결제타입로드
+// 1.6 결제타입로드 (결제버튼기능구현)
 var paymentInfoSet = function(jsonData) {
 	$.ajax( {
 		type		: "POST",
@@ -904,6 +946,96 @@ var paymentInfoSet = function(jsonData) {
 				$("#paymentInfo").css("display", "block");
 				$("#paymentInfo").html(result);
 				
+				// 결재하기
+				$("#btn_payment").on("click", function(){
+					// 사은품정보
+					var freegiftValArr 		= $(".freegiftValArr").text().split(",");
+					var prePntDcAmtYn		= $("input[name='rdi-beforpoint']:checked").val();
+					var orderDetailList		= [];
+					var delvFeeCdList		= [];
+
+					// 주문상세데이타 생성
+					$(".cartSq").each(function(){
+						var orderDetailData = {
+							"cartSq"			: $(this).text()
+							,"currPrice"		: $(this).parent().find(".orgCurrPrice").text()
+							,"optAddPrice"		: $(this).parent().find(".optAddPrice").text()
+							,"ordAmt"			: $(this).parent().find(".ordAmt").text()
+							,"cpn1DcSq"			: $(this).parent().find(".cpn1DcSq").text()
+							,"cpn1DcAmt"		: $(this).parent().find(".cpn1DcAmt").text()
+							,"goodsQty"			: $(this).parent().find(".goodsQty").text()
+							,"tmtb1Sq"			: $(this).parent().find(".tmtb1Sq").text()
+							,"tmtb1DcAmt"		: $(this).parent().find(".tmtb1DcAmt").text()
+							,"tmtb2Sq"			: $(this).parent().find(".tmtb2Sq").text()
+							,"tmtb2DcAmt"		: $(this).parent().find(".tmtb2DcAmt").text()
+							,"goodsCpnSq"		: $(this).parent().find(".goodsCpnSq").text()
+							,"goodsCpnDCAmt"	: $(this).parent().find(".goodsCpnDCAmt").text()
+							,"cartCpnSq"		: $(this).parent().find(".cartCpnSq").text()
+							,"carrtCpnDCAmt"	: $(this).parent().find(".cartCpnDCAmt").text()
+							,"prePntDcAmt"		: $(this).parent().find(".prePntDcAmt1").text()
+							,"pntDcAmt"			: $(this).parent().find(".pntDcAmt1").text()
+							,"gfcdUseAmt"		: $(this).parent().find(".gfcdUseAmt1").text()
+							,"savePntAmt"		: $(this).parent().find(".savePntAmt1").text()
+							,"shotDelvYn"		: $(this).parent().find(".shotDelvYn").text()
+							,"foreignBuyYn"		: $(this).parent().find(".foreignYn").text()
+							,"orderMadeYn"		: $(this).parent().find(".orderMadeYn").text()
+							,"delvFeeCd"		: $(this).parent().find(".delvFeeCd").text()
+						}
+						
+						orderDetailList.push(orderDetailData);
+					});
+					
+					// 주문배송업체정보 생성
+					$(".delvFeeCd").each(function(){
+						var delvFeeCdData = {
+							"delvFeeCd"			: $(this).text()
+							,"supplyCompCd"		: $(this).parent().find(".supplyCompCd").text()
+							,"delvFee"			: $(this).parent().find(".delvFee").text()
+							,"delvCpnSq"		: $(this).parent().find(".delvCpnSq").text()
+							,"delvCpnDcAmt"		: $(this).parent().find(".delvCpnDcAmt").text()
+						}
+						
+						delvFeeCdList.push(delvFeeCdData);
+					});
+					
+					// 주문데이타 생성
+					var orderData = {
+						"custNm"				: $(".custNm").text()
+						,"email"				: $(".email").text()
+						,"recipPhnno"			: $(".cellPhnno").text()
+						,"recipZipcode"			: $(".recipZipcode").text()
+						,"recipBaseAddr"		: $(".recipBaseAddr").text()
+						,"recipDtlAddr"			: $(".recipDtlAddr").text()
+						,"delvMemo"				: $(".delvMemo").text()
+						,"freegiftValArr"		: freegiftValArr
+						,"prePntDcAmtYn"		: prePntDcAmtYn
+						,"orderDetailList"		: orderDetailList
+						,"delvFeeCdList"		: delvFeeCdList
+					};
+					
+					var orderData = JSON.stringify(orderData);
+					
+					$.ajax( {
+						type		: "POST",
+						url 		: '/order/create/preOrder',
+						data		: orderData,
+						dataType 	: 'html',
+						beforeSend : function(xhr, settings) {
+							xhr.setRequestHeader("AJAX"			, "true");
+							xhr.setRequestHeader('Accept'		, 'application/json');
+							xhr.setRequestHeader('Content-Type'	, 'application/json');
+							gagajf.showProgressbar(true);
+						},
+						success 	: function(result) {
+							// 결재정보로드
+							//$("#order_info").html(result);
+							//jsf__pay(document.order_info);
+						}
+					});
+				});
+				
+				
+				
 				// 1.8 할인영역 설정
 				dcAmtInfoSet(jsonData);
 			}
@@ -1314,16 +1446,35 @@ var custCpnApply = function(obj) {
 	}
 	// 배송비쿠폰적용
 	else if (cpnType == "delvCpn") {
+		var delvFee 		= parseInt(obj.attr("delvfee"));
+		var delvCpnDcAmt 	= parseInt(obj.attr("data"));
+		var delvFeeCd 		= obj.attr("delvfeecd");
+		
+		// 배송비가 배송비쿠폰할인금액보다 클경우 배송비 - 배송비쿠폰할인금액을 적용
+		if (delvFee > delvCpnDcAmt) {
+			cpnDcAmt = delvFee - delvCpnDcAmt;
+		} else {
+			cpnDcAmt = delvFee;
+		}
+		
 		// 적용된 할인금액 text 설정 
-		var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+		var dcAmtStr = "- " + cpnDcAmt.addComma() + " 원 할인적용";
 		
-		var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
+		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
 		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
+		obj.parent().parent().find("input[name='cpnDcAmt']").val(cpnDcAmt);
 		obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
 		
 		$(".delvCpnDcSumAmt").text(obj.attr("data"));
+				
+		// 배송비쿠폰 테이블 적용
+		
+		$(".delvFeeCd").each(function(){
+			if ($(this).text() == delvFeeCd) {
+				$(this).parent().find(".delvCpnSq").text(obj.prop("value"));
+				$(this).parent().find(".delvCpnDcAmt").text(obj.attr("data"));
+			}
+		});
 	}
 	
 	// select box 쿠폰 적용 (공통적용)
@@ -1393,6 +1544,7 @@ var cpnApplyDel = function(obj) {
 		//});
 		
 		obj.parent().parent().find("input[name='delvFeeCd']").val("0");
+		$(".delvCpnSq").text("0");
 	}
 	
 	obj.parent().parent().find("input[name='custCpnSq']").val("0");