Bladeren bron

주문서개발중

jsh77b 5 jaren geleden
bovenliggende
commit
164fdba240

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

@@ -23,8 +23,10 @@ import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCartService;
 import com.style24.front.biz.service.TsfOrderService;
+import com.style24.front.biz.thirdparty.NiceCertify;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Payment;
 
@@ -59,6 +61,9 @@ public class TsfOrderController extends TsfBaseController {
 	@Autowired
 	private Environment env;
 	
+	@Autowired
+	private NiceCertify niceCertify;
+	
 	/**
 	 * 회원, 비회원 주문페이지
 	 *
@@ -83,6 +88,12 @@ public class TsfOrderController extends TsfBaseController {
 		//order.setCartSqArr(arr);		// 장바구니시퀀스
 		//order.setShotDelvUseYn("Y");	// 장바구니총알배송사용여부
 		
+		// 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동 
+		if (order.getCartSqArr() == null) {
+			mav.setViewName("redirect:/cart/list/form");		// 비회원주문서화면
+			return mav;
+		}
+		
 		mav.addObject("order" 	, order);						// 주문정보
 		mav.addObject("isLogin"	, TsfSession.isLogin());		// 로그인여부
 		mav.setViewName(super.getDeviceViewName("order/OrderNoMember"));		// 비회원주문서화면
@@ -90,6 +101,26 @@ public class TsfOrderController extends TsfBaseController {
 		return mav;
 	}
 	
+	/**
+	 * 비회원 - 개명본인인증, 휴대폰 본인인증
+	 *
+	 * @return GagaMap - 결과
+	 * @param customer - 본인인증 값
+	 * @author jsh77b
+	 * @since 2021. 03. 30
+	 */
+	@PostMapping("/customer/auth")
+	@ResponseBody
+	public GagaMap updateCustomerAuth(@RequestBody Customer customer) {
+		GagaMap authInfo = niceCertify.getCertifyCellPhoneResultInfo(customer);
+		
+		//ModelAndView mav = new ModelAndView();
+		//mav.addObject("cellPhnno"	, authInfo.getString("sMobileNo"));
+		//mav.addObject("custNm"	, authInfo.getString("sName"));
+		
+		return authInfo;
+	}
+	
 	/**
 	 * 주문페이지
 	 *

+ 2 - 6
src/main/java/com/style24/front/support/config/TsfWebMvcConfig.java

@@ -61,7 +61,7 @@ public class TsfWebMvcConfig implements WebMvcConfigurer {
 			"/", "/index", "/signin/**",
 			"/images/**", "/ux/**",
 			"/error/**", "/data/**",
-			"/login", "/logout", "/order/noMember"
+			"/login", "/logout"
 		};
 
 		// 디바이스 해석
@@ -93,11 +93,7 @@ public class TsfWebMvcConfig implements WebMvcConfigurer {
 			.order(10);
 
 		// 로그인 체크
-		registry.addInterceptor(loginCheckInterceptor)
-			.addPathPatterns(new String[] {"/mypage/**", "/order/**",
-				"/callcenter/onetoone/**", "/callcenter/goods/**"
-			})
-			.order(20);
+		registry.addInterceptor(loginCheckInterceptor).addPathPatterns(new String[] {"/mypage/**", "/callcenter/onetoone/**", "/callcenter/goods/**"}).order(20);
 
 		// 상품뷰 이력 생성
 		registry.addInterceptor(goodsViewInterceptor)

+ 13 - 6
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html

@@ -32,19 +32,18 @@
 					<label class="input_label sr-only">배송주소</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" id="">
-							<input type="text" class="form_control" name="recipBaseAddr" placeholder="기본주소" id="" disabled>
+							<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly">
+							<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly">
+							<input type="text" class="form_control" name="recipAddr" placeholder="배송주소" readonly="readonly">
 						</div>
-						<button type="button" class="btn btn_dark btn_sm" onclick="fnOpenDaumAddr();">
-							<span>우편번호 찾기</span>
-						</button>
+						<button type="button" class="btn btn_dark btn_sm" onclick="fnOpenDaumAddr();"><span>우편번호 찾기</span></button>
 					</div>
 				</div>
 				<div class="form_field">
 					<label class="input_label sr-only">상세주소</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" id="">
+							<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소">
 						</div>
 					</div>
 				</div>
@@ -107,12 +106,20 @@ $(document).ready( function() {
 
 // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
 var fnOpenDaumAddr = function() {
+	
+	// 다은우편번호팝업 노출
+	$("#daumZipcodePop").show();
+	
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {
+			$('#deliveryAddForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
 			$('#deliveryAddForm input[name=recipZipcode]').val(data.zonecode);
 			$('#deliveryAddForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
 			$('#deliveryAddForm input[name=recipDtlAddr]').focus();
 			cfnCloseDaumAddr();
+			
+			// 다음우편번호팝업 닫기
+			$("#daumZipcodePop").hide();
 		},
 		width: '100%'
 	});

+ 11 - 3
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html

@@ -39,8 +39,9 @@
 					<label class="input_label sr-only">배송주소</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="hidden" name="recipZipcode" placeholder="우편번호" th:value="${deliveryAddrInfo.recipZipcode}">
-							<input type="text" class="form_control" name="recipBaseAddr" placeholder="기본주소" id="" th:value="${deliveryAddrInfo.recipBaseAddr}" disabled>
+							<input type="hidden" name="recipZipcode" placeholder="우편번호" th:value="${deliveryAddrInfo.recipZipcode}" readonly="readonly">
+							<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소"th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
+							<input type="text" class="form_control" name="recipAddr" placeholder="배송주소" th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
 						</div>
 						<button type="button" class="btn btn_dark btn_sm" onclick="fnOpenDaumAddr();">
 							<span>우편번호 찾기</span>
@@ -51,7 +52,7 @@
 					<label class="input_label sr-only">상세주소</label>
 					<div class="ui_col_12">
 						<div class="input_wrap"> 
-							<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" id="" th:value="${deliveryAddrInfo.recipDtlAddr}">
+							<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" th:value="${deliveryAddrInfo.recipDtlAddr}">
 						</div>
 					</div>
 				</div>
@@ -139,12 +140,19 @@ $(document).ready( function() {
 
 // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
 var fnOpenDaumAddr = function() {
+	// 다은우편번호팝업 노출
+	$("#daumZipcodePop").show();
+	
 	let daumZip = new daum.Postcode({
 		oncomplete: function(data) {
+			$('#deliveryModifyForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
 			$('#deliveryModifyForm input[name=recipZipcode]').val(data.zonecode);
 			$('#deliveryModifyForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
 			$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
 			cfnCloseDaumAddr();
+			
+			// 다음우편번호팝업 닫기
+			$("#daumZipcodePop").hide();
 		},
 		width: '100%'
 	});

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

@@ -545,7 +545,7 @@ $(document).ready( function() {
 	custemerInfoSet();
 	
 	// 999. 개발화면정보설정
-	var devTemp = true;
+	var devTemp = false;
 	var arr = []
 	arr[0] = "orderInfo";
 	arr[1] = "freegiftInfo";

+ 200 - 153
src/main/webapp/WEB-INF/views/web/order/OrderNoMemberWeb.html

@@ -1,8 +1,5 @@
 <!DOCTYPE html>
-<html lang="ko"
-	  xmlns:th="http://www.thymeleaf.org"
-	  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	  layout:decorator="web/common/layout/DefaultLayoutWeb">
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="web/common/layout/DefaultLayoutWeb">
 <!--
  *******************************************************************************
  * @source  : OrderNoMemberWeb.html
@@ -17,181 +14,231 @@
  *******************************************************************************
  -->
 <body>
-
 <th:block layout:fragment="content">
-<form id="orderForm" name="orderForm" class="form_wrap form_col_c form_full" action="#" th:action="@{'/order/form'}" th:method="post">
-	<input type="hidden" name="shotDelvUseYn" th:value="${order.shotDelvUseYn}" /><!-- 장바구니화면 총알배송사용여부 -->
-	<!-- 장바구니화면 시퀀스 배열 등록 -->
-	<th:block th:each="cartSq , index : ${order.cartSqArr}">
-		<input type="hidden" name="cartSqArr" th:value="${cartSq}" />
-	</th:block>
-	
-	<!-- 회원 -->
-	<th:block th:if="${isLogin} == true">
-		<script>$("#orderForm").submit();</script>
-	</th:block>
-	
-	<!-- <span th:text="${isLogin}"></span> -->
-	
-	<!-- 비회원 -->
-	<th:block th:if="${isLogin} == 'false'">
+
+<!-- 회원 -->
+<th:block th:if="${isLogin}">
+	<form class="form_wrap form_col_c form_full" id="nomemberForm" th:action="@{'/order/form'}" th:method="post">
+		<input type="hidden" name="shotDelvUseYn" th:value="${order.shotDelvUseYn}" /><!-- 장바구니화면 총알배송사용여부 -->
+		<!-- 장바구니화면 시퀀스 배열 등록 -->
+		<th:block th:each="cartSq , index : ${order.cartSqArr}">
+			<input type="hidden" name="cartSqArr" th:value="${cartSq}" />
+		</th:block>
+		<script>$("#nomemberForm").submit();</script>
+	</form>
+</th:block>
+<!-- //회원 -->
+
+<!-- 비회원 -->
+<th:block th:if="${!isLogin}">
+	<!--  container -->
+	<div id="container" class="container od">
+		<!-- 비회원 -->
 		<div class="wrap">
-			<div class="content nonMBorder">
-				<!-- 페이지특정 클래스 = nonMBorder -->
+			<div class="content nonMBorder"> <!-- 페이지특정 클래스 = nonMBorder -->
 				<div class="cont_head">
-					<h2 class="t_c mb60">비회원 주문하기</h2>
+					<h2>비회원 주문하기</h2>
+					<div class="text_box">
+						<p>비회원 주문을 위한 주문자 정보 입력 및 개인정보 수집/이용 동의에<br>체크하신 후 주문을 완료하실 수 있습니다.</p>
+					</div>
 				</div>
+				
 				<div class="cont_body">
-					<div class="form_head">
-						<p>
-							비회원 주문을 위한 주문자 정보 입력 및 개인정보 수집/이용 동의에<br>체크하신 후 주문을 완료하실 수
-							있습니다.
-						</p>
-					</div>
-					
-					<div class="form_field">
-						<label class="input_label sr-only">이름(주문자명)</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="custNm" id="custNm" placeholder="이름(주문자명)">
+					<form class="form_wrap form_col_c form_full" id="orderForm" th:action="@{'/order/form'}" th:method="post">
+						<input type="hidden" name="shotDelvUseYn" th:value="${order.shotDelvUseYn}" /><!-- 장바구니화면 총알배송사용여부 -->
+						<!-- 장바구니화면 시퀀스 배열 등록 -->
+						<th:block th:each="cartSq , index : ${order.cartSqArr}">
+							<input type="hidden" name="cartSqArr" th:value="${cartSq}" />
+						</th:block>
+						
+						<div class="form_field">
+							<label class="input_label sr-only">이름(주문자명)</label>
+							<div class="input_wrap"> 
+								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)">
 							</div>
-						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">휴대폰 번호</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="cellPhnno" id="cellPhnno" placeholder="휴대폰 번호">
+						</div>	
+						
+						<!-- 휴대폰 본인인증 대기 -->
+						<div class="form_field">
+							<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();">
+								</div>
 							</div>
-						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">이메일주소</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="email" id="email" placeholder="이메일주소">
+							
+							<!-- 본인인증전-->
+							<div class="ui_col_3 beforeAuth">
+								<button type="button" class="btn btn_dark btn_block" onclick="cfnOpenCellphoneCertify();"><span>본인인증</span></button>
 							</div>
-						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">배송주소 우편번호</label>
-						<div class="ui_col_12">
-							<div class="input_wrap" style="display: flex;">
-								<input type="text" name="recipZipcode" id="recipZipcode" placeholder="우편번호">
-								<button type="submit" class="btn btn_default">우편번호 찾기</button>
+							
+							<!-- 본인인증후-->
+							<div class="ui_col_3 afterAuth" style="display:none">
+								<button type="button" class="btn btn_dark btn_block"><span>인증완료</span></button>
+							</div>
+						</div>	
+						<!-- //휴대폰 본인인증 대기 -->
+						   
+						<div class="form_field">
+							<label class="input_label sr-only">이메일주소</label>
+							<div class="input_wrap"> 
+								<input type="text" class="form_control" name="email" placeholder="이메일주소">
+							</div>
+						</div>	
+						
+						<div class="form_field">
+							<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="text" class="form_control" name="recipAddr" placeholder="상세주소" readonly="readonly">
+								</div>
+							</div>
+							<div class="ui_col_3">
+								<button type="button" class="btn btn_dark btn_block" onclick="fnOpenDaumAddr();"><span>우편번호 찾기</span></button>
 							</div>
 						</div>
-					</div>
-					<br>
-					<div class="form_field">
-						<label class="input_label sr-only">배송주소 기본주소</label>
-						<div class="ui_col_12">
-							<input type="text" name="recipBaseAddr" id="recipBaseAddr" placeholder="기본주소">
-						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">배송주소 상세주소</label>
-						<div class="ui_col_12">
-							<input type="text" name="recipDtlAddr" id="recipDtlAddr" placeholder="상세주소">
+						<div class="form_field">
+							<label class="input_label sr-only">상세주소</label>
+							<div class="input_wrap"> 
+								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소">
+							</div>
 						</div>
-					</div>
-					
-					<!-- 주소 출력 
-					<div class="help_block">
-						<p><span>도로명</span>서울특별시 서초구 서운로 57번길</p>
-						<p><span>지번</span>서울특별시 서초구 서포동 60-28</p>
-					</div>
-					-->
-					
-					<!-- //주소 출력 -->
-					<div class="form_field">
-						<div>
-							<input id="chk-2" type="checkbox"><label for="chk-2">
-								<p>
-									비회원 개인정보 수집&#47;이용 동의 <span>(필수)</span>
-								</p>
-							</label>
+			
+						<div class="form_field">
+							<div class="agree_nombPrivacy">
+								<input id="chk-nombPrivacy-agr" type="checkbox">
+								<label for="chk-nombPrivacy-agr"><span>비회원 개인정보 수집&#47;이용 동의&nbsp;&nbsp;<em class="tmark_required">(필수)</em></span></label>
+							</div>
 						</div>
-					</div>
-					
-					<div class="form_field txt_area">
-						<div
-							style="overflow: auto; max-height: 176px; border: 1px solid #ddd;">
-							<strong>제1조(목적)</strong>
-							<p>이 약관은 (유)내고향시푸드(전자거래 사업자)이 운영하는 홈페이지(이하 "쇼핑몰"이라 한다)에서
-								제공하는 인터넷 관련 서비스(이하 "서비스"라 한다)를 이용함에 있어 (유)내고향시푸드와 이용자의 권리·의무 및
-								책임사항을 규정함을 목적으로 합니다. ※ 「PC통신 등을 이용하는 전자거래에 대해서도 그 성질에 반하지 않는 한
-								이 약관을 준용합니다」 제2조(정의) ① "쇼핑몰" 이란 사업자가 재화 또는 용역을 이용자에게 제공하기 위하여
-								컴퓨터 등 정보통신설비를 이용하여 재화 또는 용역을 거래할 수 있도록 설정한 가상의 영업장을 말하며, 아울러
-								쇼핑몰을 운영하는 사업자의 의미로도 사용합니다. ② "이용자"란 "쇼핑몰"에 접속하여 이 약관에 따라 "쇼핑몰"이
-								제공하는 서비스를 받는 회원 및 비회원을 말합니다. ③ "회원"이라 함은 "쇼핑몰"에 개인정보를 제공하여
-								회원등록을 한 자로서, "쇼핑몰"의 정보를 지속적으로 제공받으며, "쇼핑몰"이 제공하는 서비스를 계속적으로 이용할
-								수 있는 자를 말합니다. ④ "비회원"이라 함은 회원에 가입하지 않고 "쇼핑몰"이 제공하는 서비스를 이용하는 자를
-								말합니다. 제3조 (약관의 명시와 개정) ① "쇼핑몰"은 이 약관의 내용과 상호, 영업소 소재지, 대표자의 성명,
-								사업자등록번호, 연락처(전화, 팩스, 전자우편 주소 등) 등을 이용자가 알 수 있도록 사이트의 초기
-								서비스화면(전면)에 게시합니다. ② "쇼핑몰"은 약관의 규제 등에 관한 법률, 전자거래기본법, 전자서명법,
-								정보통신망 이용촉진 등에 관한 법률, 방문판매 등에 관한법률, 소비자보호법 등 관련법을 위배하지 않는 범위에서 이
-								약관을 개정할 수 있습니다. ③ "쇼핑몰"이 약관을 개정할 경우에는 적용일자 및 개정사유를 명시하여 현행약관과
-								함께 홈페이지의 초기화면에 그 적용일자 7일 이전부터 적용일자 전일까지 공지합니다. ④ "쇼핑몰"이 약관을 개정할
-								경우에는 그 개정약관은 그 적용일자 이후에 체결되는 계약에만 적용되고 그 이전에 이미 체결된 계약에 대해서는 개정
-								전의 약관조항이 그대로 적용됩니다. 다만 이미 계약을 체결한 이용자가 개정약관 조항의 적용을 받기를 원하는 뜻을
-								제3항에 의한 개정약관의 공지기간 내에 "쇼핑몰"에 송신하여 "쇼핑몰"의 동의를 받은 경우에는 개정약관 조항이
-								적용됩니다. ⑤ 이 약관에서 정하지 아니한 사항과 이 약관의 해석에 관하여는 정부가 제정한 전자거래소비자보호지침
-								및 관계법령 또는 상관례에 따릅니다. 제4조(서비스의 제공 및 변경) ① "쇼핑몰"은 다음과 같은 업무를
-								수행합니다. 1. 재화 또는 용역에 대한 정보 제공 및 구매계약의 체결 2. 구매계약이 체결된 재화 또는 용역의
-								배송 3. 기타 "쇼핑몰"이 정하는 업무 ② "쇼핑몰"은 재화의 품절 또는 기술적 사양의 변경 등의 경우에는 장차
-								체결되는 계약에 의해 제공할 재화·용역의 내용을 변경할 수 있습니다. 이 경우에는 변경된 재화·용역의 내용 및
-								제공일자를 명시하여 현재의 재화·용역의 내용을 게시한 곳에 그 제공일자 이전 7일부터 공지합니다. ③ "쇼핑몰"이
-								제공하기로 이용자와 계약을 체결한 서비스의 내용을 재화의 품절 또는 기술적 사양의 변경 등의 사유로 변경할
-								경우에는 "쇼핑몰"은 이로 인하여 이용자가 입은 손해를 배상합니다. 단, "쇼핑몰"에 고의 또는 과실이 없는
-								경우에는 그러하지 아니합니다.</p>
+						
+						<div class="agree_nomb_txt_box">
+							<div>
+								<!-- 내용 -->
+								(1) "iSTYLE24"는 비회원 주문의 경우에도 배송, 대금결제, 주문내역 조회 및 구매확인, 실명여부 확인을 위하여 필요한 개인정보만을 요청하고 있으며, 이 경우 그 정보는 대금결제 및 상품의 배송에 관련된 용도 이외에는 다른 어떠한 용도로도 사용되지 않습니다.<br>
+								(2) 비회원의 개인정보 수집/이용 목적 및 항목<br>
+								① 성명<br>
+								② 원활한 구매/판매 진행, 본인의사의 확인, 불만 및 분쟁처리, 고지 및 정보 안내 등 : 전화번호, 이동전화번호, e-mail<br>
+								③ 대금결제서비스의 제공 등 : 은행계좌정보, 신용카드정보<br>
+								④ 상품, 경품배송 : 주소, 전화번호, e-mail<br>
+								⑤ 부정 이용방지, 전자금융거래기록보관 : IP address, 방문일시<br>
+								(3) 비회원 서비스 이용의 경우에는 회원 서비스 내용을 제외한 "iSTYLE24" 개인정보 처리방침의 모든 내용이 동일하게 적용됩니다.<br>
+								(4) "iSTYLE24"는 회원의 개인정보와 동일한 수준으로 비회원의 개인정보를 보호합니다.
+								<!-- //내용 -->
+							</div>   
 						</div>
-					</div>
-					<div class="form_field">
-						<div class="ui_row btn_group_md">
+						<div class="btn_group_block btn_group_md ui_row">
 							<div class="ui_col_6">
-								<button class="btn btn_default btn_block" id="btn_cancel">
-									<span>취소</span>
-								</button>
+								<button type="button" class="btn btn_default btn_block" id="btn_cancel"><span>취소</span></button>
 							</div>
 							<div class="ui_col_6">
-								<button class="btn btn_dark btn_block" id="btn_order">
-									<span>주문하기</span>
-								</button>
+								<button type="button" class="btn btn_dark btn_block" id="btn_order"><span>주문하기</span></button>
 							</div>
 						</div>
-					</div>
-					<div class="form_info">
-						<p>STYLE24에 회원가입을 하시면 더 많은 혜택을 받으실 수 있습니다!</p>
-						<a href="#none" id="btn_join">회원가입</a>
-					</div>
+					</form>
+				</div>
+				<div class="cont_foot">
+					<p>
+						<span class="jointit1">STYLE24의 많은 혜택들이 기다리고 있습니다!</span>
+						<span class="jointit2">STYLE24에 회원가입을 하시면 더 많은 혜택을 받아보세요!</span>
+					</p>
+					<a href="#none" target="_blank" class="btn_gojoin" id="btn_join_member">회원가입</a>
 				</div>
 			</div>
-		</div>
-	</th:block>
-</form>
+		</div>		
+	</div>
+</th:block>
+<!-- //비회원 -->
 
 <script th:inline="javascript">
-	// 컨텐츠 호출
-	$(document).ready( function() {
-		
-	});
+// 컨텐츠 호출
+$(document).ready( function() {
 	
-	// 취소버튼
-	$("btn_cancel").on("click", function() {
-		
-	});
+});
 	
-	// 주문하기버튼
-	$("btn_order").on("click", function() {
-		// TODO 유효성 체크 추가
-		$("#orderForm").submit();
-	});
+// 주문하기버튼
+$("#btn_order").on("click", function() {
+	// TODO 유효성 체크 추가
+	if (gagajf.isNull($("#orderForm input[name=custNm]").val())) {
+		mcxDialog.alert("이름을 입력해주세요.");
+		$('#orderForm input[name=custNm]').focus();
+		return false;
+	}
 	
-	// 회원가입버튼
-	$("btn_join_member").on("click", function() {
-		
+	if (gagajf.isNull($("#orderForm input[name=cellPhnno]").val())) {
+		mcxDialog.alert("본인인증을 완료해 주세요.");
+		$('#orderForm input[name=cellPhnno]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#orderForm input[name=email]").val())) {
+		mcxDialog.alert("이메일을 입력해주세요.");
+		$('#orderForm input[name=email]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#orderForm input[name=email]").val())) {
+		mcxDialog.alert("이메일 주소를 다시 확인해주세요.");
+		$('#orderForm input[name=email]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#orderForm input[name=recipZipcode]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		return false;
+	}
+	
+	if (gagajf.isNull($("#orderForm input[name=recipBaseAddr]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#orderForm input[name=recipBaseAddr]').focus();
+		return false;
+	}
+	
+	if (!$("#chk-nombPrivacy-agr").is(":checked")) {
+		mcxDialog.alert("비회원 개인정보 수집 이용에 동의해주세요.");
+		return false;
+	}
+	
+	// 주문서전송
+	$("#orderForm").submit();
+});
+
+// 나이스 본인인증 후 콜백
+var fnNiceCallBack = function(encData) {
+	if (!gagajf.isNull(encData)) {
+		let custInfo 		= {};
+		custInfo.encData 	= encData;
+		let jsonData 		= JSON.stringify(custInfo);
+		gagajf.ajaxJsonSubmit('/order/customer/auth', jsonData, fnUpdateAuthInfoCallback);
+	}
+};
+	
+// 고객정보 데이터
+var fnUpdateAuthInfoCallback = function (result) {
+	// 인정후처리
+	$("#orderForm .beforeAuth").hide();
+	$("#orderForm .afterAuth").show();
+	
+	$('#orderForm input[name=custNm]').val(result.sName);
+	$('#orderForm input[name=cellPhnno]').val(result.sMobileNo);
+}
+
+//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$("#orderForm input[name=recipAddr]").val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
+			$('#orderForm input[name=recipZipcode]').val(data.zonecode);
+			$('#orderForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#orderForm input[name=recipDtlAddr]').focus();
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
 	});
+	
+	cfnOpenDaumAddr(daumZip);
+}
 </script>
 </th:block>
 

+ 197 - 0
src/main/webapp/WEB-INF/views/web/order/OrderNoMemberWeb_20210330.html

@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	  layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : OrderNoMemberWeb.html
+ * @desc    : 비회원 주문/결제 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+<form id="orderForm" name="orderForm" class="form_wrap form_col_c form_full" action="#" th:action="@{'/order/form'}" th:method="post">
+	<input type="hidden" name="shotDelvUseYn" th:value="${order.shotDelvUseYn}" /><!-- 장바구니화면 총알배송사용여부 -->
+	<!-- 장바구니화면 시퀀스 배열 등록 -->
+	<th:block th:each="cartSq , index : ${order.cartSqArr}">
+		<input type="hidden" name="cartSqArr" th:value="${cartSq}" />
+	</th:block>
+	
+	<!-- 회원 -->
+	<th:block th:if="${isLogin} == true">
+		<script>$("#orderForm").submit();</script>
+	</th:block>
+	
+	<!-- <span th:text="${isLogin}"></span> -->
+	
+	<!-- 비회원 -->
+	<!-- <th:block th:if="${isLogin} == 'false'"> -->
+		<div class="wrap">
+			<div class="content nonMBorder">
+				<!-- 페이지특정 클래스 = nonMBorder -->
+				<div class="cont_head">
+					<h2 class="t_c mb60">비회원 주문하기</h2>
+				</div>
+				<div class="cont_body">
+					<div class="form_head">
+						<p>
+							비회원 주문을 위한 주문자 정보 입력 및 개인정보 수집/이용 동의에<br>체크하신 후 주문을 완료하실 수
+							있습니다.
+						</p>
+					</div>
+					
+					<div class="form_field">
+						<label class="input_label sr-only">이름(주문자명)</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="custNm" id="custNm" placeholder="이름(주문자명)">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">휴대폰 번호</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="cellPhnno" id="cellPhnno" placeholder="휴대폰 번호">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">이메일주소</label>
+						<div class="ui_col_12">
+							<div class="input_wrap">
+								<input type="text" name="email" id="email" placeholder="이메일주소">
+							</div>
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">배송주소 우편번호</label>
+						<div class="ui_col_12">
+							<div class="input_wrap" style="display: flex;">
+								<input type="text" name="recipZipcode" id="recipZipcode" placeholder="우편번호">
+								<button type="submit" class="btn btn_default">우편번호 찾기</button>
+							</div>
+						</div>
+					</div>
+					<br>
+					<div class="form_field">
+						<label class="input_label sr-only">배송주소 기본주소</label>
+						<div class="ui_col_12">
+							<input type="text" name="recipBaseAddr" id="recipBaseAddr" placeholder="기본주소">
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">배송주소 상세주소</label>
+						<div class="ui_col_12">
+							<input type="text" name="recipDtlAddr" id="recipDtlAddr" placeholder="상세주소">
+						</div>
+					</div>
+					
+					<!-- 주소 출력 
+					<div class="help_block">
+						<p><span>도로명</span>서울특별시 서초구 서운로 57번길</p>
+						<p><span>지번</span>서울특별시 서초구 서포동 60-28</p>
+					</div>
+					-->
+					
+					<!-- //주소 출력 -->
+					<div class="form_field">
+						<div>
+							<input id="chk-2" type="checkbox"><label for="chk-2">
+								<p>
+									비회원 개인정보 수집&#47;이용 동의 <span>(필수)</span>
+								</p>
+							</label>
+						</div>
+					</div>
+					
+					<div class="form_field txt_area">
+						<div
+							style="overflow: auto; max-height: 176px; border: 1px solid #ddd;">
+							<strong>제1조(목적)</strong>
+							<p>이 약관은 (유)내고향시푸드(전자거래 사업자)이 운영하는 홈페이지(이하 "쇼핑몰"이라 한다)에서
+								제공하는 인터넷 관련 서비스(이하 "서비스"라 한다)를 이용함에 있어 (유)내고향시푸드와 이용자의 권리·의무 및
+								책임사항을 규정함을 목적으로 합니다. ※ 「PC통신 등을 이용하는 전자거래에 대해서도 그 성질에 반하지 않는 한
+								이 약관을 준용합니다」 제2조(정의) ① "쇼핑몰" 이란 사업자가 재화 또는 용역을 이용자에게 제공하기 위하여
+								컴퓨터 등 정보통신설비를 이용하여 재화 또는 용역을 거래할 수 있도록 설정한 가상의 영업장을 말하며, 아울러
+								쇼핑몰을 운영하는 사업자의 의미로도 사용합니다. ② "이용자"란 "쇼핑몰"에 접속하여 이 약관에 따라 "쇼핑몰"이
+								제공하는 서비스를 받는 회원 및 비회원을 말합니다. ③ "회원"이라 함은 "쇼핑몰"에 개인정보를 제공하여
+								회원등록을 한 자로서, "쇼핑몰"의 정보를 지속적으로 제공받으며, "쇼핑몰"이 제공하는 서비스를 계속적으로 이용할
+								수 있는 자를 말합니다. ④ "비회원"이라 함은 회원에 가입하지 않고 "쇼핑몰"이 제공하는 서비스를 이용하는 자를
+								말합니다. 제3조 (약관의 명시와 개정) ① "쇼핑몰"은 이 약관의 내용과 상호, 영업소 소재지, 대표자의 성명,
+								사업자등록번호, 연락처(전화, 팩스, 전자우편 주소 등) 등을 이용자가 알 수 있도록 사이트의 초기
+								서비스화면(전면)에 게시합니다. ② "쇼핑몰"은 약관의 규제 등에 관한 법률, 전자거래기본법, 전자서명법,
+								정보통신망 이용촉진 등에 관한 법률, 방문판매 등에 관한법률, 소비자보호법 등 관련법을 위배하지 않는 범위에서 이
+								약관을 개정할 수 있습니다. ③ "쇼핑몰"이 약관을 개정할 경우에는 적용일자 및 개정사유를 명시하여 현행약관과
+								함께 홈페이지의 초기화면에 그 적용일자 7일 이전부터 적용일자 전일까지 공지합니다. ④ "쇼핑몰"이 약관을 개정할
+								경우에는 그 개정약관은 그 적용일자 이후에 체결되는 계약에만 적용되고 그 이전에 이미 체결된 계약에 대해서는 개정
+								전의 약관조항이 그대로 적용됩니다. 다만 이미 계약을 체결한 이용자가 개정약관 조항의 적용을 받기를 원하는 뜻을
+								제3항에 의한 개정약관의 공지기간 내에 "쇼핑몰"에 송신하여 "쇼핑몰"의 동의를 받은 경우에는 개정약관 조항이
+								적용됩니다. ⑤ 이 약관에서 정하지 아니한 사항과 이 약관의 해석에 관하여는 정부가 제정한 전자거래소비자보호지침
+								및 관계법령 또는 상관례에 따릅니다. 제4조(서비스의 제공 및 변경) ① "쇼핑몰"은 다음과 같은 업무를
+								수행합니다. 1. 재화 또는 용역에 대한 정보 제공 및 구매계약의 체결 2. 구매계약이 체결된 재화 또는 용역의
+								배송 3. 기타 "쇼핑몰"이 정하는 업무 ② "쇼핑몰"은 재화의 품절 또는 기술적 사양의 변경 등의 경우에는 장차
+								체결되는 계약에 의해 제공할 재화·용역의 내용을 변경할 수 있습니다. 이 경우에는 변경된 재화·용역의 내용 및
+								제공일자를 명시하여 현재의 재화·용역의 내용을 게시한 곳에 그 제공일자 이전 7일부터 공지합니다. ③ "쇼핑몰"이
+								제공하기로 이용자와 계약을 체결한 서비스의 내용을 재화의 품절 또는 기술적 사양의 변경 등의 사유로 변경할
+								경우에는 "쇼핑몰"은 이로 인하여 이용자가 입은 손해를 배상합니다. 단, "쇼핑몰"에 고의 또는 과실이 없는
+								경우에는 그러하지 아니합니다.</p>
+						</div>
+					</div>
+					<div class="form_field">
+						<div class="ui_row btn_group_md">
+							<div class="ui_col_6">
+								<button class="btn btn_default btn_block" id="btn_cancel">
+									<span>취소</span>
+								</button>
+							</div>
+							<div class="ui_col_6">
+								<button class="btn btn_dark btn_block" id="btn_order">
+									<span>주문하기</span>
+								</button>
+							</div>
+						</div>
+					</div>
+					<div class="form_info">
+						<p>STYLE24에 회원가입을 하시면 더 많은 혜택을 받으실 수 있습니다!</p>
+						<a href="#none" id="btn_join">회원가입</a>
+					</div>
+				</div>
+			</div>
+		</div>
+	<!-- </th:block> -->
+</form>
+
+<script th:inline="javascript">
+	// 컨텐츠 호출
+	$(document).ready( function() {
+		
+	});
+	
+	// 취소버튼
+	$("btn_cancel").on("click", function() {
+		
+	});
+	
+	// 주문하기버튼
+	$("btn_order").on("click", function() {
+		// TODO 유효성 체크 추가
+		$("#orderForm").submit();
+	});
+	
+	// 회원가입버튼
+	$("btn_join_member").on("click", function() {
+		
+	});
+</script>
+</th:block>
+
+</body>
+</html>