Kaynağa Gözat

주문서개발중

jsh77b 5 yıl önce
ebeveyn
işleme
7fc2eb848b

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

@@ -90,12 +90,12 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동 
 		if (order.getCartSqArr() == null) {
-			mav.setViewName("redirect:/cart/list/form");		// 비회원주문서화면
+			mav.setViewName("redirect:/cart/list/form");						// 비회원주문서화면
 			return mav;
 		}
 		
-		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;
@@ -142,6 +142,7 @@ public class TsfOrderController extends TsfBaseController {
 			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		} else {
 			order.setJsessionId(TsfSession.getSessionId());
+			order.setCustNo(0);
 		}
 		
 		// TODO
@@ -296,6 +297,12 @@ public class TsfOrderController extends TsfBaseController {
 					
 						if (deliveryAddrInfo.getRecipZipcode() == null || "".equals(deliveryAddrInfo.getRecipZipcode())) {
 							deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
+							
+							// 회원 배송지명이 없으면 설정
+							if (deliveryAddrInfo.getRecipNm() == null || "".equals(deliveryAddrInfo.getRecipNm())) {
+								deliveryAddrInfo.setRecipNm(deliveryAddrInfo.getCustNm());
+							}
+							
 							deliveryAddrInfo.setRecipZipcode("00000");
 							deliveryAddrInfo.setRecipBaseAddr("기본주소정보없음");
 							deliveryAddrInfo.setRecipDtlAddr("상세주소정보없음");
@@ -304,12 +311,13 @@ public class TsfOrderController extends TsfBaseController {
 						}
 					}
 				}
-				
 				index++;
 			}
 		} else {
 			// 2.1 주문고객 정보조회
-			deliveryAddrInfo.setDelvAddrNm(order.getCustNm());
+			deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
+			deliveryAddrInfo.setRecipNm(order.getCustNm());
+			deliveryAddrInfo.setRecipPhnno(order.getCellPhnno());
 			deliveryAddrInfo.setRecipZipcode(order.getRecipZipcode());
 			deliveryAddrInfo.setRecipBaseAddr(order.getRecipBaseAddr());
 			deliveryAddrInfo.setRecipDtlAddr(order.getRecipDtlAddr());
@@ -317,8 +325,9 @@ public class TsfOrderController extends TsfBaseController {
 		}
 		
 		ModelAndView mav = new ModelAndView();
-		mav.addObject("deliveryAddrInfo", deliveryAddrInfo);						// 배송지정보
-		mav.addObject("order"			, order);									// 파라미터
+		mav.addObject("deliveryAddrInfo"	, deliveryAddrInfo);						// 배송지정보
+		mav.addObject("order"				, order);									// 파라미터
+		mav.addObject("isLogin"				, TsfSession.isLogin());					// 로그인여부
 		mav.setViewName(super.getDeviceViewName("order/OrderDeliveryAddrInfo"));
 		
 		return mav;
@@ -468,10 +477,10 @@ public class TsfOrderController extends TsfBaseController {
 		mav.addObject("cartCpnList"						, cartCpnList);								// 장바구니쿠폰목록
 		mav.addObject("delvCpnList"						, delvCpnList);								// 배송비쿠폰목록
 
-		mav.addObject("orgGoodsSumAmt"					, goodsDcAmtMap.get("orgGoodsSumAmt"));		// 상품금액합계
-		mav.addObject("cpn1DcSumAmt"					, goodsDcAmtMap.get("cpn1DcSumAmt"));		// 즉시할인금액합계
-		mav.addObject("tmtbDcSumAmt"					, goodsDcAmtMap.get("tmtbDcSumAmt"));		// 다다익선할인금액합계
-		mav.addObject("prePntDcAmt"						, goodsDcAmtMap.get("prePntDcAmt"));		// 선포인트사용가능금액
+		mav.addObject("orgGoodsSumAmt"					, goodsDcAmtMap.getInt("orgGoodsSumAmt"));	// 상품금액합계
+		mav.addObject("cpn1DcSumAmt"					, goodsDcAmtMap.getInt("cpn1DcSumAmt"));	// 즉시할인금액합계
+		mav.addObject("tmtbDcSumAmt"					, goodsDcAmtMap.getInt("tmtbDcSumAmt"));	// 다다익선할인금액합계
+		mav.addObject("prePntDcAmt"						, goodsDcAmtMap.getInt("prePntDcAmt"));		// 선포인트사용가능금액
 
 		mav.addObject("rmPntAmt"						, rmPntAmt);								// 고객포인트정보
 		mav.addObject("rmGfcdAmt"						, rmGfcdAmt);								// 고객상품권정보
@@ -558,9 +567,9 @@ public class TsfOrderController extends TsfBaseController {
 		log.info("order.getFreegiftValArr()    ::: {}", order.getFreegiftValArr());
 		log.info("order.getFreegiftSqArr()     ::: {}", order.getFreegiftSqArr());
 		
-		//for(int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
-		//	log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
-		//}
+		for(int i = 0 ; i < order.getFreegiftGoodsArr().length ; i++) {
+			log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
+		}
 
 		// 필수 데이터
 		// pgGb = 결제타입, payMeans = 결제수단, ordNo = 주문번호, goodsNm = 상품명, payAmt = 실결제금액, ordNm = 주문자명, ordPhnno = 휴대폰번호, custNo = 고객번호
@@ -799,8 +808,9 @@ public class TsfOrderController extends TsfBaseController {
 	public ModelAndView delvAddrAddPop(Order order) {
 		
 		ModelAndView mav = new ModelAndView();
+		mav.addObject("isLogin"	, TsfSession.isLogin());					// 로그인여부
 		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrAddPop"));
-		
+
 		return mav;
 	}
 	

+ 21 - 8
src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html

@@ -14,6 +14,8 @@
  *******************************************************************************
  -->
 <!-- 배송지정보 -->
+<input type="hidden" name="recipNm" 		th:value="${deliveryAddrInfo.recipNm}"/>
+<input type="hidden" name="recipPhnno" 		th:value="${deliveryAddrInfo.recipPhnno}"/>
 <input type="hidden" name="recipZipcode" 	th:value="${deliveryAddrInfo.recipZipcode}"/>
 <input type="hidden" name="recipBaseAddr" 	th:value="${deliveryAddrInfo.recipBaseAddr}"/>
 <input type="hidden" name="recipDtlAddr" 	th:value="${deliveryAddrInfo.recipDtlAddr}"/>
@@ -36,10 +38,10 @@
 		<dl>
 			<div>
 				<dt>
-					<span class="sr-only">배송지명</span>
+					<span>배송지명</span>
 				</dt>
 				<dd>
-					<th:block th:text="${deliveryAddrInfo.delvAddrNm}"></th:block>
+					<th:block th:text="${deliveryAddrInfo.recipNm}"></th:block>
 					<span class="icon_tag"> 
 						<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
 							<em class="tag gray">기본 배송지</em>
@@ -52,20 +54,31 @@
 			</div>
 			<div>
 				<dt>
-					<span class="sr-only">배송주소</span>
+					<span>배송주소</span>
 				</dt>
 				<dd>
 					<th:block th:text="${deliveryAddrInfo.recipBaseAddr} + '    ' + ${deliveryAddrInfo.recipDtlAddr}"></th:block>
-					<button type="button" class="btn btn_default btn_sm" id="btn_adrsChange_pop">
-						<span>배송지 변경</span>
-					</button>
+					<!-- 회원 -->
+					<th:block th:if="${isLogin}">
+						<button type="button" class="btn btn_default btn_sm" id="btn_adrsChange_pop">
+							<span>배송지 변경</span>
+						</button><!-- 비회원 -->
+					</th:block>
+					<!-- //회원 -->
+					<!-- 비회원 -->
+					<th:block th:if="!${isLogin}">
+						<button type="button" class="btn btn_default btn_sm" id="btn_adrsAdd_pop_noMember">
+							<span>배송지 변경</span>
+						</button>
+					</th:block>
+					<!-- //비회원 -->
 				</dd>
 			</div>
 			<div>
 				<dt>
-					<span class="sr-only">휴대폰 번호</span>
+					<span>휴대폰 번호</span>
 				</dt>
-				<dd th:text="${deliveryAddrInfo.cellPhnno}"></dd>
+				<dd th:text="${deliveryAddrInfo.recipPhnno}"></dd>
 			</div>
 			<div>
 				<dt>배송요청 사항</dt>

+ 82 - 3
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html

@@ -83,7 +83,17 @@
 	</div>
 </div>
 <div class="modal-footer">
-	<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
+	<!-- 회원 -->
+	<th:block th:if="${isLogin}">
+		<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
+	</th:block>
+	<!-- //회원 -->
+	
+	<!-- 비회원 -->
+	<th:block th:if="!${isLogin}">
+		<button type="button" class="btn btn_dark" id="btn_sel_delvAddr_noMember"><span>배송지 등록</span></button>
+	</th:block>
+	<!-- //비회원 -->
 </div>
 
 <script th:inline="javascript">
@@ -106,7 +116,6 @@ $(document).ready( function() {
 
 // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
 var fnOpenDaumAddr = function() {
-	
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {
 			$('#deliveryAddForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
@@ -117,12 +126,17 @@ var fnOpenDaumAddr = function() {
 		},
 		width: '100%'
 	});
-	
 	cfnOpenDaumAddr(daumZip);
 }
 
 // 배송지등록버튼
 $("#btn_delivery_addr_save").on("click", function(){
+	
+	// 유효성체크
+	if (!deliveryAddFormCheck()){
+		return false;
+	}
+	
 	// 기본배송지여부
 	var defaultYn = "N";
 	if ($("#deliveryAddForm input[name=defaultYn]").is(":checked")) {
@@ -181,6 +195,71 @@ $("#btn_delivery_addr_save").on("click", function(){
 		}
 	});
 });
+
+// 2.2 배송지등록버튼
+$("#btn_sel_delvAddr_noMember").on("click", function(){
+	
+	// 유효성체크
+	if (!deliveryAddFormCheck()){
+		return false;
+	}
+	
+	// 배송지정보 새로고침
+	// 기타사항일때 텍스트 등록
+	var delvMemo = $("#deliveryAddForm input[name=rdi-request1]:checked").parent().find('span').text();
+	if ("기타사항" == delvMemo) {
+		delvMemo = $("input[name=delvMemoText]").val();
+	}
+	
+	jsonObj.custNm 			= $("#deliveryAddForm input[name=recipNm]").val();
+	jsonObj.cellPhnno 		= $("#deliveryAddForm input[name=recipPhnno]").val();
+	jsonObj.recipZipcode 	= $("#deliveryAddForm input[name=recipZipcode]").val();
+	jsonObj.recipBaseAddr 	= $("#deliveryAddForm input[name=recipBaseAddr]").val();
+	jsonObj.recipDtlAddr 	= $("#deliveryAddForm input[name=recipDtlAddr]").val();
+	jsonObj.delvMemo 		= delvMemo;
+	
+	// 배송지정보로드실행
+	deliveryAddrInfoSet(false);
+	
+	// 팝업닫기
+	$(".close-modal").trigger("click");
+});
+
+// 유효성체크 함수
+var deliveryAddFormCheck = function() {
+	// TODO 유효성 체크 추가
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipNm]").val())) {
+		mcxDialog.alert("이름을 입력해주세요.");
+		$('#deliveryAddForm input[name=custNm]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipPhnno]").val())) {
+		mcxDialog.alert("휴대폰번호를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipPhnno]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipZipcode]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipBaseAddr]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipDtlAddr]").val())) {
+		mcxDialog.alert("상세주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipDtlAddr]').focus();
+		return false;
+	}
+	
+	return true;
+} 
 </script>
 
 

+ 38 - 0
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html

@@ -27,6 +27,7 @@
 						</div>
 					</div>
 				</div>	
+				<!-- 
 				<div class="form_field">
 					<label class="input_label sr-only">휴대폰 번호</label>
 					<div class="ui_col_12">
@@ -35,6 +36,7 @@
 						</div>
 					</div>
 				</div>
+				 -->
 				<div class="form_field">
 					<label class="input_label sr-only">배송주소</label>
 					<div class="ui_col_12">
@@ -156,6 +158,12 @@ var fnOpenDaumAddr = function() {
 
 // 배송지등록버튼
 $("#btn_delivery_addr_save").on("click", function(){
+	
+	// 유효성체크
+	if (!deliveryAddFormCheck()){
+		return false;
+	}
+	
 	// 기본배송지여부
 	var defaultYn = "N";
 	if ($("#deliveryModifyForm input[name=defaultYn]").is(":checked")) {
@@ -215,4 +223,34 @@ $("#btn_delivery_addr_save").on("click", function(){
 		}
 	});
 });
+
+//유효성체크 함수
+var deliveryAddFormCheck = function() {
+	// TODO 유효성 체크 추가
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipNm]").val())) {
+		mcxDialog.alert("이름을 입력해주세요.");
+		$('#deliveryAddForm input[name=custNm]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipZipcode]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipBaseAddr]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipDtlAddr]").val())) {
+		mcxDialog.alert("상세주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipDtlAddr]').focus();
+		return false;
+	}
+	
+	return true;
+} 
 </script>

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

@@ -611,20 +611,21 @@ var deliveryAddrInfoSet = function(temp) {
 			gagajf.showProgressbar(true);
 		},
 		success 	: function(result) {
-			
 			$("#deliveryAddrInfo").css("display", "block");
 			$("#deliveryAddrInfo").html(result);
 			
 			// 배송정보설정
-			$(".recipZipcode").text($("input[name='recipZipcode']").val());
-			$(".recipBaseAddr").text($("input[name='recipBaseAddr']").val());
-			$(".recipDtlAddr").text($("input[name='recipDtlAddr']").val());
-			$(".delvMemo").text($("input[name='delvMemo']").val());
-			$(".foreignBuyYn").text($("input[name='foreignBuyYn']").val());
-			$(".orderMadeYn").text($("input[name='orderMadeYn']").val());
+			$(".recipNm").text($("#orderForm input[name='recipNm']").val());
+			$(".recipPhnno").text($("#orderForm input[name='recipPhnno']").val());
+			$(".recipZipcode").text($("#orderForm input[name='recipZipcode']").val());
+			$(".recipBaseAddr").text($("#orderForm input[name='recipBaseAddr']").val());
+			$(".recipDtlAddr").text($("#orderForm input[name='recipDtlAddr']").val());
+			$(".delvMemo").text($("#orderForm input[name='delvMemo']").val());
+			$(".foreignBuyYn").text($("#orderForm input[name='foreignBuyYn']").val());
+			$(".orderMadeYn").text($("#orderForm input[name='orderMadeYn']").val());
 			
 			// 2. 버튼기능구현
-			// 2.1 배송지변경 팝업열기
+			// 2.1 회원 배송지변경 팝업열기
 			$('#btn_adrsChange_pop').on("click", function(){
 				$.ajax( {
 					type		: "POST",
@@ -644,6 +645,26 @@ var deliveryAddrInfoSet = function(temp) {
 				});	
 			});
 			
+			// 2.1 비회원 배송지추가 팝업열기
+			$('#btn_adrsAdd_pop_noMember').on("click", function(){
+				$.ajax( {
+					type		: "POST",
+					url 		: '/order/delvAddrAddPop',
+					data		: JSON.stringify(jsonObj),
+					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) {
+						$("#adrsAddPop .modal-dialog .modal-content").html(result);
+						$("#adrsAddPop").modal("show");
+					}
+				});	
+			});
+			
 			// 배송요청사항 팝업열기
 			$("#btn_rqstModify_pop").on("click", function(e){
 				var jsonObj = new Object();
@@ -1995,7 +2016,7 @@ $(document).ready( function() {
 	});
 });
 
-//PG 카카오페이 결제준비 처리
+// PG 카카오페이 결제준비 처리
 var fnKakaoPaymentReady = function() {
 	let nextRedirectUrl = $('#order_info input[name=nextRedirectPcUrl]').val();
 	let option = 'width=420, height=520';

+ 17 - 8
src/main/webapp/WEB-INF/views/web/order/OrderNoMemberWeb.html

@@ -54,7 +54,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">이름(주문자명)</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)">
+								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)" value="홍길동">
 							</div>
 						</div>	
 						
@@ -63,7 +63,7 @@
 							<label class="input_label sr-only">휴대폰 번호</label>
 							<div class="ui_col_9">
 								<div class="input_wrap"> 
-									<input type="text" class="form_control" name="cellPhnno" placeholder="휴대폰 인증을 해주세요" readonly="readonly" onfocus="this.blur();">
+									<input type="text" class="form_control" name="cellPhnno" placeholder="휴대폰 인증을 해주세요" readonly="readonly" onfocus="this.blur();" value="010-2345-5678">
 								</div>
 							</div>
 							
@@ -82,7 +82,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">이메일주소</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="email" placeholder="이메일주소">
+								<input type="text" class="form_control" name="email" placeholder="이메일주소" value="email@email.com">
 							</div>
 						</div>	
 						
@@ -90,8 +90,8 @@
 							<label class="input_label sr-only">배송주소</label>
 							<div class="ui_col_9">
 								<div class="input_wrap">
-									<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly">
-									<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly">
+									<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly" value="12345">
+									<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly" value="인천광역시 서구 마전동 101">
 									<input type="text" class="form_control" name="recipAddr" placeholder="상세주소" readonly="readonly">
 								</div>
 							</div>
@@ -102,7 +102,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">상세주소</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소">
+								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" value="아파트 202동 202호">
 							</div>
 						</div>
 			
@@ -158,6 +158,7 @@ $(document).ready( function() {
 	
 // 주문하기버튼
 $("#btn_order").on("click", function() {
+	/*
 	// TODO 유효성 체크 추가
 	if (gagajf.isNull($("#orderForm input[name=custNm]").val())) {
 		mcxDialog.alert("이름을 입력해주세요.");
@@ -185,12 +186,19 @@ $("#btn_order").on("click", function() {
 	
 	if (gagajf.isNull($("#orderForm input[name=recipZipcode]").val())) {
 		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#orderForm input[name=recipAddr]').focus();
 		return false;
 	}
 	
 	if (gagajf.isNull($("#orderForm input[name=recipBaseAddr]").val())) {
 		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#orderForm input[name=recipBaseAddr]').focus();
+		$('#orderForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#orderForm input[name=recipDtlAddr]").val())) {
+		mcxDialog.alert("상세주소를 입력해주세요.");
+		$('#orderForm input[name=recipDtlAddr]').focus();
 		return false;
 	}
 	
@@ -198,6 +206,7 @@ $("#btn_order").on("click", function() {
 		mcxDialog.alert("비회원 개인정보 수집 이용에 동의해주세요.");
 		return false;
 	}
+	*/
 	
 	// 주문서전송
 	$("#orderForm").submit();
@@ -223,7 +232,7 @@ var fnUpdateAuthInfoCallback = function (result) {
 	$('#orderForm input[name=cellPhnno]').val(result.sMobileNo);
 }
 
-//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
 var fnOpenDaumAddr = function() {
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {