Просмотр исходного кода

Merge branch 'develop' into bin2107

bin2107 5 лет назад
Родитель
Сommit
91ce06bd6d
20 измененных файлов с 522 добавлено и 213 удалено
  1. 7 1
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  2. 5 0
      src/main/java/com/style24/front/biz/web/TsfIndexController.java
  3. 42 0
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  4. 6 0
      src/main/java/com/style24/persistence/domain/Plan.java
  5. 36 9
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  6. 2 2
      src/main/webapp/WEB-INF/views/mob/SigninFormMob.html
  7. 1 1
      src/main/webapp/WEB-INF/views/mob/SnsCallBackFormMob.html
  8. 2 2
      src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html
  9. 144 0
      src/main/webapp/WEB-INF/views/mob/customer/ConsentUseInfoFormMob.html
  10. 1 1
      src/main/webapp/WEB-INF/views/mob/customer/JoinFormMob.html
  11. 15 1
      src/main/webapp/WEB-INF/views/mob/customer/PrivacyPolicyLayerFormMob.html
  12. 14 0
      src/main/webapp/WEB-INF/views/mob/customer/PrivacyTrustLayerFormMob.html
  13. 14 1
      src/main/webapp/WEB-INF/views/mob/customer/UseTermsLayerFormMob.html
  14. 7 8
      src/main/webapp/WEB-INF/views/mob/goods/GoodsCouponFormMob.html
  15. 14 12
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  16. 197 167
      src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html
  17. 2 2
      src/main/webapp/WEB-INF/views/web/SigninFormWeb.html
  18. 2 2
      src/main/webapp/WEB-INF/views/web/customer/ConsentUseInfoFormWeb.html
  19. 1 1
      src/main/webapp/WEB-INF/views/web/customer/JoinTypeFormWeb.html
  20. 10 3
      src/main/webapp/ux/style24_link.js

+ 7 - 1
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -2,6 +2,7 @@ package com.style24.front.biz.web;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import javax.websocket.server.PathParam;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -878,6 +879,10 @@ public class TsfCustomerController extends TsfBaseController {
 		CustSnsInfo custSnsInfo = (CustSnsInfo)session.getAttribute("custSnsInfo");
 		session.removeAttribute("custSnsInfo"); // YES24 세션 지움
 
+		if (custSnsInfo == null) {
+			throw new IllegalStateException("연계정보 값이 없습니다. 고객센터에 문의하시기 바랍니다.");
+		}
+
 		// 1. SNS처리
 		GagaMap resultMap = customerService.customerSnsProcessing(custSnsInfo);
 		String custStat = resultMap.getString("custStat");
@@ -916,9 +921,10 @@ public class TsfCustomerController extends TsfBaseController {
 	 * @since 2021. 04. 01
 	 */
 	@PostMapping("/privacy/policy/layer")
-	public ModelAndView getPrivacyPolicyLayer() {
+	public ModelAndView getPrivacyPolicyLayer(HttpServletRequest request) {
 		ModelAndView mav = new ModelAndView();
 		mav.addObject("clause", clauseService.getClause(TscConstants.Site.STYLE24.value(), "G057_11"));
+		mav.addObject("mallGb", request.getParameter("mallGb"));
 		mav.setViewName(super.getDeviceViewName("customer/PrivacyPolicyLayerForm"));
 		return mav;
 	}

+ 5 - 0
src/main/java/com/style24/front/biz/web/TsfIndexController.java

@@ -360,6 +360,11 @@ public class TsfIndexController extends TsfBaseController {
 		GagaMap userInfo = new GagaMap();
 		log.info("ipn {}", ipn);
 		log.info("ipin {}", ipin);
+
+//		if (StringUtils.isBlank(ipn)) {
+//			ipin = "TQnw8ltThGlTy5cDnD0GW6ZgQ/OEH5FBFhjI5NFmCsZ+dmk3DHCFFcRSBT5+sLSIiReYKFUYnwfYGbW31Asj8picaODc8OHNxKjKwcl1hVEmZOeI5PT709zuMBUCR89sV6w3jpgX0QeAJPGdr+Lfmg==";
+//		}
+
 		if (StringUtils.isNotBlank(ipin)) {
 			userInfo = yes24Login.getUserInfo(ipin);
 			userInfo.setString("snsType", TscConstants.SnsType.YES24.value());

+ 42 - 0
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -207,6 +207,13 @@ public class TsfPlanningController extends TsfBaseController {
 
 		// 상품2열 전시
 		plan.setTmplType("G082_51");
+		/*
+		 * if (TsfSession.getFrontGb().equals("M")) { TscPageRequest pageable = new
+		 * TscPageRequest((plan.getPageNo2() > 0 ? plan.getPageNo2() - 1 : 0),
+		 * plan.getPageSize2(), plan.getPageUnit2()); int totalCnt =
+		 * planningService.getPlanGoodsDisplayList(plan).size();
+		 * pageable.setTotalCount(totalCnt); plan.setPageable2(pageable); }
+		 */
 		mav.addObject("goods2Info", planningService.getPlanGoodsDisplayList(plan));
 
 		// 상품4열 전시
@@ -254,6 +261,41 @@ public class TsfPlanningController extends TsfBaseController {
 		return mav;
 	}
 	
+	/**
+	 * 모바일 상품 2열 전시 더보기
+	 * @param plan
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 14
+	 */
+	@PostMapping("/goods/list")
+	@ResponseBody
+	public GagaMap getPlanningGoodsList(@RequestBody Plan plan) {
+		
+		plan.setSiteCd(TscConstants.Site.STYLE24.value());
+		if (TsfSession.isLogin()) {
+			plan.setCustNo(TsfSession.getInfo().getCustNo());
+		}
+		plan.setFrontGb(TsfSession.getFrontGb());
+		GagaMap result = new GagaMap();
+		plan.setTmplType("G082_51");
+		plan.setPlanStat("Y");
+		result.set("planGoods2List", planningService.getPlanGoodsDisplayList(plan).size());
+		
+		TscPageRequest pageable = new TscPageRequest((plan.getPageNo2() > 0 ? plan.getPageNo2() - 1 : 0), plan.getPageSize2(), plan.getPageUnit2());
+		int totalCnt = planningService.getPlanGoodsDisplayList(plan).size();
+		
+		pageable.setTotalCount(totalCnt);
+		plan.setPageable2(pageable);
+		result.set("paging1", plan);
+		result.set("totalCnt", totalCnt);
+		result.set("endRow", pageable.getEndRow());
+		result.set("dataList", planningService.getPlanGoodsDisplayList(plan));
+
+		return result;
+	}
+
+	
 	/**
 	 * 기획전 쿠폰 상세보기 팝업
 	 *

+ 6 - 0
src/main/java/com/style24/persistence/domain/Plan.java

@@ -210,6 +210,7 @@ public class Plan extends TscBaseDomain {
 	private String reDispYn;			//리뷰전시여부
 	private String reItemNm;			//리뷰상품이름
 	private Integer rePlanContSq;		//리뷰 컨텐츠일련번호
+	private String planStat;
 
 	private String cuTitle;				//쿠폰타이틀
 	private long cuDispOrd;				//쿠폰전시순서
@@ -293,6 +294,11 @@ public class Plan extends TscBaseDomain {
 	private int pageNo = 1;
 	private int pageSize = 10;
 	private int pageUnit = 10;
+	
+	private TscPageRequest pageable2;
+	private int pageNo2 = 1;
+	private int pageSize2 = 6;
+	private int pageUnit2 = 10;
 
 	private String condition; // 키워드 종류
 	private String search; // 검색어

+ 36 - 9
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -10,8 +10,27 @@
 
 	<!-- 페이징을 위한 select절 하단 -->
 	<sql id="selectForPagingFooter">
-		       ) ORIGINAL
-		WHERE  NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+		<choose>
+			<when test="pageable != null">
+			    ) ORIGINAL
+			WHERE RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
+			</when>
+			<otherwise>
+			    ) ORIGINAL
+			</otherwise>
+		</choose>
+	</sql>
+	
+	<sql id="selectForPagingFooter2">
+		<choose>
+			<when test="pageable2 != null">
+			    ) ORIGINAL
+			WHERE RNUM BETWEEN  #{pageable2.startRow} AND #{pageable2.endRow}
+			</when>
+			<otherwise>
+			    ) ORIGINAL
+			</otherwise>
+		</choose>
 	</sql>
 	
 	<!-- 기획전 카테고리 목록 -->
@@ -590,11 +609,11 @@
 		SELECT TMPL_TYPE 
 		     , DISP_ORD
 		     , PLAN_CONT_SQ
-		     ,TITLE 
-		     ,LINK_URL
-		     ,LINK_OPEN_GB
-		     ,NOTE 
-		     ,DISP_YN 
+		     , TITLE 
+		     , LINK_URL
+		     , LINK_OPEN_GB
+		     , NOTE 
+		     , DISP_YN 
 		FROM TB_PLAN_CONTENTS TPC 
 		WHERE 1=1 
 			AND TPC.PLAN_SQ = #{planSq}
@@ -854,6 +873,7 @@
 	<!-- 기획전 상품  전시 -->
 	<select id="getPlanGoodsDisplayList" parameterType="Plan" resultType="Plan">
 		/* TsfPlanning.getPlanGoodsDisplayList */
+		<include refid="selectForPagingHeader"/>
 		SELECT Z.*
 		      ,(CASE WHEN Z.LIST_PRICE > 0 THEN 100 - ROUND((Z.CURR_PRICE / Z.LIST_PRICE) * 100 ,0) ELSE 0 END ) AS DC_RATE
 		FROM
@@ -884,6 +904,7 @@
 		         , G.MAIN_COLOR_CD                                          /*대표색상코드*/
 		         , G.LIST_PRICE                                             /*정상가(최초판매가)*/
 		         , G.CURR_PRICE                                             /*현재판매가*/
+		         , PCI.REG_DT 
 		    FROM   TB_PLAN P
 		    	 , TB_PLAN_CONTENTS PC
 		    	 , TB_PLAN_CONTENTS_ITEM PCI
@@ -897,7 +918,11 @@
 		    AND    G.GOODS_CD = GS.GOODS_CD
 		    AND    G.BRAND_CD = B.BRAND_CD
 		    AND    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-		    AND    P.PLAN_SQ =  #{planSq} /**P*/
+		    AND    P.PLAN_SQ =  #{planSq} 
+		    <if test='planStat == "Y"'>
+		         AND PC.PLAN_CONT_SQ = #{planContSq}
+		         AND PC.TMPL_TYPE = #{tmplType}
+		    </if>
 		    -- AND    P.PLAN_GB = 'P' /*기획전*/
 		    AND    P.SITE_CD =  #{siteCd} /**P*/
 		    <if test="frontGb != null and frontGb != ''">
@@ -945,9 +970,11 @@
 		     , FN_GET_BENEFIT_PRICE(#{frontGb},PG.GOODS_CD,PG.CURR_PRICE,#{custGb})                     AS CURR_PRICE    /*현재판매가*/
 		     , GI.SYS_IMG_NM
 		     , GI.SYS_IMG_NM2
+		     , ROW_NUMBER() OVER(ORDER BY PG.REG_DT DESC) AS RNUM
 		FROM   TAB_PLAN_GOODS PG
 		INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
 		)Z
+		<include refid="selectForPagingFooter2"/>
 	</select>
 	
 	<!-- 기획전 코너 목록 -->
@@ -1509,7 +1536,7 @@
 			     , PE.REG_DT
 			     , PE.UPD_NO
 			     , PE.UPD_DT
-			     , RANK() OVER(ORDER BY REG_DT DESC) AS NUMB
+			     , RANK() OVER(ORDER BY REG_DT DESC) AS RNUM
 			FROM TB_PLAN_ENTRY PE
 			WHERE 1=1
 		    AND PE.PLAN_SQ = #{planSq}

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/SigninFormMob.html

@@ -34,7 +34,7 @@
 						<h3 class="title sr-only">로그인</h3>
 					</div>
 					<div class="form_field mt0">
-						<input type="text" name="loginId" placeholder="아이디" class="form_control"minlength="4" maxlength="12" required="required" data-valid-type="alphaNumeric" data-valid-name="아이디"/>
+						<input type="text" name="loginId" placeholder="아이디" class="form_control"minlength="4" maxlength="12" required="required" data-valid-name="아이디"/>
 					</div>
 					<div class="form_field">
 						<input type="password" name="passwd" placeholder="비밀번호 8자~20자 입력" class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="비밀번호"/>
@@ -275,7 +275,7 @@
 		}
 		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
 		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN);
 		}
 		// 5. YES24 첫 로그인 시도 시 정보동의 페이지 이동
 		if (userInfo.custStat === 'NEED_AGREE_CUST') {

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/SnsCallBackFormMob.html

@@ -52,7 +52,7 @@
 		}
 		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
 		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN);
 		}
 		// 5. YES24 첫 로그인 시도 시 정보동의 페이지 이동
 		if (userInfo.custStat === 'NEED_AGREE_CUST') {

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html

@@ -29,8 +29,8 @@
 			<div class="inner">
 				<ul class="link wider">
 					<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_FAQ);">고객센터</a></li>
-					<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_USE_TERMS);">이용약관</a></li>
-					<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_PRIVACY_POLICY);">개인정보취급방침</a></li>
+					<li><a href="javascript:void(0);" onclick="cfnUseTermsLayer();">이용약관</a></li>
+					<li><a href="javascript:void(0);" onclick="cfnPrivacyPolicyLayer();">개인정보취급방침</a></li>
 				</ul>
 	
 				<div class="collapse">

+ 144 - 0
src/main/webapp/WEB-INF/views/mob/customer/ConsentUseInfoFormMob.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : ConsentUseInfoFormMob.html
+ * @desc    : 정보이용동의팝업
+ *            Yes24 간편가입에 사용됨
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.14   jsshin       최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header sr-only">
+			<h5 class="modal-title" id="mbAgreeLabel">YES24 로그인 정보 이용동의</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<div class="agree_info">
+					<h5 class="title">YES24 로그인 정보 이용동의</h5>
+					<p>계정연동의 경우, STYLE24 휴면계정이면<br>휴면해제 후 이용 가능합니다</p>
+					<div class="info_txt">
+						<ul>
+							<li>“<span class="mb_name" th:text="${custNm}">회원명</span>” 님의 <em>CI, 이름, 성별, 생년월일, 핸드폰번호, 이메일 정보</em>를 로그인 연동을 위해 아이스타일24에 제공합니다.</li>
+							<li>정보제공 동의 시 YES24 계정으로 로그인 가능하며, 간편하게 회원가입이 가능합니다.</li>
+						</ul>
+					</div>
+				</div>
+			</div>
+		</div>
+		<div class="modal-footer">
+			<div class="btn_group_flex">
+				<div>
+					<button type="button" id="btnAgree" class="btn btn_primary">
+						<span>동의하기</span>
+					</button>
+				</div>
+				<div>
+					<button type="button" id="btnClose" class="btn btn_dark">
+						<span>닫기</span>
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	<a href="#close-modal" rel="modal:close" id="mbAgreePop_close" class="close-modal">Close</a>
+</div>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	$('#btnAgree').on('click', function () {
+		let jsonData = JSON.stringify({});
+		gagajf.ajaxJsonSubmit('/customer/peristalsis/yes24', jsonData, fnPeristalsisCallback)
+	});
+
+
+	var fnPeristalsisCallback = function (userInfo) {
+		// 1. CI 정보로 사용자가 없어서 회원가입 프로세스 처리 중 이메일, 휴대전화 중복
+		if (userInfo.custStat === 'DUP_PHONE_CUST') {
+			mcxDialog.alert("이미 사용 중인 휴대전화번호 입니다.");
+			$.modal.close();
+			return;
+		}
+		if (userInfo.custStat === 'DUP_EMAIL_CUST') {
+			mcxDialog.alert("이미 사용 중인 이메일 입니다.");
+			$.modal.close();
+			return;
+		}
+		// 2. SNS 로그인 정보로 탈퇴확인
+		if (userInfo.custStat === 'SECEDE_CUST') {
+			mcxDialog.alert("탈퇴 회원 입니다.");
+			$.modal.close();
+			return;
+		}
+		// 3. SNS 로그인 정보로 휴면확인
+		if (userInfo.custStat === 'DORMANT_CUST') {
+			mcxDialog.alertC("휴면 고객님께서는 휴면을<br>해지하신 후 사용하실 수 있습니다.", {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					cfnGoToPage(_PAGE_CUSTOMER_DORMANT);
+					$.modal.close();
+				}
+			});
+			return;
+		}
+		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
+		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN);
+			$.modal.close();
+			return;
+		}
+		// 5. SNS 정보로 가입 성공시 가입완료 페이지 이동
+		if (userInfo.custStat === 'NEW_CUST') {
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
+			$.modal.close();
+			return;
+		}
+		// 6.SNS 정보로 가입 실패시 안내 창 알림
+		if (userInfo.custStat === 'FAIL_CUST') {
+			mcxDialog.alert("회원가입에 실패 했습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+			$.modal.close();
+			return;
+		}
+		// 7. SNS 로그인 연동 성공 및 기존 SNS 연동된 회원 로그인 시도
+		if (userInfo.custStat === 'SUCC_CUST') {
+			let params = {};
+			params.snsType = userInfo.snsType;
+			params.snsId = [[${snsLoginPrefix}]] + userInfo.snsId;
+			$.post(_frontUrl + '/login'
+				, $.param(params)
+				, fnReloadAfterLogin
+				, "json");
+		}
+	}
+	var fnReloadAfterLogin = function(result) {
+		if (result.status === 'OK') {
+			document.location.href = result.returnUrl;
+		} else {
+			mcxDialog.alert("로그인 실패 하였습니다.<br> 고객센터에 문의 하시기 바랍니다.");
+		}
+		$.modal.close();
+	};
+
+	$("#btnClose").click(function() {
+		cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);
+		$.modal.close();
+	});
+
+	$(document).ready(function () {
+		$('.close-modal').on('click', function () {
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);
+		});
+	});
+
+
+
+	/*]]>*/
+</script>
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/customer/JoinFormMob.html

@@ -168,7 +168,7 @@
 				<div class="desc_wrap t_c mt20">
 					<p>
 						본인은&nbsp;만 14세 이상이며&nbsp;<a href="javascript:void(0)" onclick="cfnUseTermsLayer();">STYLE24이용약관<i class="ico ico_blank ml5"></i></a>,<br>
-						<a href="javascript:void(0)" onclick="cfnPrivacyPolicyLayer();">개인정보 수집 및 이용<i class="ico ico_blank ml5"></i></a>,
+						<a href="javascript:void(0)" onclick="cfnPrivacyPolicyLayer('join');">개인정보 수집 및 이용<i class="ico ico_blank ml5"></i></a>,
 						<a href="javascript:void(0)" onclick="cfnPrivacyTrustLayer();">개인정보 취급 위탁<i class="ico ico_blank ml5"></i></a><br>
 						내용을 확인 하였으며,동의합니다.
 					</p>

+ 15 - 1
src/main/webapp/WEB-INF/views/mob/customer/PrivacyPolicyLayerFormMob.html

@@ -17,7 +17,7 @@
 <div class="modal-dialog" role="document">
 	<div class="modal-content">
 		<div class="modal-header">
-			<h5 class="modal-title" id="exampleFullLabel">개인정보 수집 및 이용</h5>
+			<h5 class="modal-title" id="exampleFullLabel" th:text="${mallGb=='join'? '개인정보 수집 및 이용': '개인정보취급방침'}">개인정보 수집 및 이용</h5>
 		</div>
 		<div class="modal-body">
 			<div class="pop_cont">
@@ -30,4 +30,18 @@
 		</div>
 	</div>
 </div>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	//약관내부링크
+	$(function(){
+		$(".hook_list ul li a").on("click", function(){
+			var hookHeader = $(".modal-header").outerHeight() + 3000;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 3000);
+		});
+	});
+/*]]>*/
+</script>
 </html>

+ 14 - 0
src/main/webapp/WEB-INF/views/mob/customer/PrivacyTrustLayerFormMob.html

@@ -30,4 +30,18 @@
 		</div>
 	</div>
 </div>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	//약관내부링크
+	$(function(){
+		$(".hook_list ul li a").on("click", function(){
+			var hookHeader = $(".modal-header").outerHeight() + 3000;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 3000);
+		});
+	});
+/*]]>*/
+</script>
 </html>

+ 14 - 1
src/main/webapp/WEB-INF/views/mob/customer/UseTermsLayerFormMob.html

@@ -29,5 +29,18 @@
 			</div>
 		</div>
 	</div>
-</div>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	//약관내부링크
+	$(function(){
+		$(".hook_list ul li a").on("click", function(){
+			var hookHeader = $(".modal-header").outerHeight() + 3000;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 3000);
+		});
+	});
+/*]]>*/
+</script>
 </html>

+ 7 - 8
src/main/webapp/WEB-INF/views/mob/goods/GoodsCouponFormMob.html

@@ -41,7 +41,7 @@
 							</div>
 							<div class="btn_group_flex">
 								<div>
-									<button type="button" class="btn btn_dark" id="btn_result_coupon" 
+									<button type="button" class="btn btn_dark btn_coupon_down" id="btn_result_coupon" 
 											th:disabled="${goodsCoupon.custPubLimitQty > 0 and goodsCoupon.custPubLimitQty <= goodsCoupon.custCouponCnt}"
 											th:attr="cpnId=${goodsCoupon.cpnId}" th:id="${'coupon_'+goodsCoupon.cpnId}" onclick="fnGoodsCouponDown(this);">
 										<span>쿠폰받기</span>
@@ -62,7 +62,8 @@
 		</form>	
 		</div>
 		<div class="modal-footer">
-			<button type="button" class="btn btn_primary btn_all_cpdown" onclick="fnGoodsCouponDownAll();"><span>쿠폰 모두 받기</span></button>
+			<button type="button" id="btn_all_coupon" class="btn btn_primary" onclick="fnGoodsCouponDownAll();">
+			<span>쿠폰 모두 받기</span><span>쿠폰 모두 받기 완료</span></button>
 		</div>
 	</div>
 </div>
@@ -118,11 +119,11 @@
 	
 	
 	// 쿠폰 전체 다운로드
-	var fnGoodsCouponDownAll = function(){
+	var fnGoodsCouponDownAll = function(){debugger;
 		//00개 쿠폰이 발급되었습니다.
 		let couponDownAbleYn = "N";
 		let arrCpnId = [];
-		$('.btn_coupon_down').each(function(){
+		$('.btn_coupon_down').each(function(){debugger;
 			if (!$(this).attr('disabled')){
 				couponDownAbleYn = "Y";
 				arrCpnId.push($(this).attr('cpnId'));
@@ -151,13 +152,13 @@
 						if (coupon.cpnId == cpnId){
 							if (Number(coupon.custPubLimitQty) > 0){
 								if (Number(coupon.custPubLimitQty) <= Number(coupon.custCouponCnt)){
-									$('#coupon_'+ coupon.cpnId).html('<span>받기완료</span>');
+								//	$('#coupon_'+ coupon.cpnId).html('<span>받기완료</span>');
 									$('#coupon_'+ coupon.cpnId).attr('disabled', true);
 								}
 							}
 							if (Number(coupon.TotPubLimitQty) > 0){
 								if (Number(coupon.TotPubLimitQty) <= Number(coupon.CustCouponCnt)){
-									$('#coupon_'+ coupon.cpnId).html('<span>받기완료</span>');
+								//	$('#coupon_'+ coupon.cpnId).html('<span>받기완료</span>');
 									$('#coupon_'+ coupon.cpnId).attr('disabled', true);
 								}
 							}
@@ -179,9 +180,7 @@
 		});	
 		
 		if(couponDownAbleYn == "N"){
-			$('.btn_all_cpdown').addClass('btn_coupon_done');
 			$('.btn_all_cpdown').attr('disabled', true);
-			$('.btn_all_cpdown').find('span').text('쿠폰 모두 받기 완료');
 		}
 	}	
 	

+ 14 - 12
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -18,8 +18,6 @@
  -->
 <body>
 <th:block layout:fragment="content">
-<main role="" id="" class="container pd" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
-	<!-- ★ 컨텐츠 시작 -->
 	<form name="cartForm" id="cartForm" method="post">
 		<input type="hidden" name="mode">
 		<input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
@@ -38,6 +36,9 @@
 		<input type="hidden" name="currPrice" th:value="${goodsInfo.currPrice}"/>
 		<input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
 		<input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
+<main role="" id="" class="container pd" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
+	<!-- ★ 컨텐츠 시작 -->
+
 	<section class="pd_detail">
 		<!-- 210409_ 구조변경 : .pd_info, .pd_info1 추가  -->
 		<div class="pd_info">
@@ -278,14 +279,13 @@
 					</th:block>
 					</th:block>
 					</th:block>
+					<th:block  th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block >
 					
 				</div>
 					
-				<div class="view_outfit_box" >
+				<div class="view_outfit_box" th:if="${goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null  and !goodsInfo.goodsDesc.empty}">
 				<!-- 관리자 에디터입력 내용 노출  상단 html -->
-					<th:block  th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block >
-					
-					<th:block th:if="${goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null  and !goodsInfo.goodsDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}"></th:block>
+					<th:block  th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}"></th:block>
 				</div>
 				<th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">	
 				<!-- 착용컷 노출 -->
@@ -583,7 +583,7 @@
 				</div>
 				<!-- //상품필수정보 노출 -->
 			</div>
-			<div class="btn_more_box">
+			<div class="btn_more_box covered">
 				<div class="btn_group_flex">
 					<div>
 						<button type="button" class="btn btn_default">
@@ -1003,7 +1003,7 @@
 		<!-- 구매하기팝업 -->
 	</section>
 	<!-- ★ 컨텐츠 종료 -->	
-</form>
+
 	<!-- 바닥메뉴 -->	
 	<div class="product_floormenu"><!--  ☞☞ 제품이 품절되면 soldout클래스 추가 -->
 		<div class="share_like">
@@ -1050,9 +1050,9 @@
 			</div>
 		</div>
 	</div>
-		
-</main>
 
+</main>
+</form>
 <!-- 바로구매 및 선물하기 장바구니 등록 정보 저장을 위한 form -->
 <form id="directOrderForm" method="POST" action="/order/noMember"></form>
 <script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
@@ -1961,6 +1961,8 @@
 			return false;
 		}); 
 		
+
+		
 		//슬라이드 - 함께하면 할인되는 다다익선 상품
 		var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
 			slidesPerView: 3,
@@ -2164,12 +2166,12 @@
 		fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
 		
 		
-		/*  $('.Purchase_pop .btPop_close').click(function(){
+		$('.Purchase_pop .btPop_close').click(function(){
 			$('html, body').css({'overflow': 'visible', 'height': '100%'});
 			$('.container').removeClass('btPop_open');
 			autome.style.top  = 100 + "%";
 			return false;
-		}); */
+		}); 
 		 
 	});
 	

+ 197 - 167
src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html

@@ -30,6 +30,10 @@
 						<button type="button" class="share_btn"><img src="/images/mo/ico_share_btn.png" alt="공유" /></button>
 					</div>
 				</div>
+				<div class="inner wide">
+					<div class="promotion_visual type1" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcMob,'&amplt;','<'),'&ampgt;','>')}">>
+					</div>
+				</div>
 				<th:block th:each="a, template : ${templateOrd}">
 					<th:block th:if="${a.tmplType == 'G082_10'}">
 		                <div class="inner bg_gray" th:id="${a.tmplType}">
@@ -48,12 +52,126 @@
                 		</div>
 					</th:block>
 					<th:block th:if="${a.tmplType == 'G082_51'}">
+						<div class="inner" th:id="${a.tmplType + a.planContSq}">
+							<div class="dp_listItems_wrap">
+								<h2 class="dp_subtitle">
+									<a th:if="${a.linkUrl!=null && a.linkUrl!=''}" th:href="${a.linkUrl}" th:text="${a.title}"></a>
+									<a th:unless="${a.linkUrl!=null && a.linkUrl!=''}" href="javascript:void(0)" th:text="${a.title}"></a>
+								</h2>
+								<div class="itemsGrp" th:id="'group_'+${a.planContSq}">
+
+								</div>
+								<button class="btn btn_default" th:id="'moreBtn_'+${a.planContSq}" th:onclick="moreBtn([[${a.planContSq}]])">더보기</button>
+							</div>
+						</div>
 					</th:block>
 					<th:block th:if="${a.tmplType == 'G082_52'}">
 						<div class="inner" th:id="${a.tmplType + a.planContSq}">
                     	</div>
 					</th:block>
 				</th:block>
+				
+				<div class="inner" th:if="${fsrcInfoBtm != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoBtm.fsrcMob,'&amplt;','<'),'&ampgt;','>')}">
+				</div>
+				
+				<div class="inner wide">
+					<form action="" class="form_wrap">
+						<div class="cmt_wrap">
+							<div class="cmt_write">
+								<div class="cmt_tarea">
+									<div class="form_field">
+										<div class="ui_col_12 comment_textarea">
+											<div class="input_wrap">
+												<textarea class="doc_contactus" name="" id="comment_textarea" placeholder="500자 이내로 입력해 주세요." style="resize: none;"></textarea> <!-- 210414_수정 : placeholder 텍스트 수정 -->
+												<p class="txt_cnt">
+													<span id="contactus_cnt" class="contactus_cnt"><em class="c_primary">0</em>/500</span>
+												</p>
+											</div> 
+											<!-- 특수문자 : \ / : < >  사용 불가 > 입력 시, “특수문자 \ / : < > 는 사용할 수 없습니다.” 얼럿 호출 스크립트 입력 불가능 -->
+										</div>
+									</div>
+								</div>
+								<div class="cmt_thumb">
+									<div class="form_field">
+										<div class="input_wrap">
+											<!-- 이미지첨부 -->
+											<div class="form_field">
+												<div class="imgUpload">
+													<label for="fileAdd" class="fileAdd">첫번째업로드</label>
+													<input type="file" id="fileAdd" name="files[]" accept=".jpeg, .jpg, .png"> <!-- 210507_추가 : accept 속성 추가 -->
+												</div>
+											</div>
+											<!-- //이미지첨부 -->
+										</div> 
+									</div>
+								</div>
+								<div class="btn_wrap">
+									<button type="submit" id="btn_cmt_regist" class="btn btn_dark"><span>등록</span></button>
+								</div>
+							</div>
+							<!-- 댓글 -->
+							<div class="cmt_group">
+								<div class="cmt_list_tit">
+									<strong>댓글</strong><span class="cnt">(9,999)</span> <!-- 210414_수정 : 갯수 표현 변경 (등록된 개수 모두 노출) -->
+								</div>
+								<ul class="cmt_list">
+									<li>
+										<div class="cmt_top">
+											<span class="writer">DI2****</span>
+											<span class="date">2020.12.30</span>
+										</div>
+										<div class="cmt_cont">
+											<p>
+												애용하는 회원으로서 스타일24의 리뉴얼은 저의 일처럼 기쁘네요 ^^ 깔끔하고 세련된 느낌으로 단장해서 사이트 들어왔을 때 기분이 좋답니다! 사이트 리뉴얼 겸 겨울옷을  사려고 한창 둘러보았어요. <br/>
+												따뜻한 느낌 풀풀 내는아이템들로 찜꽁 해놓았답니다! 이왕 이벤트도 당첨되어서 포인트도 얻고, 또 구매도 하고 싶네요ㅋㅋㅋ <br/>
+												리뉴얼 하신거  축하드려요!!!  당첨되길 바랍니다.^^ 
+											</p>
+										</div>
+									</li>
+									<li>
+										<div class="cmt_top">
+											<span class="writer">ety****</span>
+											<span class="date">2020.12.30</span>
+											<button type="button" id="btn_cmt_delete" class="btn_del">삭제</button>
+										</div>
+										<div class="cmt_cont">
+											<div class="img_wrap clear">
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img01.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img02.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img03.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img04.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img01.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img02.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img03.jpg" alt="썸네일"></div>
+												<div class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img04.jpg" alt="썸네일"></div>
+											</div>
+											<p>모처럼 스타일24를 다시 애용해야 겠어요! 축하축하 ^^</p>
+										</div>
+									</li>
+									
+									
+									
+								</ul>
+								<div class="paging_wrap">
+									<ul class="pageNav">
+										<li class="prev"><a href="#"><span class="sr-only">이전</span></a></li>
+										<li class="active">01</li>
+										<li>/</li>
+										<li>10</li>
+										<li class="next"><a href="#"><span class="sr-only">다음</span></a></li>
+									</ul>
+								</div>
+								<div class="nodata">
+									<div class="txt_box">
+										<p>
+											등록된 댓글이 없습니다.
+										</p>
+									</div>
+								</div>
+							</div>
+						</div>
+					</form>
+				</div>
 
                 <div class="inner wide">
 					<div class="mid_banner">
@@ -79,170 +197,6 @@
 						</div>
 					</div>
 				</div>
-				<div class="inner">
-					<div class="dp_listItems_wrap">
-						<h2 class="dp_subtitle"><a href="#none">겨울 아우터 추천템</a></h2>
-						<div class="itemsGrp">
-							<div class="item_prod">
-								<div class="item_state">
-									<button type="button" class="itemLike">관심상품 추가</button>
-									<a href="#none" class="itemLink">
-										<div class="itemPic">
-											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-										</div>
-										<p class="itemBrand">BRAND NAME</p>
-										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-										<p class="itemPrice">
-											<span class="itemPrice_original">89,000</span>
-											80,100
-											<span class="itemPercent">10%</span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
-										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment">#주문 폭주 상품</div>
-									</a>
-								</div>
-							</div>
-							<div class="item_prod">
-								<div class="item_state">
-									<button type="button" class="itemLike">관심상품 추가</button>
-									<a href="#none" class="itemLink">
-										<div class="itemPic">
-											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-										</div>
-										<p class="itemBrand">BRAND NAME</p>
-										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-										<p class="itemPrice">
-											<span class="itemPrice_original">89,000</span>
-											80,100
-											<span class="itemPercent">10%</span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
-										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment">#주문 폭주 상품</div>
-									</a>
-								</div>
-							</div>
-							<div class="item_prod">
-								<div class="item_state">
-									<button type="button" class="itemLike">관심상품 추가</button>
-									<a href="#none" class="itemLink">
-										<div class="itemPic">
-											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-										</div>
-										<p class="itemBrand">BRAND NAME</p>
-										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-										<p class="itemPrice">
-											<span class="itemPrice_original">89,000</span>
-											80,100
-											<span class="itemPercent">10%</span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
-										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment">#주문 폭주 상품</div>
-									</a>
-								</div>
-							</div>
-							<div class="item_prod">
-								<div class="item_state">
-									<button type="button" class="itemLike">관심상품 추가</button>
-									<a href="#none" class="itemLink">
-										<div class="itemPic">
-											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-										</div>
-										<p class="itemBrand">BRAND NAME</p>
-										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-										<p class="itemPrice">
-											<span class="itemPrice_original">89,000</span>
-											80,100
-											<span class="itemPercent">10%</span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
-										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment">#주문 폭주 상품</div>
-									</a>
-								</div>
-							</div>
-							<div class="item_prod">
-								<div class="item_state">
-									<button type="button" class="itemLike">관심상품 추가</button>
-									<a href="#none" class="itemLink">
-										<div class="itemPic">
-											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-										</div>
-										<p class="itemBrand">BRAND NAME</p>
-										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-										<p class="itemPrice">
-											<span class="itemPrice_original">89,000</span>
-											80,100
-											<span class="itemPercent">10%</span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
-										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment">#주문 폭주 상품</div>
-									</a>
-								</div>
-							</div>
-							<div class="item_prod">
-								<div class="item_state">
-									<button type="button" class="itemLike">관심상품 추가</button>
-									<a href="#none" class="itemLink">
-										<div class="itemPic">
-											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-										</div>
-										<p class="itemBrand">BRAND NAME</p>
-										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-										<p class="itemPrice">
-											<span class="itemPrice_original">89,000</span>
-											80,100
-											<span class="itemPercent">10%</span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
-										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment">#주문 폭주 상품</div>
-									</a>
-								</div>
-							</div>
-						</div>
-						<button class="btn btn_default">더보기</button>
-					</div>
-				</div>
 				<div class="inner">
 					<div class="dp_listItems_wrap type1">
 						<div class="items_option">
@@ -368,6 +322,18 @@
 				<a href="#close-modal" rel="modal:close" id="couponInfoPop_close" class="close-modal">Close</a>
 			</div>
 		</main>
+		
+<th:block th:each="a, template : ${templateOrd}">
+	<th:block th:if="${a.tmplType == 'G082_51'}">
+		<form th:id="'searchForm1_'+${a.tmplType + a.planContSq}" name="searchForm1" th:action="@{'/planning/goods/list'}" th:method="post">
+			<input type="hidden" name="pageNo2" value="1" />
+			<input type="hidden" name="pageSize2" value="6" />
+			<input type="hidden" name="tmplType" th:value="${a.tmplType}" />
+			<input type="hidden" name="planContSq" th:value="${a.planContSq}" />
+			<input type="hidden" name="planSq" th:value="${planInfo.planSq}" />
+		</form>
+	</th:block>
+</th:block>
 <script th:inline="javascript">
 let review = [[${reviewInfo}]];
 let coupon = [[${couponInfo}]];
@@ -375,6 +341,7 @@ let plan = [[${planInfo}]];
 let image = [[${imageInfo}]];
 let goods1 = [[${goods1Info}]];
 let goods2 = [[${goods2Info}]];
+let goods2Msize = [[${goods2Msize}]];
 let goods4 = [[${goods4Info}]];
 let template =[[${templateOrd}]];
 let replyList = [[${replyList}]];
@@ -387,6 +354,7 @@ let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
 let imgUrl=[[${@environment.getProperty('upload.image.view')}]];
 
 
+
 if(goods1.length>0){
 	var array = [];
 
@@ -395,7 +363,6 @@ if(goods1.length>0){
 			array.push(template[j].planContSq);
 		}
 	}	
-	
 	for (var i = 0; i < template.length; i++) {
 		var html = '';
 		if(template[i].tmplType == 'G082_50' && array[0] == template[i].planContSq && typeof array[0] != 'undefined') {
@@ -455,6 +422,64 @@ if(goods1.length>0){
 	}
 }
 
+var fnCompleteList = function () {
+	$.each(template, function(idx, item)  {
+		if(item.tmplType == "G082_51"){
+			var form = '#searchForm1_G082_51'+item.planContSq;
+			gagajf.ajaxFormSubmit('/planning/goods/list', form, fnGetCompleteCallback);
+		}
+		
+	});
+	
+}
+
+var fnGetCompleteCallback = function (result) {
+	if (result.dataList != null && result.dataList.length > 0) {
+		var html = '';
+		$.each(result.dataList, function(idx, item) {
+			html += '		<div class="item_prod">';
+			html += '			<div class="item_state">';
+			html += '				<a onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">';
+			html += '					<div class="itemPic">';
+			html += '						<img class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
+			html += '					</div>';
+			html += '					<p class="itemBrand">'+item.brandGroupNm+'</p>';
+			html += '					<div class="itemName">'+item.goodsNm+'</div>';
+			html += '					<p class="itemPrice">';
+			if (item.currPrice != item.listPrice) {
+				html += '						<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>';
+			}
+			html += 						item.currPrice.addComma();
+			if (item.currPrice != item.listPrice) {
+				html += '						<span class="itemPercent">'+Math.floor(item.dcRate)+'%</span>';
+			}
+			html += '					</p>';
+			if(item.goodsTnm != null){
+				html += '					<div class="itemComment">'+item.goodsTnm+'</div>';
+			}
+			html += '				</a>';
+			html += '			</div>';
+			html += '		</div>';
+	});
+		$('#group_'+result.dataList[0].planContSq).append(html);
+		if (result.paging1.pageable2.totalPage > result.paging1.pageable2.pageNo) {
+			
+			$('#moreBtn_' + result.dataList[0].planContSq).show();
+			$('#searchForm1_G082_51'+result.dataList[0].planContSq +' input[name=pageNo2]').val(result.paging1.pageable2.pageNo + 1);
+			
+		}else{
+			$('#moreBtn_' + result.dataList[0].planContSq).hide();
+		}
+	}
+}
+
+var moreBtn = function (obj) {
+	var form = '#searchForm1_G082_51'+obj;
+	gagajf.ajaxFormSubmit('/planning/goods/list', form, fnGetCompleteCallback);
+}
+
+
+
 if(goods4.length>0){
 	var array = [];
 	var html = '';
@@ -729,7 +754,6 @@ var fnPlanCouponDown = function(obj){
 
 // 쿠폰다운로드 콜백
 var fnPlanCouponCallBack = function(result){
-	console.log(result);
 	$.each(result.couponList, function (idx, item) {
 		if (Number(item.custPubLimitQty) > 0){
 			if (Number(item.custPubLimitQty) <= Number(item.custCouponCnt)){
@@ -741,6 +765,13 @@ var fnPlanCouponCallBack = function(result){
 }
 
 $(document).ready(function(){
+	if(plan.planGb == "P"){
+		$('#htopTitle').text('기획전');
+	}else{
+		$('#htopTitle').text('이벤트');
+	}
+	
+	fnCompleteList();
 	$("#filter").text(planCornerList[0].cornerNm);
 	//상단 빅배너 슬라이드
 	var big_banner_slide = new Swiper('.big_banner_slide .swiper-container', {
@@ -826,7 +857,6 @@ $(document).ready(function(){
 
 	});
 
-
 });
 </script>
 </th:block>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/SigninFormWeb.html

@@ -30,7 +30,7 @@
 						<label class="input_label sr-only">아이디</label>
 						<div class="ui_col_12">
 							<div class="input_wrap">
-								<input type="text" name="loginId" placeholder="아이디" class="form_control" minlength="4" maxlength="12" required="required" data-valid-type="alphaNumeric" data-valid-name="아이디"/>
+								<input type="text" name="loginId" placeholder="아이디" class="form_control" minlength="4" maxlength="12" required="required" data-valid-name="아이디"/>
 							</div>
 						</div>
 					</div>
@@ -282,7 +282,7 @@
 		}
 		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
 		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN);
 		}
 		// 5. YES24 첫 로그인 시도 시 정보동의 페이지 이동
 		if (userInfo.custStat === 'NEED_AGREE_CUST') {

+ 2 - 2
src/main/webapp/WEB-INF/views/web/customer/ConsentUseInfoFormWeb.html

@@ -87,7 +87,7 @@
 		}
 		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
 		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN);
 			$.modal.close();
 			return;
 		}
@@ -124,7 +124,7 @@
 	};
 
 	$("#btnClose").click(function() {
-		cfnGoToPage(_PAGE_CUSTOMER_JOIN);
+		cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);
 		$.modal.close();
 	});
 

+ 1 - 1
src/main/webapp/WEB-INF/views/web/customer/JoinTypeFormWeb.html

@@ -95,7 +95,7 @@
 		}
 		// 4. 휴대전화 정보가 없으면 SNS 가입화면 이동
 		if (userInfo.custStat === 'EMPTY_PHONE_CUST') {
-			cfnGoToPage(_PAGE_CUSTOMER_SNS_JOIN);
+			cfnGoToPage(_PAGE_CUSTOMER_JOIN);
 		}
 		// 5. YES24 첫 로그인 시도 시 정보동의 페이지 이동
 		if (userInfo.custStat === 'NEED_AGREE_CUST') {

+ 10 - 3
src/main/webapp/ux/style24_link.js

@@ -852,7 +852,12 @@ function cfGoodsReview(goodsCd) {
  * </pre>
  */
 function cfnConsentUseInfo(custNm) {
-	let str = '<div class="modal fade mbAgree_pop" id="layer_consent_useinfo" tabIndex="-1" role="dialog" aria-labelledby="mbAgreeLabel" aria-hidden="true"></div>';
+	let str;
+	if (_frontGb === 'P') {
+		str = '<div class="modal fade mbAgree_pop" id="layer_consent_useinfo" tabIndex="-1" role="dialog" aria-labelledby="mbAgreeLabel" aria-hidden="true"></div>';
+	} else {
+		str = '<div class="modal pop_full mbAgree_pop" id="layer_consent_useinfo" tabindex="-1" role="dialog" aria-labelledby="mbAgreeLabel" aria-hidden="true"></div>'
+	}
 	let params = {}
 	params.custNm = custNm;
 	if ($('#layer_consent_useinfo').length == 0) {
@@ -916,7 +921,7 @@ function cfnUseTermsLayer() {
  *		cfnPrivacyPolicyLayer();
  * </pre>
  */
-function cfnPrivacyPolicyLayer() {
+function cfnPrivacyPolicyLayer(mallGb) {
 	let str;
 	if (_frontGb === 'P') {
 		str = '<div class="modal fade policiesPrivacy_pop" id="policiesPrivacyPop" tabindex="-1" role="dialog" aria-labelledby="policiesPrivacyLabel" aria-hidden="true"></div>';
@@ -926,7 +931,9 @@ function cfnPrivacyPolicyLayer() {
 	if ($('#policiesPrivacyPop').length == 0) {
 		$('body').append(str);
 	}
-	cfnOpenLayer(_PAGE_PRIVACY_POLICY_LAYER, 'policiesPrivacyPop');
+	let params = {}
+	params.mallGb = mallGb;
+	cfnOpenLayer(_PAGE_PRIVACY_POLICY_LAYER, 'policiesPrivacyPop', params);
 }
 
 /**