Explorar el Código

추가 결제 개발 중

xodud lee hace 5 años
padre
commit
44326dbd6d
Se han modificado 36 ficheros con 1665 adiciones y 507 borrados
  1. 10 0
      src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java
  2. 3 2
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  3. 2 3
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  4. 8 4
      src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  5. 9 5
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  6. 4 18
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  7. 6 5
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  8. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  9. 11 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  10. 9 8
      src/main/resources/config/application-run.yml
  11. 10 10
      src/main/resources/config/application-style.yml
  12. 2 1
      src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html
  13. 3 3
      src/main/webapp/WEB-INF/views/mob/common/layout/DefaultLayoutMob.html
  14. 588 0
      src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html
  15. 2 2
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  16. 17 11
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCustDeliveryAddrFormMob.html
  17. 14 2
      src/main/webapp/WEB-INF/views/mob/order/OrderAddPaymentFormMob.html
  18. 89 89
      src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html
  19. 325 0
      src/main/webapp/WEB-INF/views/mob/planning/PlanningEventPollFormMob.html
  20. 3 2
      src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html
  21. 372 293
      src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html
  22. 45 4
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  23. 2 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreExchangeDetailFormWeb.html
  24. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreReturnDetailFormWeb.html
  25. 18 11
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustDeliveryAddrFormWeb.html
  26. 2 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html
  27. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  28. 0 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  29. 2 2
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreExchangeDetailFormWeb.html
  30. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreReturnDetailFormWeb.html
  31. 78 10
      src/main/webapp/WEB-INF/views/web/order/OrderAddPaymentFormWeb.html
  32. 16 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  33. 4 3
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html
  34. 3 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html
  35. 0 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html
  36. 3 3
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -472,4 +472,14 @@ public interface TsfPlanningDao {
 	 */
 	String getFrontAccessibleList(Plan plan);
 	
+	/**
+	 * 총알배송 planSq 
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 5. 10
+	 */
+	Integer getShotPlanSq(Plan plan);
+	
 }

+ 3 - 2
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -756,7 +756,7 @@ public class TsfGoodsService {
 
 		Collection<Goods> goodsList = new ArrayList<>();
 
-		if (cate.getContentsLoc().equals("SCM002") || cate.getContentsLoc().equals("SBM007") || cate.getContentsLoc().equals("SMM003") || cate.getContentsLoc().equals("SBM003")) { // 신상품인 경우
+		if (cate.getContentsLoc().equals("SCM002") || cate.getContentsLoc().equals("SBM007") || cate.getContentsLoc().equals("SMM003") || cate.getContentsLoc().equals("SBM003") || cate.getContentsLoc().equals("SBMM007")) { // 신상품인 경우
 			int maxRow = 20;
 			if (cate.getContentsLoc().equals("SBM003")) {
 				maxRow = 3;
@@ -801,7 +801,7 @@ public class TsfGoodsService {
 					temp.setBenefitArr(temp.getIcon().split(","));
 				}
 			}
-		} else if (cate.getContentsLoc().equals("SBM013")) {
+		} else if (cate.getContentsLoc().equals("SBM013") || cate.getContentsLoc().equals("SBMM013")) {
 //			GoodsSearch goodsSearch = new GoodsSearch();
 //			goodsSearch.setSiteCd(TscConstants.Site.STYLE24.value());
 //			goodsSearch.setFormalGb(cate.getFormalGb());
@@ -811,6 +811,7 @@ public class TsfGoodsService {
 //			goodsSearch.setMaxRow(cate.getMaxRow());
 //			goodsSearch.setContentsLoc(cate.getContentsLoc());
 //			goodsList = displayDao.getCategoryGoodsList(goodsSearch);
+			//todo 최신상품 불러오는거 만들어야함
 			log.info("SBM013 goodsList cate>>>{}", cate);
 			goodsList = goodsDao.getContentsCategoryGoodsList(cate);
 

+ 2 - 3
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -97,8 +97,6 @@ public class TsfOrderService {
 		int ordNo = 0;
 		int index = 0;
 		int ordReqChgQty = 0;
-		int count = 0;
-		Collection<Order> list = orderDao.getOrderListForMypage(order);
 
 		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
 			// 세트상품 옵션별 배열로 담기
@@ -140,7 +138,8 @@ public class TsfOrderService {
 
 			// 전체 구매확정 가능 여부 설정
 			if ("Y".equals(allDecideYn)
-				&& !TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value().equals(tmpOrder.getOrdDtlStat())) {
+				&& !TscConstants.OrderDetailStat.DELIVERY_COMPLETE.value().equals(tmpOrder.getOrdDtlStat())
+				&& ordReqChgQty > 0) {
 				allDecideYn = "N";
 			}
 

+ 8 - 4
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -655,13 +655,17 @@ public class TsfPlanningService {
 		return planningDao.getEntryReplyAttachList(plan);
 	}
 	
+
 	/**
-	 * 기획전/이벤트 비회원 접근 조회
+	 * 총알배송 planSq 
 	 *
-	 * @param Plan
-	 * @return int
+	 * @param 
+	 * @return
 	 * @author sowon
-	 * @date 2021. 5. 4
+	 * @date 2021. 5. 10
 	 */
+	public Integer getShotPlanSq(Plan plan) {
+		return planningDao.getShotPlanSq(plan);
+	}
 	
 }

+ 9 - 5
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -162,7 +162,7 @@ public class TsfDisplayController extends TsfBaseController {
 				mainLayout.setBrandPickList(displayService.getContentsForGoods(contents));
 			}
 
-			if (contentsLoc.equals("SMM009")) {
+			if (contentsLoc.equals("SMM009") || contentsLoc.equals("SMM012")) {
 				mainLayout.setMdPickList(displayService.getContentsForGoods(contents));
 			}
 
@@ -290,7 +290,7 @@ public class TsfDisplayController extends TsfBaseController {
 			brandMain.setCate4Srch(cate4Srch);
 
 			if ("C".equals(brandMain.getContentsYn())) {
-				if (contentsLoc.equals("SBM013")) {
+				if (contentsLoc.equals("SBM013") || contentsLoc.equals("SBMM013")) {
 					cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
 					cate4Srch.setMaxRow(50);
 					Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
@@ -301,7 +301,7 @@ public class TsfDisplayController extends TsfBaseController {
 				cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
 				if (cate4Srch.getContentsLoc().equals("SBM008")) {
 					cate4Srch.setMaxRow(10);
-				} else if (cate4Srch.getContentsLoc().equals("SBM013")) {
+				} else if (cate4Srch.getContentsLoc().equals("SBM013") || cate4Srch.getContentsLoc().equals("SBMM013")) {
 					cate4Srch.setMaxRow(50);
 				} else {	// SBM007, SBM009
 					cate4Srch.setMaxRow(20);
@@ -315,10 +315,14 @@ public class TsfDisplayController extends TsfBaseController {
 			}
 
 			// 기획전 컨텐츠일때
-			if ("SBM011".equals(brandMain.getContentsLoc())) {
+			if ("SBM011".equals(brandMain.getContentsLoc()) || "SBMM011".equals(brandMain.getContentsLoc())) {
 				Plan plan = new Plan();
 				plan.setBrandGroupNo(Integer.parseInt(paramMap.get("brandGroupNo")));
-				plan.setMaxRow(6);
+				if("SBM011".equals(brandMain.getContentsLoc())){
+					plan.setMaxRow(6);
+				}else{
+					plan.setMaxRow(2);
+				}
 				plan.setFrontGb(TsfSession.getFrontGb());
 				plan.setSiteCd(TscConstants.Site.STYLE24.value());
 				brandMain.setPlanningList(planningService.getPlanningMainList(plan));

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

@@ -1242,19 +1242,6 @@ public class TsfOrderController extends TsfBaseController {
 			order.setJsessionId(TsfSession.getSessionId());
 			order.setCustNo(0);
 		}
-
-		log.info("order.getOrdNo()             ::: {}", order.getOrdNo());
-		log.info("order.getPgGb()              ::: {}", order.getPgGb());
-		log.info("order.getPayMeans()          ::: {}", order.getPayMeans());
-		log.info("order.getOrdChgSq()          ::: {}", order.getOrdChgSq());
-		log.info("order.getGoodsNm()           ::: {}", order.getGoodsNm());
-		log.info("order.getAddPayCost()        ::: {}", order.getAddPayCost());
-		log.info("order.getChgerNm()           ::: {}", order.getChgerNm());
-		log.info("order.getChgerPhnno()        ::: {}", order.getChgerPhnno());
-
-		// int ordNo = order.getOrdNo();
-
-		// order.setOrdNo(order.getOrdChgSq());
 		
 		order.setPayAmt(order.getAddPayCost());
 		order.setOrdNm(order.getChgerNm());
@@ -1277,6 +1264,7 @@ public class TsfOrderController extends TsfBaseController {
 
 		Payment payment = orderService.setPgDataInfo(order);
 		payment.setOrdChgSq(order.getOrdChgSq());
+		
 		// 2021.05.10 추가
 		payment.setPayUrl("/addPayment");
 		payment.setRetUrl("/addPay/result/response");
@@ -1317,13 +1305,11 @@ public class TsfOrderController extends TsfBaseController {
 		param.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
 		param.setUpdNo(param.getCustNo());
 		
+		log.info("CHECK CHG_SQ ::: {}", param.getOrdChgSq());
+		
 		// 2. 결재정보등록(TB_PAYMENT)
 		param = orderService.orderPgPayResult(param, request, response);
-		order.setOrdNo(param.getOrdNo());
-		
-		// TODO 모바일  param_opt_3 : ordChgSq
-		// TODO PC ordChgSq
-		
+		order.setOrdNo(param.getOrdNo());		
 		order.setOrdChgSq(param.getOrdChgSq());
 		
 		// 3. 추가결제 상품목록

+ 6 - 5
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -87,7 +87,7 @@ public class TsfPlanningController extends TsfBaseController {
 	 * @since 2021. 3. 5
 	 */
 	@GetMapping("/main/form")
-	public ModelAndView planningMainForm(@RequestParam(value = "cateNo", required = false) Integer cateNo) {
+	public ModelAndView planningMainForm(@RequestParam(value = "cateNo", required = false) Integer cateNo, @RequestParam(value = "brandGroupNo", required = false) Integer brandGroupNo) {
 		ModelAndView mav = new ModelAndView(super.getDeviceViewName("planning/PlanningMainForm"));
 
 		Plan plan = new Plan();
@@ -98,6 +98,7 @@ public class TsfPlanningController extends TsfBaseController {
 		mav.addObject("cateList", planningService.getPlanningCategoryList(plan));
 
 		mav.addObject("cateNo", cateNo);
+		mav.addObject("brandGroupNo", brandGroupNo);
 
 		return mav;
 	}
@@ -243,9 +244,6 @@ public class TsfPlanningController extends TsfBaseController {
 			mav.setViewName(super.getDeviceViewName("planning/PlanningEventAttendForm"));
 			return mav;
 		}
-//		else if(planGb.equals("S")) {
-//			mav.setViewName("redirect:/planning/shot/delivery/guide/form?planSq="+plan.getPlanSq());
-//		}
 
 		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
 		mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(plan.getBrandGroupNo()));
@@ -501,8 +499,11 @@ public class TsfPlanningController extends TsfBaseController {
 	 * @since 2021. 3. 30
 	 */
 	@GetMapping("/shot/delivery/guide/form")
-	public ModelAndView planningShotDeliveryForm(@RequestParam(value="planSq")Integer planSq ,Plan plan) throws Exception {
+	public ModelAndView planningShotDeliveryForm(@RequestParam(value="planGb",required = true)String planGb ,Plan plan) throws Exception {
 		ModelAndView mav = new ModelAndView();
+		Integer planSq = planningService.getShotPlanSq(plan);
+		plan.setPlanSq(planSq);
+		
 		CustDeliveryAddr addr = new CustDeliveryAddr();
 		Integer custNo = null;
 		if (TsfSession.isLogin()) {

+ 2 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -1280,7 +1280,7 @@
 		                 , ROW_NUMBER() OVER(ORDER BY GS.SELL_WEEK_QTY DESC
 		                                            , G.GOODS_CD) AS NUMB
 		                     </when>
-		                     <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007'"> <!-- md추천 -->
+		                     <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		                 , ROW_NUMBER() OVER(ORDER BY CTG.DISP_ORD
 		                 , G.REG_DT DESC
 		                 , G.GOODS_CD) AS NUMB
@@ -1298,7 +1298,7 @@
 		                     </otherwise>
 		                 </choose>
 		            <choose>
-		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007'"> <!-- md추천 -->
+		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		                    FROM	TB_CONTENTS CT
 		                    , TMP_CONTENTS_GOODS CTG
 		                    , TB_GOODS G

+ 11 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -1596,4 +1596,15 @@
 		WHERE PLAN_ENTRY_SQ= #{planEntrySq}
 	</delete>
 	
+	<!-- 총알 배송 -->
+	<select id="getShotPlanSq" resultType="Integer" parameterType="Plan">
+		/* TsfPlanning.getShotPlanSq */	
+		SELECT PLAN_SQ 
+		FROM TB_PLAN TP 
+		WHERE PLAN_GB = 'S'
+		AND OPEN_YN = 'Y'
+		AND NOW() BETWEEN DISP_STDT AND DISP_EDDT 
+		ORDER BY UPD_DT DESC LIMIT 1
+	</select>
+	
 </mapper>

+ 9 - 8
src/main/resources/config/application-run.yml

@@ -27,31 +27,32 @@ spring:
 logging.config: classpath:log/logback-run.xml
 
 domain:
+    admin: //bos.style24.com
     front: //www.style24.com
-    image: //image.style24.com
-    uximage: //image.istyle24.com/Upload
+    image: //image.style24.com/Upload
+    uximage: //www.style24.com
 
 # SSL Server
 has-ssl: true
 
 upload:
     default:
-        target.path: /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
     goods:
-        target.path: /usr/local/data/style24/productimage
+        target.path: /files/data/style24/ProductImage
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
         view: //image.istyle24.com/Upload/ProductImage
     image:
-        target.path:  /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
 
-download.path: /usr/local/data
+download.path: /files/data/style24
 
 # SMTP
 mail:

+ 10 - 10
src/main/resources/config/application-style.yml

@@ -27,32 +27,32 @@ domain:
 
 upload:
     default:
-        target.path: /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
     goods:
-        target.path: /usr/local/data/style24/productimage
+        target.path: /files/data/style24/ProductImage
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
         view: //image.istyle24.com/Upload/ProductImage
     image:
-        target.path: /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
     excel:
-        target.path: /usr/local/data/style24/excel
+        target.path: /files/data/style24/excel
         max.size: 10
         allow.extension: xls|xlsx
-        view: //image.istyle24.com/excel
+        view: //image.istyle24.com/Upload/excel
     sample:
-        target.path: /usr/local/data/style24/sample
+        target.path: /files/data/style24/sample
         max.size: 10
         allow.extension: txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.style24.com/sample
+        view: //image.style24.com/Upload/sample
 
-download.path: /usr/local/data
+download.path: /files/data/style24
 
 # USAFE 보증보험 정보
 usafe.guarantee:

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

@@ -90,7 +90,8 @@
 			/*]]>*/
 		</script>
 	</th:block>
-	
+
+	<script type="text/javascript" th:src="@{'/ux/plugins/gaga/gaga.validation.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/plugins/gaga/gaga.validation.js"></script>
 	<script src="/ux/sha512.min.js"></script>
 	<script>
 		String.prototype.hashCode = function() {

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/common/layout/DefaultLayoutMob.html

@@ -8,7 +8,7 @@
 <body>
 
 	<th:block th:replace="~{web/common/fragments/VariablesWeb :: variables}"></th:block>
-	
+	<th:block th:replace="~{mob/common/fragments/ScriptsMob :: scripts}"></th:block>
 	<div class="app">
 		<!-- GNB -->
 		<th:block th:replace="~{mob/common/fragments/GnbMob :: gnb}"></th:block>
@@ -17,11 +17,11 @@
 		<!-- CONTENT AREA -->
 		<th:block layout:fragment="content"></th:block>
 		<!-- // CONTENT AREA -->
-
+		
 		<!-- Footer -->
 		<th:block th:replace="~{mob/common/fragments/FooterMob :: footer}"></th:block>
 
-		<th:block th:replace="~{mob/common/fragments/ScriptsMob :: scripts}"></th:block>
+		
 
 <script th:inline="javascript">
 /*<![CDATA[*/

+ 588 - 0
src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html

@@ -0,0 +1,588 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : BrandMainFormMob.html
+ * @desc    : 브랜드메인 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.10   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<link rel="stylesheet" href="/ux/mo/css/layout_m.css">
+
+<th:block layout:fragment="content">
+<main role="" id="" class="container br">
+	<section class="content br_main">
+		<div class="inner sr-only">
+			<p class="br_subtitle">브랜드 메인</p>
+		</div>
+
+		<th:block th:if="${brandMainLayoutList}" th:each="brandMainLayoutData, mainStat : ${brandMainLayoutList}" th:with="contentsLoc=${#strings.replace(brandMainLayoutData.contentsLoc,'SBMM','')},contentsTitle=${brandMainLayoutData.contentsTitle}">
+			<th:block th:if="${brandMainLayoutData.ContentsList != null and !brandMainLayoutData.ContentsList.empty}">
+				<th:block th:if="${contentsLoc=='004'}">
+					<!-- 첫번째 슬라이드 -->
+					<div class="inner wide">
+						<div class="swiper-container submain_visual">
+							<div class="swiper-wrapper">
+								<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
+									<div class="swiper-slide">
+										<!-- 210506_추가 : 새창에 띄우기 -->
+										<a th:href="${ContentsData.strVar1}" th:target="${ContentsData.contentsType=='SELF'?'_self':'_blank'}" title="현재 창으로 열기">
+											<div class="img">
+												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
+											</div>
+											<div class="txtWrap">
+												<p class="bMainTitle">
+													<input type="hidden" name="mainTitle" th:value="${ContentsData.strTitle1}"/>
+												</p>
+												<p class="txt_xs" th:text="${ContentsData.subText1}">신상 15% 쿠폰 할인</p>
+											</div>
+										</a>
+									</div>
+								</th:block>
+							</div>
+							<!-- Add Pagination -->
+							<div class="swiper-pagination"></div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='005'}">
+					<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
+						<!-- 정보 -->
+						<div class="inner">
+							<div class="br_top_info" id="brandDesc">
+								<p class="br_subtitle" th:text="${contentsTitle}"></p>
+								<p class="cate">
+									<input type="hidden" name="brandTitle" th:value="${ContentsData.strTitle1}">
+								</p>
+								<p class="desc">
+									<input type="hidden" name="brandNote" th:value="${ContentsData.subText1}"/>
+								</p>
+								<div class="btn_group_flex">
+									<div>
+										<button class="btn btn_default">브랜드 사이트<span></span></button>
+									</div>
+								</div>
+							</div>
+						</div>
+					</th:block>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='007'}">
+					<!-- 뉴아이템 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null}">
+						<div class="new_item">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="area_slider">
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+											<th:block th:if="${(goodsStat.index%4)==0 or goodsStat.first}">
+												<div class="swiper-slide">
+											</th:block>
+											<div class="item_prod">
+												<div class="item_state">
+													<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM007', planDtlSq=''">관심상품 추가</button>
+													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM007');">
+														<div class="itemPic">
+															<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+														</div>
+														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
+														<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
+														<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}"></p>
+														<div class="itemComment" th:text="${goodsData.goodsTnm}"></div>
+													</a>
+												</div>
+											</div>
+											<th:block th:if="${(goodsStat.index%4)== 3 or goodsStat.last}">
+												<th:block th:utext="'</div>'"></th:block>
+											</th:block>
+										</th:block>
+									</div>
+									<!-- Add Pagination -->
+									<div class="swiper-pagination"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='006'}">
+					<!-- 배너 슬라이드 -->
+					<div class="inner wide" th:if="${brandMainLayoutData.ContentsList!=null}">
+						<div class="swiper-container br_second_slide">
+							<div class="swiper-wrapper">
+								<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
+									<div class="swiper-slide">
+										<a th:href="${ContentsData.strVar1}" target="_blank" title="새 창으로 열기">
+											<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
+											<div class="s-text" id="bannerS">
+												<p class="bText">
+													<input type="hidden" name="bannerDesc" th:value="${ContentsData.strTitle1}">
+												</p>
+											</div>
+										</a>
+									</div>
+								</th:block>
+							</div>
+							<!-- Add Pagination -->
+							<div class="swiper-pagination"></div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='008'}">
+					<!-- 베스트아이템 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null}">
+						<div class="pd_together best_item">
+							<p class="br_subtitle" th:text="${contentsTitle}">BEST ITEMS</p>
+							<div class="area_slider">
+								<!-- Swiper -->
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+											<div class="swiper-slide">
+												<div class="item_prod">
+													<div class="item_state">
+														<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM008', planDtlSq=''">관심상품 추가</button>
+														<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM008');">
+															<div class="shape" th:classappend="${goodsStat.count==1}?'ranker'"><span th:text="${goodsStat.index+1}"></span></div>
+															<div class="itemPic">
+																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															</div>
+															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+															<div class="itemName"th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+															<p class="itemPrice">
+																<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+																[[${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}]]
+																<span class="itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+															</p>
+															<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
+														</a>
+													</div>
+												</div>
+											</div>
+										</th:block>
+									</div>
+									<!-- Add Pagination -->
+									<div class="swiper-pagination"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='010'}">
+					<!-- 룩북 슬라이드 -->
+					<div class="inner wide" th:if="${brandMainLayoutData.lookbookList != null and !brandMainLayoutData.lookbookList.empty}">
+						<div class="br_lookbook">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="recommendedArea">
+								<!-- 상품이미지pic -->
+								<div class="area_slider pic_img">
+									<div class="swiper-container">
+										<div class="swiper-wrapper">
+											<th:block th:each="LookbookData, LookbookStat : ${brandMainLayoutData.lookbookList}">
+												<div class="swiper-slide">
+													<div class="page">
+														<div class="pic">
+															<span class="thumb" th:style="${'background-image:url(' + @environment.getProperty('domain.image') + LookbookData.sysFileNm + ');'}"></span>
+															<!-- 상품피커 -->
+															<th:block th:if="${LookbookData.lookbookGoodsList != null and !LookbookData.lookbookGoodsList.empty}" th:each="lookbookGoods, status : ${LookbookData.lookbookGoodsList}">
+																<div class="item_picker" th:style="${'left:'+lookbookGoods.xlim+'%; top:'+lookbookGoods.ylim+'%;'}">
+																	<div>
+																		<button type="button" th:onclick="fnGoodsPopup([[${lookbookGoods.sysImgNm}]],[[${lookbookGoods.brandGroupNm}]],[[${lookbookGoods.goodsFullNm}]],[[${lookbookGoods.listPrice}]],[[${lookbookGoods.currPrice}]],[[${lookbookGoods.dcRate}]],[[${lookbookGoods.goodsCd}]])"><span class="ico ico_picker"></span></button>
+																		<div class="pick_descr">
+																			<a href="javascript:void(0);"></a>
+																		</div>
+																	</div>
+																</div>
+															</th:block>
+															<!-- //상품피커 -->
+														</div>
+													</div>
+												</div>
+											</th:block>
+										</div>
+										<!-- Add Pagination -->
+										<div class="swiper-pagination"></div>
+									</div>
+								</div>
+								<!-- //상품이미지pic -->
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='009' or contentsLoc=='017' or contentsLoc=='018' or contentsLoc=='019'}">
+					<!-- 엠디픽 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null}">
+						<div class="pd_together md_item">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="area_slider">
+								<!-- Swiper -->
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+											<div class="swiper-slide">
+												<div class="item_prod">
+													<div class="item_state">
+														<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc=${contentsLoc}, planDtlSq=''">관심상품 추가</button>
+														<a href="javascript:void(0);" class="itemLink"  th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', [[${contentsLoc}]]);">
+															<div class="itemPic">
+																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															</div>
+															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+															<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+															<p class="itemPrice">
+																<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+																[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
+																<span class="itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+															</p>
+															<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
+														</a>
+													</div>
+												</div>
+											</div>
+										</th:block>
+									</div>
+									<!-- Add Pagination -->
+									<div class="swiper-pagination"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='011'}">
+					<!-- 스페셜샵 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.planningList != null}">
+						<div class="special_shop">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="area_slider">
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="planningData, planningStat : ${brandMainLayoutData.planningList}">
+											<div class="swiper-slide">
+												<div class="sp_item">
+													<div class="sp_img">
+														<img th:src="${@environment.getProperty('domain.image') + planningData.mainImg}" alt="">
+														<div class="s-text">
+															<p th:text="${planningData.planNm}">단 28시간 퓨어 아우터<br>최대 80%세일</p>
+															<p th:text="${planningData.dtlTitle1}">신상 아우터 7만원~</p>
+														</div>
+													</div>
+													<div class="sp_item">
+														<div class="itemsGrp rowtype">
+															<th:block th:if="${planningData.planningGoodsList != null and !planningData.planningGoodsList.empty}" th:each="planningGoods, status : ${planningData.planningGoodsList}">
+																<div class="item_prod">
+																	<div class="item_state">
+																		<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${planningGoods.goodsCd}]], '', '', 'SBMM011');">
+																			<div class="itemPic">
+																				<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + planningGoods.sysImgNm}">
+																			</div>
+																			<p class="itemBrand" th:text="${planningGoods.brandGroupNm}">BRAND NAME</p>
+																			<div class="itemName" th:text="${planningGoods.goodsNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+																			<p class="itemPrice">
+																				<span class="itemPrice_original" th:text="${#numbers.formatInteger(planningGoods.listPrice,1,'COMMA')}">89,000</span>
+																				[[${#numbers.formatInteger(planningGoods.currPrice,0,'COMMA')}]]
+																				<span class="itemPercent" th:if="${planningGoods.currPrice != planningGoods.listPrice}" th:text="${(planningGoods.listPrice == 0 ? 0 : #numbers.formatDecimal((planningGoods.listPrice - planningGoods.currPrice) / (planningGoods.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+																			</p>
+																		</a>
+																	</div>
+																</div>
+															</th:block>
+														</div>
+													</div>
+												</div>
+											</div>
+										</th:block>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='013'}">
+					<!-- brand_product -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null and !brandMainLayoutData.goodsList.empty}">
+						<div class="brand_product">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+								<th:block th:if="${(goodsStat.index%2)==0 or goodsStat.first}">
+									<div class="itemsGrp">
+								</th:block>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM013', planDtlSq=''">관심상품 추가</button>
+										<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM013');">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+											</div>
+											<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+											<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+												[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
+												<span class="itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+											</p>
+											<div class="itemcolorchip" th:if="${goodsData.colorArr != null}">
+												<th:block th:each="option, idx : ${goodsData.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
+													<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
+													<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
+												</th:block>
+											</div>
+											<p class="itemBadge" th:if="${goodsData.benefitArr != null}">
+												<th:block th:each="option, idx : ${goodsData.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
+													<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
+												</th:block>
+											</p>
+											<div class="itemComment" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<th:block th:if="${(goodsStat.index%2)== 1 or goodsStat.last}">
+									<th:block th:utext="'</div>'"></th:block>
+								</th:block>
+							</th:block>
+
+							<div class="btn_group_flex">
+								<div>
+									<button class="btn btn_default"  th:onclick="cfnGoToGoodsList([[${brandGroupInfo.brandGroupNo}]],[[${brandGroupInfo.cateGb}]]);">더보기</button>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='012'}">
+					<!-- 유튜브 슬라이드 -->
+					<div class="inner wide" th:if="${brandMainLayoutData.ContentsList != null}">
+						<div class="youtube">
+							<p class="br_subtitle" th:text="${contentsTitle}">STYLE24 TV</p>
+							<div class="swiper-container br_youtube_slide">
+								<div class="swiper-wrapper">
+									<th:block th:each="item, stat : ${brandMainLayoutData.ContentsList}">
+										<div class="swiper-slide">
+											<div class="movbox">
+												<iframe th:if="${item.strVar1=='Y'}" width="100%" height="100%" th:src="${'https://www.youtube.com/embed/'+item.strVar2+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+												<iframe th:if="${item.strVar1=='M'}" class="pd_mov"  th:src="${'http://v.kr.kollus.com/'+item.strVar2+'?enable_initialize_focus=false'}" allowfullscreen></iframe>
+											</div>
+										</div>
+									</th:block>
+								</div>
+								<!-- Add Pagination -->
+								<div class="swiper-pagination"></div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+
+			</th:block>
+		</th:block>
+	</section>
+</main>
+	<script th:inline="javascript">
+		// 픽커모달
+		$(document).ready(function () {
+			$(document).on('click','.item_picker',function(e){
+				$("#reco_pop").modal("show");
+				$("body").addClass("recoPop");
+				return false;
+			});
+			$(document).on('click','#reco_pop .close-modal',function(e){
+				$("body").removeClass("recoPop");
+				return false;
+			});
+
+			var spc = $('.swiper-pagination-current');
+			var spt = $('.swiper-pagination-total');
+			setInterval(function(){
+				for(var i=0; i<spc.length; i++){
+					if(spc[i].innerText.length < 2){
+						var itNum = spc[i].innerText.toString();
+						spc[i].innerText = 0+itNum;
+					}
+				}
+				for(var i=0; i<spt.length; i++){
+					if(spt[i].innerText.length < 2){
+						var itNum2 = spt[i].innerText.toString();
+						spt[i].innerText = 0+itNum2;
+					}
+				}
+			}, 10);
+
+
+			var clNum = 0;
+			$(document).on('click', '.br .pnb_mo > button',function(e){
+				if(clNum === 0){
+					$('.br .pnb_mo > button').css("background", "url(/images/mo/ico_btn_narrow.png) center top/1.8rem 2.0rem no-repeat");
+					clNum = 1;
+				} else {
+					$('.br .pnb_mo > button').css("background", "url(/images/mo/ico_btn_expand.png) center top/1.8rem 2.0rem no-repeat");
+					clNum = 0;
+				}
+			});
+		});
+
+		// 서브비주얼 슬라이드
+		var myArray = ["01", "02", "03"];
+		var submainVisualSwiper = new Swiper('.swiper-container.submain_visual', {
+			//210414_자동롤링 추가
+			autoplay : {
+				delay : 3000,   // 시간 설정
+			},
+			pagination: {
+				el: '.swiper-pagination',
+				type: 'fraction',
+				//renderCustom: function (swiper, current, total) {
+				//	return current + ' of ' + total;
+				//}
+			}
+		});
+
+		//  이미지배너 슬라이드
+		var imgBannerSwiper = new Swiper('.swiper-container.br_second_slide', {
+			//210414_자동롤링 추가
+			autoplay : {
+				delay : 3000,   // 시간 설정
+			},
+			pagination: {
+				el: '.swiper-pagination',
+			},
+		});
+
+		// 뉴아이템 슬라이드
+		var newItemSwiper = new Swiper('.new_item .area_slider .swiper-container', {
+			slidesPerView: 1,
+			pagination: {
+				el: '.swiper-pagination',
+			},
+		});
+
+		// 베스트아이템 슬라이드
+		var bestItemSwiper = new Swiper('.best_item .area_slider .swiper-container', {
+			slidesPerView: 2,
+			spaceBetween: 8,
+		});
+
+		// 엠디픽 슬라이드
+		var mdItemSwiper = new Swiper('.md_item .area_slider .swiper-container', {
+			slidesPerView: 2,
+			spaceBetween: 8,
+		});
+
+		// 스페셜샵 슬라이드
+		var specialShopSwiper = new Swiper('.special_shop .area_slider .swiper-container', {
+			slidesPerView: 1,
+			spaceBetween: 10,
+		});
+
+		// 룩북 슬라이드
+		var rcmdPicimgSwiper = new Swiper('.recommendedArea .area_slider .swiper-container', {
+			slidesPerView: 1,
+			spaceBetween: 0,
+			pagination: {
+				el: '.swiper-pagination',
+				type: 'fraction',
+			},
+		});
+
+		// 유튜브 슬라이드
+		var swiperYoutu = new Swiper('.swiper-container.br_youtube_slide', {
+			pagination: {
+				el: '.swiper-pagination',
+			},
+		});
+
+		// 브랜드메인 배너 <br> 처리
+		$('.bMainTitle').each(function (){
+			let tag = '';
+			if(!gagajf.isNull($(this).find("input[name=mainTitle]").val())){
+				var brText = $(this).find("input[name=mainTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
+				if(brText.indexOf('<br>') > -1){
+					var reText = brText.split("<br>");
+					tag += reText[0];
+					tag += '<br>';
+					tag += reText[1];
+				}else{
+					tag += brText;
+				}
+				$(this).append(tag);
+			}
+		});
+
+		// 브랜드소개 <br> 처리
+		if(!gagajf.isNull($("#brandDesc").find("input[name=brandTitle]").val())){
+			var brandDesc = $("#brandDesc").find("input[name=brandTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
+			if(!gagajf.isNull(brandDesc)){
+				if(brandDesc.indexOf('<br>') > -1){
+					let tag = '';
+					var reText = brandDesc.split("<br>");
+					tag += reText[0];
+					tag += '<br>';
+					tag += reText[1];
+					$("#brandDesc .cate").append(tag);
+				}else{
+					let tag = '';
+					tag += brandDesc;
+					$("#brandDesc .cate").append(tag);
+				}
+			}
+		}
+
+		if(!gagajf.isNull($("#brandDesc").find("input[name=brandNote]").val())){
+			var brandDesc = $("#brandDesc").find("input[name=brandNote]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
+			if(!gagajf.isNull(brandDesc)){
+				if(brandDesc.indexOf('<br>') > -1){
+					let tag = '';
+					var reText = brandDesc.split("<br>");
+					tag += reText[0];
+					tag += '<br>';
+					tag += reText[1];
+					$("#brandDesc .desc").append(tag);
+				}else{
+					let tag = '';
+					tag += brandDesc;
+					$("#brandDesc .desc").append(tag);
+				}
+			}
+		}
+
+		// 배너 슬라이더 <br> 처리
+		$('.bText').each(function (){
+			let tag = '';
+			if(!gagajf.isNull($(this).find("input[name=bannerDesc]").val())){
+				var brText = $(this).find("input[name=bannerDesc]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
+				if(brText.indexOf('<br>') > -1){
+					var reText = brText.split("<br>");
+					tag += reText[0];
+					tag += '</p>';
+					tag += '<p>';
+					tag += reText[1];
+					tag += '</p>';
+				}else{
+					tag += brText;
+				}
+				$(this).append(tag);
+			}
+		});
+	</script>
+
+</th:block>
+
+</body>
+</html>

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

@@ -278,7 +278,7 @@
 
 			<th:block th:if="${contentsLoc=='007'}">
 				<!-- 7. 브랜드픽 -->
-				<div class="inner">
+				<div class="inner" th:if="${mainData.ContentsList != null}">
 					<div class="main_pick" >
 						<div class="titWrap">
 							<h2 th:text="${contentsTitle}"></h2>
@@ -375,7 +375,7 @@
 				</div>
 			</th:block>
 
-			<th:block th:if="${contentsLoc=='009'}">
+			<th:block th:if="${contentsLoc=='012'}">
 				<!-- 9. MD추천 스타일 -->
 				<div class="inner">
 					<div class="main_recomm">

+ 17 - 11
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustDeliveryAddrFormMob.html

@@ -154,18 +154,24 @@
 	};
 
 	var fnDeleteCustDelvAddr = function (custDelvAddrSq) {
-		let params = {}
-		params.custDelvAddrSq = custDelvAddrSq;
-		let jsonData = JSON.stringify(params);
-		gagajf.ajaxJsonSubmit("/mypage/customer/delivery/addr/delete", jsonData, function (result) {
-			if (result.isSuccess) {
-				fnCustDeliveryAddList();
-			} else {
-				mcxDialog.alert("배송지 삭제를 실패 하였습니다.");
-				return;
+		mcxDialog.confirm("배송지를 삭제하시겠습니까?", {
+		cancelBtnText : "취소",
+		sureBtnText : "확인",
+		sureBtnClick : function() {
+				let params = {}
+				params.custDelvAddrSq = custDelvAddrSq;
+				let jsonData = JSON.stringify(params);
+				gagajf.ajaxJsonSubmit("/mypage/customer/delivery/addr/delete", jsonData, function (result) {
+					if (result.isSuccess) {
+						fnCustDeliveryAddList();
+					} else {
+						mcxDialog.alert("배송지 삭제를 실패 하였습니다.");
+						return;
+					}
+				});
 			}
-		})
-	}
+		});
+	};
 
 
 	$(document).ready(function() {

+ 14 - 2
src/main/webapp/WEB-INF/views/mob/order/OrderAddPaymentFormMob.html

@@ -165,7 +165,7 @@
 					<div class="area_paymentinfo">
 						<div class="paymentinfo">
 							<div class="payinfo_blk_wrap">
-								<a href="">
+								<a href="javascript:void(0);">
 									구매조건 확인 및 결제대행 서비스 약관 동의
 									<span>보기</span>
 								</a>
@@ -261,7 +261,19 @@ $("#btn_payment").on("click", function(){
 		}
 	});
 });
-
+</script>
+<script type="text/javascript">
+$(document).ready( function() {
+	//TabWrap, TabIndex
+	$(document).on('click', '.tabIndex li a', function() {
+		var $this = $(this),
+		$tabList = $this.parents('ul'),
+		_idx = $this.closest('li').index();
+	
+		$tabList.children().eq(_idx).addClass('active').siblings().removeClass('active');
+		$tabList.next().children().eq(_idx).addClass('active').siblings().removeClass('active');
+	});
+});
 </script>
 </th:block>
 </body>

+ 89 - 89
src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html

@@ -19,10 +19,10 @@
 <body>
 <th:block layout:fragment="content">
 <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
-		<main role="" id="" class="container ev">
-			<section class="content check">
+	<main role="" id="" class="container dp">
+			<section class="content dp_detail_visual">
 				<div class="inner">
-					<div class="renew_check_tit">
+					<div class="promotion_tit">
 						<h3 th:text="${planInfo.planNm}"></h3>
 						<div class="period">
 							<span th:text="${planInfo.dispStdt}"></span> - <span th:text="${planInfo.dispEddt}"></span>
@@ -31,96 +31,97 @@
 					</div>
 				</div>
 				<div class="inner wide">
-					<div class="event_calander ">
-						<div class="check_title">
-							<p>출석할수록 늘어나는 혜택!</p>
-							<h3><strong>4월</strong> 출석체크</h3>
-						</div>
-						<div class="check_info">
-							<span class="today">오늘</span>
-							<span class="complete">출석완료</span>
-						</div>
-						<div class="tbl_wrap">
-							<div class="my_attend_day">
-								<p>나의 출석 일수는?</p>
-								<span class="day">
-									<span></span>일
-								</span>
+					<div class="stamp_event">
+						<div class="event_calander">
+							<div class="check_title">
+								<p>출석할수록 늘어나는 혜택!</p>
+								<h3 id="monthHead"><strong>1월</strong> 출석체크</h3>
+							</div>
+							<div class="check_info">
+								<span class="today">오늘</span>
+								<span class="complete">출석완료</span>
+							</div>
+							<div class="tbl_wrap">
+								<div class="my_attend_day">
+									<p>나의 출석 일수는?</p>
+									<span class="day">
+										<span></span>일
+									</span>
+								</div>
+								<table>
+									<colgroup>
+										<col width="14.28%">
+										<col width="14.28%">
+										<col width="14.28%">
+										<col width="14.28%">
+										<col width="14.28%">
+										<col width="14.28%">
+										<col width="14.28%">
+									</colgroup>
+									<thead>
+										<tr>
+											<th class="sun">SUN</th>
+											<th>MON</th>
+											<th>TUE</th>
+											<th>WED</th>
+											<th>THU</th>
+											<th>FRI</th>
+											<th class="sat">SAT</th>
+										</tr>
+									</thead>
+									<tbody id="monthTbody">
+										
+									</tbody>
+								</table>
+							</div>
+							<div class="btn_wrap">
+								<button type="button" class="btn_check btn btn_dark" onclick="fnAttendEntry()">출석 체크</button>
 							</div>
-							<table>
-								<colgroup>
-									<col width="14.28%">
-									<col width="14.28%">
-									<col width="14.28%">
-									<col width="14.28%">
-									<col width="14.28%">
-									<col width="14.28%">
-									<col width="14.28%">
-								</colgroup>
-								<thead>
-									<tr>
-										<th class="sun">SUN</th>
-										<th>MON</th>
-										<th>TUE</th>
-										<th>WED</th>
-										<th>THU</th>
-										<th>FRI</th>
-										<th class="sat">SAT</th>
-									</tr>
-								</thead>
-								<tbody id="monthTbody">
-									
-								</tbody>
-							</table>
-						</div>
-						<div class="btn_wrap">
-							<button type="button" class="btn btn_dark" onclick="fnAttendEntry()">출석 체크</button>
 						</div>
-					</div>
-				</div>
-				<div class="inner">
-					<div class="benefit_list">
-						<h4>출석 일수에 따라 달라지는 혜택</h4>
-						<div class="benefit_con">
-							<ul>
-								 <th:block th:each="a, benefitStat : ${benefitList}">
-								<li th:if="${a.benefitGb == 'P'}">
-									<div class="benfit_point">
-										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span>
-									</div>
-								</li>
-								<li th:if="${a.benefitGb == 'C'}">
-									<div class="benfit_coupon">
-										<th:block th:if="${a.dcWay == '%'}">
-										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span><strong> 할인 쿠폰</strong>
-										</th:block>
-										<th:block th:if="${a.dcWay == '원'}">
-										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.dcVal}"></em>원</span><strong> 할인 쿠폰</strong>
-										</th:block>
-									</div>
-								</li>
-								<li th:if="${a.benefitGb == 'A'}">
-									<div class="benfit_coupon">
-									<th:block th:if="${a.dcWay == '%'}">
-										<span th:text="${a.basDays}"></span> 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span> + <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span> <strong>할인 쿠폰</strong>
-									</th:block>
-									<th:block th:if="${a.dcWay == '원'}">
-										<span th:text="${a.basDays}"></span> 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span> + <span class="c_primary"><em th:text="${a.dcVal}"></em>원</span> <strong>할인 쿠폰</strong>
+						<div class="event_benefit">
+							<h4>출석 일수에 따라 달라지는 혜택</h4>
+							<div class="benefit_con">
+								<ul>
+									<th:block th:each="a, benefitStat : ${benefitList}">
+									<li th:if="${a.benefitGb == 'P' and ( a.basDays > 0 and a.pntAmt > 0)}">
+										<div class="benfit_point">
+											<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span>
+										</div>
+									</li>
+									<li th:if="${a.benefitGb == 'C'  and ( a.basDays > 0 and a.dcVal > 0)}">
+										<div class="benfit_coupon">
+											<th:block th:if="${a.dcWay == '%'}">
+												<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span><strong> 할인 쿠폰</strong>
+											</th:block>
+											<th:block th:if="${a.dcWay == '원'}">
+												<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.dcVal}"></em>원</span><strong> 할인 쿠폰</strong>
+											</th:block>
+										</div>
+									</li>
+									<li th:if="${a.benefitGb == 'A'  and ( a.basDays > 0 and a.pntAmt > 0)}">
+										<div class="benfit_coupon">
+											<th:block th:if="${a.dcWay == '%'}">
+												<span th:text="${a.basDays}"></span> 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span> + <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span> <strong>할인 쿠폰</strong>
+											</th:block>
+											<th:block th:if="${a.dcWay == '원'}">
+												<span th:text="${a.basDays}"></span> 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span> + <span class="c_primary"><em th:text="${a.dcVal}"></em>원</span> <strong>할인 쿠폰</strong>
+											</th:block>
+										</div>
+									</li>
 									</th:block>
-									</div>
-								</li>
-								</th:block>
-							</ul>
+								</ul>
+							</div>
+							<!-- //210414_추가 : img => html 구조 변경 -->
 						</div>
 					</div>
 				</div>
 				<div class="inner">
-					<div class="announce_txt "> 
+					<div class="announce_txt " th:if="${fsrcInfoTop != null}"> 
 						<div class="note_txt">
 							<img src="/images/mo/ico_content_find03.png" alt="유의사항">
 							<p>유의사항</p>
 						</div>
-						<div class="announce_list" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcMob,'&amplt;','<'),'&ampgt;','>')}">
+						<div class="announce_list"  th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcMob,'&amplt;','<'),'&ampgt;','>')}">
 							<!-- <ul>
 								<li>본 이벤트는 ID당 1회만 참여 가능합니다.</li>
 								<li>설문조사 참여 시 포인트를 지급해드립니다. (이벤트 종료 후, 일괄 지급)</li>
@@ -130,32 +131,30 @@
 					</div>
 				</div>
 				<div class="inner">
-					<div class="other_ev_slide">
+					<div class="other_promotion_slide">
 						<div class="tit">
 							<h4>다른 이벤트 보기</h4>
 						</div>
 						<div class="swiper-container">
 							<div class="swiper-wrapper">
-							  <th:block th:each="PlanData, PlanStat : ${planList}">
+							<th:block th:each="PlanData, PlanStat : ${planList}">
 								<div class="swiper-slide">
 									 <a href="javascript:void(0);" th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])">
 										<div class="img">
-											<img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg}" alt="${PlanData.planNm}">
+											<img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg}">
 										</div>
 										<div class="txt">
 											<p class="subject" th:text="${PlanData.planNm}"></p>
 										</div> 
 									</a>
 								</div>
-								</th:block>
+							</th:block>
 							</div>
 						</div>
 					</div>
 				</div>
 			</section>
-		</main>
-	
-	<script th:inline="javascript">
+		</main>	<script th:inline="javascript">
 	/*<![CDATA[*/
 	let today = new Date();   
 let year = today.getFullYear();
@@ -275,6 +274,7 @@ var fnInfoConfirmCallBack = function(result) {
 };
 
 $(document).ready(function() {
+	$("#monthHead").html("<strong>"+month+"월</strong> 출석체크");
 	appendHtml();
 	
 	if (!cfCheckLogin()) {

+ 325 - 0
src/main/webapp/WEB-INF/views/mob/planning/PlanningEventPollFormMob.html

@@ -0,0 +1,325 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : PlanningEventPollFormMob.html
+ * @desc    : 설문조사 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.10   sowon     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<main role="" id="" class="container ev">
+			<section class="content renew">
+				<div class="inner">
+					<div class="promotion_tit">
+						<h3 th:text="${pollInfo.pollTitle}"></h3>
+						<div class="period">
+							<span th:text="${pollInfo.pollStdt}"></span> - <span th:text="${pollInfo.pollEddt}"></span>
+						</div> 
+						<!-- <button type="button" class="share_btn"><img src="/images/mo/ico_share_btn.png" alt="공유" /></button> -->
+					</div>
+				</div>
+				<div class="inner wide">
+					<div class="survey_wrap">
+						<div class="survey_con">
+							<form action="">
+							<th:block th:each="pollData, pollStat : ${pollList}">
+								<div class="survey_row q1" th:if="${pollData.pollQtype == '10'}">
+									<h4 th:text=${pollData.pollQtitle}></h4>
+									<div class="answer">
+										<div class="form_field">
+											<ul class="clear" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}">
+												<li th:if="${pollData.pollQval1 != null && pollData.pollQval1 != ''}">
+													<th:block th:if="${pollData.pollQval1 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-1-'+${pollData.pollQsq}" th:value="${pollData.pollQval1}" ><label th:for="'rdi-1-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval1}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval1 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-1-'+${pollData.pollQsq}" th:value="${pollData.pollQval1}" class="etc"><label th:for="'rdi-1-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval1}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval2 != null && pollData.pollQval2 != ''}">
+													<th:block th:if="${pollData.pollQval2 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-2-'+${pollData.pollQsq}" th:value="${pollData.pollQval2}" ><label th:for="'rdi-2-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval2}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval2 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-2-'+${pollData.pollQsq}" th:value="${pollData.pollQval2}" class="etc"><label th:for="'rdi-2-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval2}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval3 != null && pollData.pollQval3 != ''}">
+													<th:block th:if="${pollData.pollQval3 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-3-'+${pollData.pollQsq}" th:value="${pollData.pollQval3}" ><label th:for="'rdi-3-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval3}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval3 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-3-'+${pollData.pollQsq}" th:value="${pollData.pollQval3}" class="etc"><label th:for="'rdi-3-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval3}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval4 != null && pollData.pollQval4 != ''}">
+													<th:block th:if="${pollData.pollQval4 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-4-'+${pollData.pollQsq}" th:value="${pollData.pollQval4}" ><label th:for="'rdi-4-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval4}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval4 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-4-'+${pollData.pollQsq}" th:value="${pollData.pollQval4}" class="etc"><label th:for="'rdi-4-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval4}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval5 != null && pollData.pollQval5 != ''}">
+													<th:block th:if="${pollData.pollQval5 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-5-'+${pollData.pollQsq}" th:value="${pollData.pollQval5}" ><label th:for="'rdi-5-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval5}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval5 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-5-'+${pollData.pollQsq}" th:value="${pollData.pollQval5}" class="etc"><label th:for="'rdi-5-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval5}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval6 != null && pollData.pollQval6 != ''}">
+													<th:block th:if="${pollData.pollQval6 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-6-'+${pollData.pollQsq}" th:value="${pollData.pollQval6}"><label th:for="'rdi-6-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval6}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval6 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-6-'+${pollData.pollQsq}" th:value="${pollData.pollQval6}" class="etc"><label th:for="'rdi-6-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval6}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval7 != null && pollData.pollQval7 != ''}">
+													<th:block th:if="${pollData.pollQval7 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-7-'+${pollData.pollQsq}" th:value="${pollData.pollQval7}" ><label th:for="'rdi-7-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval7}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval7 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-7-'+${pollData.pollQsq}" th:value="${pollData.pollQval7}" class="etc"><label th:for="'rdi-7-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval7}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval8 != null && pollData.pollQval8 != ''}">
+													<th:block th:if="${pollData.pollQval8 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-8-'+${pollData.pollQsq}" th:value="${pollData.pollQval8}"><label th:for="'rdi-8-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval8}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval8 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-8-'+${pollData.pollQsq}" th:value="${pollData.pollQval8}" class="etc"><label th:for="'rdi-8-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval8}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval9 != null && pollData.pollQval9 != ''}">
+													<th:block th:if="${pollData.pollQval9 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-9-'+${pollData.pollQsq}" th:value="${pollData.pollQval9}" ><label th:for="'rdi-9-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval9}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval9 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-9-'+${pollData.pollQsq}" th:value="${pollData.pollQval9}"class="etc"><label th:for="'rdi-9-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval9}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval10 != null && pollData.pollQval10 != ''}">
+													<th:block th:if="${pollData.pollQval10 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-10-'+${pollData.pollQsq}" th:value="${pollData.pollQval10}"><label th:for="'rdi-10-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval10}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval10 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-10-'+${pollData.pollQsq}" th:value="${pollData.pollQval10}" class="etc"><label th:for="'rdi-10-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval10}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+								<div class="survey_row q2" th:if="${pollData.pollQtype == '20'}">
+									<h4 th:text=${pollData.pollQtitle}></h4>
+									<div class="answer">
+										<div class="form_field">
+											<ul class="clear" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}">
+												<li th:if="${pollData.pollQval1 != null && pollData.pollQval1 != ''}">
+													<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-1-'+${pollData.pollQsq}" th:value="${pollData.pollQval1}"><label th:for="'chk-1-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval1}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval2 != null && pollData.pollQval2 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-2-'+${pollData.pollQsq}" th:value="${pollData.pollQval2}"><label th:for="'chk-2-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval2}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval3 != null && pollData.pollQval3 != ''}">
+														<input type="checkbox"  th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-3-'+${pollData.pollQsq}" th:value="${pollData.pollQval3}"><label th:for="'chk-3-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval3}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval4 != null && pollData.pollQval4 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-4-'+${pollData.pollQsq}" th:value="${pollData.pollQval4}"><label th:for="'chk-4-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval4}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval5 != null && pollData.pollQval5 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-5-'+${pollData.pollQsq}" th:value="${pollData.pollQval5}"><label th:for="'chk-5-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval5}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval6 != null && pollData.pollQval6 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-6-'+${pollData.pollQsq}" th:value="${pollData.pollQval6}"><label th:for="'chk-6-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval6}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval7 != null && pollData.pollQval7 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-7-'+${pollData.pollQsq}" th:value="${pollData.pollQval7}"><label th:for="'chk-7-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval7}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval8 != null && pollData.pollQval8 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-8-'+${pollData.pollQsq}" th:value="${pollData.pollQval8}"><label th:for="'chk-8-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval8}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval9 != null && pollData.pollQval9 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-9-'+${pollData.pollQsq}" th:value="${pollData.pollQval9}"><label th:for="'chk-9-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval9}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval10 != null && pollData.pollQval10 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-10-'+${pollData.pollQsq}" th:value="${pollData.pollQval10}"><label th:for="'chk-10-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval10}"></span></label>
+												</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+
+								<div class="survey_row q4" th:if="${pollData.pollQtype == '40'}">
+									<h4 th:text=${pollData.pollQtitle}></h4> <!-- 210414_수정 : br태그 삭제 -->
+									<div class="answer">
+										<textarea class="doc_ans" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}" placeholder="1,000자 이내로 입력해 주세요." style="resize: none;"></textarea>
+										<p class="txt_cnt"><span id="ans_cnt" class="c_primary">0</span>/1,000</p>
+									</div>
+								</div>
+								<div class="survey_row q3" th:if="${pollData.pollQtype == '30'}">
+								<h4 th:text=${pollData.pollQtitle}></h4> <!-- 210414_수정 : br태그 삭제 -->
+									<div class="answer">
+										<textarea class="q4_ans" name="" id="" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}"></textarea>
+									</div>
+							
+								</div>
+								</th:block>
+								
+								<div class="btn_wrap">
+									<button type="button" id="btn_survey_success" class="btn btn_dark" onclick="fnSubmitPoll()">응답 완료</button>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</section>
+		</main>
+<script th:inline="javascript">
+let pollList = [[${pollList}]];
+
+var fnSubmitPoll = function () {
+	//let pollQsq_20 = new Array();
+	let pollQsq_10 = '';
+	let pollQsq_20 = '';
+	let pollQsq_30 = '';
+	let pollQsq_40 = '';
+	
+	
+	// 유효성검사
+	for (let i = 0; i < pollList.length; i++) {
+		let type = pollList[i].pollQtype;
+		let pollQsq = pollList[i].pollQsq;
+		
+		
+		if(type == "10"){
+			if($('input:radio[name='+pollQsq+'_'+(i+1)+']').is(':checked')== false){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}
+			if($('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() == '기타'){
+				if($('textarea[name=etc_input_'+pollQsq+']').val()==''){
+					mcxDialog.alert("Q"+(i+1)+"기타 내용을 입력해주세요.");
+					return;
+				}
+			}
+			if ($('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() == '기타') {
+				pollQsq_10 += pollQsq +'-'+$('textarea[name=etc'+pollQsq+']').val() + '/';
+			}else{
+				pollQsq_10 += pollQsq +'-'+$('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() + '/';
+			}
+		}
+		if(type == "20"){
+			if($('input:checkbox[name='+pollQsq+'_'+(i+1)+']').is(':checked')== false){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}else{
+				let chk = $('input:checkbox[name='+pollQsq+'_'+(i+1)+']:checked');
+				pollQsq_20 += pollQsq + '-' ;
+				for(let i=0; i< chk.length; i++){
+					pollQsq_20 += chk.eq(i).val();
+					if (i != chk.length-1) {
+						pollQsq_20 += ',';
+					}
+				}
+				pollQsq_20 += '/' ;
+			}
+		}
+		if(type == "30"){
+			if($('textarea[name='+pollQsq+'_'+(i+1)+']').val() == ''){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}else{
+				pollQsq_30 += pollQsq +'-'+$('textarea[name='+pollQsq+'_'+(i+1)+']').val() + '/';
+			}
+		}
+		if(type == "40"){
+			if($('textarea[name='+pollQsq+'_'+(i+1)+']').val() == ''){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}else{
+				//max1.set(pollQsq,$('textarea[name='+pollQsq+'_'+(i+1)+']').val());
+				pollQsq_40 += pollQsq +'-'+$('textarea[name='+pollQsq+'_'+(i+1)+']').val() + '/';
+			}
+		}
+	}
+	var data = {pollQsq_10 : pollQsq_10,
+				pollQsq_20 : pollQsq_20,
+			    pollQsq_30 : pollQsq_30,
+			    pollQsq_40 : pollQsq_40};
+	
+
+	var jsonData = JSON.stringify(data);
+
+	$.ajax({
+		type : "POST",
+		data : jsonData,
+		url : '/planning/event/poll/save',
+		contentType : 'application/json',
+		dataType : 'json',
+		success : function(result) {
+			mcxDialog.alertC('설문조사 이벤트 참여가 완료되었습니다.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					cfnGoToPage(_PAGE_EVENT_MAIN);
+				}
+			});
+		}
+	})
+}
+
+$(document).ready(function(){
+	//Q3 글자 수 카운트
+	$('.doc_ans').keyup(function (e){
+		var content = $(this).val();
+		$('#ans_cnt').html(content.length);
+		if (content.length > 1000){
+			$(this).val(content.substring(0, 1000));
+			$('#ans_cnt').html("500");
+		}
+	});
+	
+	$('.etc').keyup(function (e){
+		var content = $(this).val(); 
+		if (content.length > 50){
+			$(this).val(content.substring(0, 50));
+		}
+	});
+	
+	$('.q4_ans').keyup(function (e){
+		var content = $(this).val(); 
+		if (content.length > 50){
+			$(this).val(content.substring(0, 50));
+		}
+	});
+	
+	
+})
+</script>
+</th:block>
+
+</body>
+</html>

+ 3 - 2
src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html

@@ -53,9 +53,10 @@
 
 <script th:inline="javascript">
 /*<![CDATA[*/
-	let fnGetPlanningList = function(cateNo) {
+	let fnGetPlanningList = function(cateNo,brandGroupNo) {
 		let actionUrl = '/planning/main/list';
 		if (!gagajf.isNull(cateNo)) actionUrl += '?cateNo=' + cateNo;
+		if (!gagajf.isNull(brandGroupNo)) actionUrl += '?brandGroupNo=' + brandGroupNo;
 		
 		$.getJSON(actionUrl
 			, function(result, status) {
@@ -118,7 +119,7 @@
 	}
 	
 	$(document).ready(function() {
-		fnGetPlanningList([[${cateNo}]]);
+		fnGetPlanningList([[${cateNo}]],[[${brandGroupNo}]]);
 	});
 /*]]>*/
 </script>

+ 372 - 293
src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html

@@ -18,165 +18,82 @@
  -->
 <body>
 <th:block layout:fragment="content">
-		<main role="" id="" class="container dp">
-
-			<section class="content dp_Bulletship">
-				<div class="inner wide">
-                    <div class="Bulletship_head">
-                        <img src="/images/mo/thumb/bullet_bg1.png" alt="오늘 사서 오늘 입자 AM 10시까지 주문하면 당일 도착 대상지역 서울, 경기, 인천 외 일부 지역 제외">
-                    </div>
-                    <div class="Bulletship_body">
-                        <div class="inner">
-                            <div class="ico-area">
-                                <img src="/images/mo/ico_bulltet-house.png" alt="지붕이 그려진 아이콘입니다">
+	<main role="" id="" class="container dp">
+			<section class="content">
+                <div class="inner wide">
+                    <div class="bulletship">
+                        <div class="Bulletship_head">
+                        	 <img src="/images/mo/thumb/bullet_bg1.png" alt="오늘 사서 오늘 입자 AM 10시까지 주문하면 당일 도착 대상지역 서울, 경기, 인천 외 일부 지역 제외">
+                        </div>
+                        <div class="Bulletship_body">
+                            <div>
+                                <div class="ico-area">
+                                    <img src="/images/mo/ico_bulltet-house.png" alt="지붕이 그려진 아이콘입니다">
+                                </div>
+                                <div class="txt-area" id="shotHtml">
+                                    <!-- 배송가능지역 -->
+                                   
+                                    <!-- // 배송가능지역 -->
+                                </div>  
                             </div>
-                            <div class="txt-area">
-								 <!-- 배송가능지역 -->
-								 <p class="bulltetship-time">오전10시 이전 주문 당일도착</p>
-								 <p class="bulltetship-check"><span class="c_primary">총알배송이 가능한 지역</span>인지<br> 확인해보세요!</p>
-							 
-								 <div class="btn_group_flex">
-									 <div>
-										 <button class="btn btn_default" id="btn_bulletship_pop">
-											 <span>내 배송지 확인하기</span>
-										 </button>
-									 </div>
-								 </div>
-								 <p class="bulltetship-disc ptxt01">서울·경기·인천 중 일부지역은 총알배송이 불가합니다.</p>
-								 <!-- // 배송가능지역 -->
-                            </div>  
                         </div>
-                    </div>
-                    <div class="Bulletship_foot">
-                        <div class="inner custom-inner">
-                            <ul class="clear">
-                                <li>
-                                    <div class="img-box">
-                                        <img src="/images/mo/ico_bulltet-order.png" alt="택배차가 그려진 아이콘입니다">
-                                    </div>
-                                    <div class="txt-box">
-                                        <span class="tit">주문/도착</span>
-                                        <p class="disc">오전 10시 전 주문완료하면 <br>당일 밤 12시까지 도착</p>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="img-box">
-                                        <img src="/images/mo/ico_bulltet-delivery.png" alt="달력이 그려진 아이콘입니다">
-                                    </div>
-                                    <div class="txt-box">
-                                        <span class="tit">배송일</span>
-                                        <p class="disc">월, 화, 수, 목, 금 <br class="mo-only">(영업일 기준, 공휴일 휴무)</p>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="img-box">
-                                        <img src="/images/mo/ico_bulltet-object.png" alt="쇼핑백이 그려진 아이콘입니다">
-                                    </div>
-                                    <div class="txt-box">
-                                        <span class="tit">대상상품</span>
-                                        <p class="disc ptxt01">한세 패밀리 브랜드 <br class="mo-only">(스타일24 직배송 한정)</p>
-                                    </div>
-                                </li>
-                            </ul>
+                        <div class="Bulletship_foot" >
+                            <div>
+                                <ul class="clear">
+                                    <li>
+                                        <div class="img-box">
+                                            <img src="/images/mo/ico_bulltet-order.png" alt="택배차가 그려진 아이콘입니다">
+                                        </div>
+                                        <div class="txt-box">
+                                            <span class="tit">주문/도착</span>
+                                            <p class="disc">오전 10시 전 주문완료하면 <br>당일 밤 12시까지 도착</p>
+                                        </div>
+                                    </li>
+                                    <li>
+                                        <div class="img-box">
+                                            <img src="/images/mo/ico_bulltet-delivery.png" alt="달력이 그려진 아이콘입니다">
+                                        </div>
+                                        <div class="txt-box">
+                                            <span class="tit">배송일</span>
+                                            <p class="disc">월, 화, 수, 목, 금 <br class="mo-only">(영업일 기준, 공휴일 휴무)</p>
+                                        </div>
+                                    </li>
+                                    <li>
+                                        <div class="img-box">
+                                            <img src="/images/mo/ico_bulltet-object.png" alt="쇼핑백이 그려진 아이콘입니다">
+                                        </div>
+                                        <div class="txt-box">
+                                            <span class="tit">대상상품</span>
+                                            <p class="disc ptxt01">한세 패밀리 브랜드 <br class="mo-only">(스타일24 직배송 한정)</p>
+                                        </div>
+                                    </li>
+                                </ul>
+                            </div>
                         </div>
                     </div>
-
-					<!-- 210415_드롭박스 위치수정 -->
-					<div class="items_option">
-						<div class="open_categori">
-							<a id="filter">모이몰른
-								<!-- 210415_select > a태그로 변경 -->
-								<!--<option value="hide">모이몰른</option>
-								<option value="Test_SELECT_OPTION_1" rel="icon-temperature">모이몰른</option>
-								<option value="Test_SELECT_OPTION_2">모이몰른</option>
-								<option value="Test_SELECT_OPTION_3">모이몰른</option>-->
-							</a> 
+                </div>
+				<div class="inner wide">
+					<div class="dp_listItems_cont type1">
+						<!-- 210415_드롭박스 위치수정 -->
+						<div class="items_option">
+							<div class="open_categori" style="position: relative; width: 100%; z-index: 0;">
+								<a id="filter"></a> 
+							</div>
 						</div>
 					</div>
                 </div>
-				<div class="inner">
-					<div class="delivery_item">
-						<h2 class="dp_subtitle dp_another_st">모이몰른</h2>
-						<div class="item_list">
-							<div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
-								<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 id="cornerList"></div>
+<!-- 				<div class="inner">
+					<div class="dp_listItems_wrap type1">
+						<h2 class="dp_subtitle">겨울 아우터 재입고</h2>
+						<div class="list_content"> 데이터 없을시 클래스 nodata 추가
+							<div class="list_defult">
+								<div>
+									<p>선택하신 조건에 맞는 상품이 없습니다.<br>필터를 변경해 보세요.</p>
 								</div>
+								<button type="button" class="btn btn_default"><span>선택한 필터 초기화</span></button>
+							</div>
+							<div class="itemsGrp">
 								<div class="item_prod">
 									<div class="item_state">
 										<button type="button" class="itemLike">관심상품 추가</button>
@@ -206,140 +123,42 @@
 							</div>
 						</div>
 					</div>
-				</div>
-				<div class="inner">
-					<div class="delivery_item">
-						<h2 class="dp_subtitle">컬리수</h2>
-						<div class="item_list">
-							<div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
-								<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="inner">
+					<div class="dp_listItems_wrap type2">
+						<h2 class="dp_subtitle">2021 신상 아우터</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>
+						 </div>
 					</div>
-				</div>
+				</div> -->
 			</section>
 
-			<!-- 배송검색팝업 -->
-			<div class="modal fade dp_pop bulletShip_pop" id="bulletShipPop" tabindex="-1" role="dialog" aria-labelledby="modalScrollLabel" aria-hidden="true">
-				<div class="modal-dialog" role="document">
-					<div class="modal-content">
-						<div class="modal-header">
-							<h5 class="modal-title" id="modalScrollLabel"><span class="sr-only">배송팝업</span></h5>
-						</div>
-						<div class="modal-body">
-							<div class="pop_cont"></div>
-						</div>
-						<div class="modal-footer">
-							<button type="button" id="" class="btn btn_dark"><span>계속 쇼핑하기</span></button>
-						</div>
-					</div>
-				</div>
-			</div>
-			<!-- //배송검색팝업 -->
-
 			<!-- 카테고리 -->
 			<div class="category_box brand">
 				<div class="lap">
@@ -348,15 +167,15 @@
 						<!-- 카테고리 선택 -->
 						<div class="selcet_list">
 							<ul>
-								<li class="active"><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li class="active"><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
 							</ul>
 						</div>
 						<!-- //카테고리 선택 -->
@@ -374,17 +193,277 @@
                     </div>
                     <div class="popup_con">
                         <div class="button_list clear">
-                            <button type="button" class="on"><span>모이몰른</span></button>
-                            <button type="button"><span>모이몰른</span></button>
-                            <button type="button"><span>모이몰른</span></button>
+                        	<th:block th:if="${planCornerList!=null}" th:each="a, cornerStat : ${planCornerList}">
+                           	 <button type="button" th:onclick="fnCornerClick([[${cornerStat.index+1}]], [[${a.cornerNm}]])"><span th:text="${a.cornerNm}"></span></button>
+                            </th:block>
                         </div>
                     </div>
                 </div>
             </div>
 		</main>
-
+		
+		<!-- 배송검색팝업 -->
+			<div class="modal fade dp_pop bulletShip_pop" id="bulletShipPop" tabindex="-1" role="dialog" aria-labelledby="modalScrollLabel" aria-hidden="true">
+				<div class="modal-dialog" role="document">
+					<div class="modal-content">
+						<div class="modal-header">
+							<h5 class="modal-title" id="modalScrollLabel"><span class="sr-only">배송팝업</span></h5>
+						</div>
+						<div class="modal-body">
+							<div class="pop_cont">
+								<div>
+								<div class="ico-area">
+									<img src="/images/mo/ico_bulltet-house.png"
+										alt="지붕이 그려진 아이콘입니다">
+								</div>
+								<div class="possible-popup" id="classPop">
+									<p class="">고객님이 찾으시는 지역은</p>
+									<p class="bulltetship-check">
+										<span class="c_primary" id="shotAdr"></span> 가능 지역
+									</p>
+									<div class="input-address" id="addr">
+										
+									</div>
+									<p class="possible-notice c_gray" id="infoTxt">
+										
+									</p>
+								</div>
+							</div>
+							</div>
+						</div>
+						<div class="modal-footer">
+							<button type="button" id="" class="btn btn_dark"  onclick="$.modal.close();"><span>계속 쇼핑하기</span></button>
+						</div>
+					</div>
+				</div>
+			</div>
+			<!-- //배송검색팝업 -->
 <script th:inline="javascript">
+let custAddr = [[${custAddr}]];
+let customerInfo = [[${customerInfo}]];
+let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
+let planCornerList = [[${planCornerList}]];
+let planCornerGoodsList = [[${planCornerGoodsList}]];
+if(planCornerList.length>0){
+	var html = '';
+	$.each(planCornerList, function(idx, item)  {
+		html += '<div class="inner" id="type'+idx+'">';
+		html += '	<div class="dp_listItems_wrap type'+idx+'">';
+		html += '		<h2 class="dp_subtitle">'+item.cornerNm+'</h2>';
+		html += '			<div class="itemsGrp">';
+		$.each(planCornerGoodsList, function(idx2, item2)  {
+			if (item2.cornerNm == item.cornerNm) {
+			html += '				<div class="item_prod">';
+			html += '					<div class="item_state">';
+			if(item2.likeIt === 'likeit'){
+				html += '						<button type="button" class="itemLike likeit active" onclick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+			}else{
+				html += '						<button type="button" class="itemLike" onclick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+			}
+			
+			html += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
+			html += '							<div class="itemPic">';
+			html += '								<img class="vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+			html += '							</div>';
+			html += '							<p class="itemBrand">'+item2.brandGroupNm+'</p>';
+			html += '							<div class="itemName">'+item2.goodsNm+'</div>';
+			html += '							<p class="itemPrice">';
+			if (item2.currPrice != item2.listPrice) {
+				html += '                                 <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
+			}
+			html += item2.currPrice.addComma();
+			if (item2.dcRate != 0) {
+				html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
+			}
+			html += '							</p>';
+			html += '							<div class="itemcolorchip">';
+			if(!gagajf.isNull(item2.colorChips)){
+				var colorArr = item2.colorChips.split(",");
+				var colorCd = '';
+				var rgbColor = '';
+				for(let i=0; i<colorArr.length; i++){
+					var colorInfo = colorArr[i].split(":");
+					colorCd = colorInfo[0];
+					rgbColor = colorInfo[1];
+					if(rgbColor=='#FFFFFF'){
+						html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
+					}else{
+						html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+					}
+				}
+			}
+			html += '							</div>';
+			if(!gagajf.isNull(item2.icon)){
+				var iconArr = item2.icon.split(",");
+				var iconGb = '';
+				var iconNm = '';
+				html += '	<p class="itemBadge">';
+				for(let i=0; i<iconArr.length; i++){
+					var iconInfo = iconArr[i].split(":");
+					iconGb = iconInfo[0];
+					iconNm = iconInfo[1];
+					html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+				}
+				html += '	</p>';
+			}
+			if(item2.goodsTnm != null){
+				html += '			<div class="itemComment">'+item2.goodsTnm+'</div>';
+			}
+			html += '						</a>';
+			html += '					</div>';
+			html += '				</div>';
+			}
+		});
+		html += '			</div>';
+		html += '	  </div>';
+		html += '</div>';
+	});
+	
+	$("#cornerList").append(html);
+
+}
+var shotBody = function () {
+	if (!cfCheckLogin() || (custAddr == null || custAddr == '')) {
+		html = '';
+		html += '<p class="bulltetship-time">오전10시 이전 주문 당일도착</p>';
+		html += '<p class="bulltetship-check"><span class="c_primary">총알배송이 가능한 지역</span>인지<br> 확인해보세요!</p>';
+		html += '    <div class="btn_group_flex">';
+		html += '        <div>';
+		html += '            <button class="btn btn_default" id="btn_bulletship_pop" onclick="fnOpenDaumAddr();">';
+		html += '                <span>내 배송지 확인하기</span>';
+		html += '            </button>';
+		html += '        </div>';
+		html += '    </div>';
+		html += '<p class="bulltetship-disc ptxt01">서울·경기·인천 중 일부지역은 총알배송이 불가합니다.</p>';
+		
+		$("#shotHtml").append(html);
+	}else{
+		html = '';
+		html += ' <span class="costumer-name">'+customerInfo.custNm+'</span>님의 배송지는';
+		if (custAddr.shotDelvUseYn  === 'Y') {
+			html += '<p class="bulltetship-check"><span class="c_primary">총알배송</span> 지역</p>';
+		}else{
+			html += '<p class="bulltetship-check"><span class="c_primary">일반배송</span> 지역</p>';
+		}
+		html += '<div class="input-address">';
+		html += custAddr.recipBaseAddr+' <br>'+custAddr.recipDtlAddr;
+		html += '</div>';
+		html += '<div class="btn_group_flex">';
+		html += '	<div>';
+		html += '		<button class="btn btn_default btn_block" id="btn_bulletship_pop" onclick="fnOpenDaumAddr();">';
+		html += '			<span>다른 배송지 확인하기</span>';
+		html += '		</button>';
+		html += '	</div>';
+		html += '</div>';
+		
+		$("#shotHtml").append(html);
+	}
+} 
+
+//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			// data.zonecode
+			
+			$.ajax( {
+						type		: "GET",
+						url 		: '/planning/shot/delivery/confirm?recipZipcode='+data.zonecode,
+						dataType 	: 'json',
+						success 	: function(result) {
+							if (result != null) {
+								$('#addr').text(cfnGetDaumRoadAddr(data));
+								if(result.shotYn.shotDelvUseYn == "Y"){
+									$("#classPop").attr("class","possible-popup");
+									$('#shotAdr').text("총알배송");
+									$("#infoTxt").html("오늘 오전 10시까지 주문하시면 오늘 도착합니다. <br>(토, 일, 공휴일 휴무)")
+									
+								}else{
+									$("#classPop").attr("class","impossible-popup");
+									$('#shotAdr').text("일반배송");
+									$("#infoTxt").html("주문시간/배송지에 따라 2~3일 이내 도착합니다.<br> (일, 공휴일 휴무)")
+								}
+								
+								$("#bulletShipPop").modal("show");
+								
+							}
+						}
+					}); 
+			
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
+	});
+	cfnOpenDaumAddr(daumZip);
+}
+
+var fnCornerClick = function (result1,result2) {
+	var num = result1 - 1;
+	$("#filter").text(result2);
+	//var offset = $('.dp_listItems_cont.type'+(result1)).offset(); //선택한 태그의 위치를 반환
+	var offset = $('#type'+num).offset(); //선택한 태그의 위치를 반환
+	//animate()메서드를 이용해서 선택한 태그의 스크롤 위치를 지정해서 0.4초 동안 부드럽게 해당 위치로 이동함 
+	$('html').animate({scrollTop : offset.top}, 400);
+	
+}
+
+$(document).ready(function(){
+	shotBody();
+	$("#filter").text(planCornerList[0].cornerNm);
+	// 다른기획전
+	var other_promotion_slide = new Swiper('.other_promotion_slide .swiper-container', {
+		slidesPerView: 2,
+		spaceBetween: 8,
+		centerMode: true,
+	});
+	
+	$(window).scroll(function(){
+		var scrollTop= $(window).scrollTop();
+		var itemTop=$('.dp .dp_listItems_cont').offset().top;
+
+        if (scrollTop >= itemTop){
+            $('.dp .dp_listItems_cont .items_option').addClass('fix');
+        } else {
+            $('.dp .dp_listItems_cont .items_option').removeClass('fix');
+        }
+
+	});
+	
+	// 아이템스라이드(리스트갯수1)
+	var dp_listItems_cont1 = new Swiper('.dp_listItems_cont .swiper-container.item01', {
+		slidesPerView: 1,
+		spaceBetween: 0,
+		centerMode: true,
+		pagination: {
+			el: '.dp_listItems_cont .swiper-container.item01 .swiper-pagination',
+		},
+	});
+	
+	
+	
+	//기간 선택 팝업
+    $(document).on("click", ".open_categori", function(){
+        $('#odDatePop').show().addClass("active");
+        $("body").css({"overflow":"hidden"});
+    });
+    //팝업_닫기
+    $('.popup_close').on("click",function(){
+        $('.popup_box').hide().removeClass('active');
+        $("body").css({"overflow":"visible"});
+    });
+    // 210415_팝업 테두리 선택 추가
+    $(document).ready(function(){
+	    $(document).on('click','.popup_box .button_list button',function(){
+            $('.popup_box .button_list button').removeClass('on');
+            $(this).addClass('on');
+		});
+	});
+    
+    $("#bulletShipPop_close").click(function() {
+        $.modal.close();
+ });	
 
+});
 </script>
 </th:block>
 

+ 45 - 4
src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html

@@ -77,7 +77,9 @@
 									<a th:unless="${ContentsData.contentsType=='SELF'}" th:href="${ContentsData.strVar1}" target="_blank">브랜드 사이트</a>
 								</div>
 								<div class="brand_desc" id="brandDesc">
-									<p class="cate" th:text="${ContentsData.strTitle1}"></p>
+									<p class="cate">
+										<input type="hidden" name="brandTitle" th:value="${ContentsData.strTitle1}">
+									</p>
 									<p class="desc" > <!--th:text="${ContentsData.subText1}"-->
 										<input type="hidden" name="brandNote" th:value="${ContentsData.subText1}"/>
 									</p>
@@ -136,9 +138,11 @@
 									<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
 										<div class="swiper-slide">
 											<a th:href="${ContentsData.strVar1}">
-												<div class="bnnbox" style="background:#e3e7ea;">
+												<div class="bnnbox" id="bannerS" style="background:#e3e7ea;">
 													<div class="txtWrap">
-														<p th:text="${ContentsData.strTitle1}"></p>
+														<p class="bText">
+															<input type="hidden" name="bannerDesc" th:value="${ContentsData.strTitle1}">
+														</p>
 														<!--<p>아우터 + 이너 단독세일</p>-->
 														<button type="button" class="btn">VIEW MORE</button>
 													</div>
@@ -274,7 +278,7 @@
 
 				<!-- special_shop -->
 				<th:block th:if="${contentsLoc=='011'}">
-					<div class="content wide special_shop">
+					<div class="content wide special_shop" th:if="${brandMainLayoutData.planningList != null}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${contentsTitle}"></p>
 						</div>
@@ -786,6 +790,24 @@ $(document).ready( function() {
 	});
 
 	// 브랜드소개 <br> 처리
+	if(!gagajf.isNull($("#brandDesc").find("input[name=brandTitle]").val())){
+		var brandDesc = $("#brandDesc").find("input[name=brandTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
+		if(!gagajf.isNull(brandDesc)){
+			if(brandDesc.indexOf('<br>') > -1){
+				let tag = '';
+				var reText = brandDesc.split("<br>");
+				tag += reText[0];
+				tag += '<br>';
+				tag += reText[1];
+				$("#brandDesc .cate").append(tag);
+			}else{
+				let tag = '';
+				tag += brandDesc;
+				$("#brandDesc .cate").append(tag);
+			}
+		}
+	}
+
 	if(!gagajf.isNull($("#brandDesc").find("input[name=brandNote]").val())){
 		var brandDesc = $("#brandDesc").find("input[name=brandNote]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
 		if(!gagajf.isNull(brandDesc)){
@@ -804,6 +826,25 @@ $(document).ready( function() {
 		}
 	}
 
+	// 배너 슬라이더 <br> 처리
+	$('.bText').each(function (){
+		let tag = '';
+		if(!gagajf.isNull($(this).find("input[name=bannerDesc]").val())){
+			var brText = $(this).find("input[name=bannerDesc]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
+			if(brText.indexOf('<br>') > -1){
+				var reText = brText.split("<br>");
+				tag += reText[0];
+				tag += '</p>';
+				tag += '<p>';
+				tag += reText[1];
+				tag += '</p>';
+			}else{
+				tag += brText;
+			}
+			$(this).append(tag);
+		}
+	});
+
 });
 /*]]>*/
 </script>

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

@@ -107,7 +107,7 @@
 										</div>
 									</div>
 									<!-- 교환결제대기 -->
-									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(exchangeDtl.addPayCost, 1, 'COMMA')}원 결제 후 교환 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->
@@ -225,7 +225,7 @@
 							</table>
 						</div>
 					</th:block>
-					<th:block th:if="${oneData.addPayCost > 0}">
+					<th:block th:if="${oneData.addPayCost > 0 and not #strings.isEmpty(oneData.pgTid)}">
 						<h4 class="subH3">결제정보</h4>
 						<div class="tbl type6">
 							<table>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageCreReturnDetailFormWeb.html

@@ -98,7 +98,7 @@
 										</div>
 									</div>
 									<!-- 반품결제대기 -->
-									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${returnDtl.addPayCost}원 결제 후 반품 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(returnDtl.addPayCost, 1, 'COMMA')}원 결제 후 반품 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_50'}"><p>반품 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->

+ 18 - 11
src/main/webapp/WEB-INF/views/web/mypage/MypageCustDeliveryAddrFormWeb.html

@@ -174,18 +174,25 @@
 	};
 	
 	var fnDeleteCustDelvAddr = function (custDelvAddrSq) {
-		let params = {}
-		params.custDelvAddrSq = custDelvAddrSq;
-		let jsonData = JSON.stringify(params);
-		gagajf.ajaxJsonSubmit("/mypage/customer/delivery/addr/delete", jsonData, function (result) {
-			if (result.isSuccess) {
-				fnCustDeliveryAddList();
-			} else {
-				mcxDialog.alert("배송지 삭제를 실패 하였습니다.");
-				return;
+
+		mcxDialog.confirm("배송지를 삭제하시겠습니까?", {
+		cancelBtnText : "취소",
+		sureBtnText : "확인",
+		sureBtnClick : function() {
+				let params = {}
+				params.custDelvAddrSq = custDelvAddrSq;
+				let jsonData = JSON.stringify(params);
+				gagajf.ajaxJsonSubmit("/mypage/customer/delivery/addr/delete", jsonData, function (result) {
+					if (result.isSuccess) {
+						fnCustDeliveryAddList();
+					} else {
+						mcxDialog.alert("배송지 삭제를 실패 하였습니다.");
+						return;
+					}
+				});
 			}
-		})
-	}
+		});
+	};
 
 
 	$(document).ready(function() {

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

@@ -49,7 +49,7 @@
 									<p th:unless="${order.giftPackYn == 'Y'}">주문일 <span th:text="${order.ordDt}"></span></p>
 									<p th:if="${order.giftPackYn == 'Y'}">선물일 <span th:text="${order.ordDt}"></span></p>
 									<li><a href="javascript:void(0)" th:if="${allCanYn == 'Y' and order.ordReqChgQty == 0}" onclick="fnAllCancel();">주문전체취소</a></li>
-									<li><a href="javascript:void(0)" th:if="${allDecideYn == 'Y'}"  th:attr="ordNo=${ordNo}" onclick="fnAllDecideOrder(this);">전체구매확정</a></li>
+									<li><a href="javascript:void(0)" th:if="${allDecideYn == 'Y' and order.ordReqChgQty == 0}"  th:attr="ordNo=${ordNo}" onclick="fnAllDecideOrder(this);">전체구매확정</a></li>
 								</div>
 								<div class="goods_cont">
 									<!-- 주문상품 -->
@@ -170,7 +170,7 @@
 														</th:block>
 	
 														<!-- 구매확정 버튼(배송완료) -->
-														<th:block th:if="${ordDtl.ordDtlStat == 'G013_60'}">
+														<th:block th:if="${ordDtl.ordDtlStat == 'G013_60' and ordDtl.ordReqChgQty == 0}">
 															<p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnDecideOrder(this);"><span>구매 확정</span></button></p>
 														</th:block>
 	

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -542,7 +542,7 @@
 						}
 
 						// 구매확정 버튼(배송완료)
-						if (ordDtl.ordDtlStat == 'G013_60') {
+						if (ordDtl.ordDtlStat == 'G013_60' && ordDtl.ordReqChgQty == 0) {
 							tag += '											<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" onclick="fnDecideOrder(this);"><span>구매 확정</span></button></p>\n';
 						}
 

+ 0 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -561,7 +561,6 @@ $('#reviewContent').keyup(function (e){
     
 
     if (content.length > 500){
-    	mcxDialog.alert("최대 500자까지 입력 가능합니다.");
         $(this).val(content.substring(0, 500));
         $('.txt_cnt').html('<span id="review_cnt" class="c_primary">500</span>/500');
     }

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

@@ -104,7 +104,7 @@
 										</div>
 									</div>
 									<!-- 교환결제대기 -->
-									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(exchangeDtl.addPayCost, 1, 'COMMA')}원 결제 후 교환 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->
@@ -222,7 +222,7 @@
 							</table>
 						</div>
 					</th:block>
-					<th:block th:if="${oneData.addPayCost > 0}">
+					<th:block th:if="${oneData.addPayCost > 0 and not #strings.isEmpty(oneData.pgTid)}">
 						<h4 class="subH3">결제정보</h4>
 						<div class="tbl type6">
 							<table>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreReturnDetailFormWeb.html

@@ -96,7 +96,7 @@
 										</div>
 									</div>
 									<!-- 반품결제대기 -->
-									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${returnDtl.addPayCost}원 결제 후 반품 가능합니다.|"></p></div>
+									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}"><p th:text="|${#numbers.formatInteger(returnDtl.addPayCost, 1, 'COMMA')}원 결제 후 반품 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${returnDtl.chgStat == 'G685_50'}"><p>반품 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->

+ 78 - 10
src/main/webapp/WEB-INF/views/web/order/OrderAddPaymentFormWeb.html

@@ -3,14 +3,14 @@
 <!--
  *******************************************************************************
  * @source  : OrderAddPaymentWeb.html
- * @desc    : 추가결제화면 Page
+ * @desc	: 추가결제화면 Page
  *============================================================================
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
+ * VER  DATE		 AUTHOR	  DESCRIPTION
  * ===  ===========  ==========  =============================================
- * 1.0  2021.04.13   jsh77b     최초 작성
+ * 1.0  2021.04.13   jsh77b	 최초 작성
  *******************************************************************************
  -->
 <body>
@@ -69,23 +69,81 @@
 								</div>
 								<div class="area_paymentinfo">
 									<div class="paymentinfo">
+										<!-- 210421_수정 : 테이블 추가. -->
 										<div class="payinfo_blk">
-											<a href="javascript:void(0);">개인정보 제공에 대한 동의<span>보기</span></a>
+											<a href="javascript:void(0)">
+												개인정보 제공에 대한 동의
+												<span>보기</span>
+											</a>
 											<div class="infotxt">
-												개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.
+												STYLE24는 다음과 같이 회원님의 개인정보를 제3자에게 제공합니다.
+												<table>
+													<colgroup>
+														<col width="25%">
+														<col width="*">
+														<col width="25%">
+														<col width="25%">
+													</colgroup>
+													<thead>
+														<tr>
+															<th>제공받는 자</th>
+															<th>제공하는 항목</th>
+															<th>제공 목적</th>
+															<th>보유 및 이용기간</th>
+														</tr>
+													</thead> 
+													<tbody>
+														<tr>
+															<td>
+																서울보증보험㈜, ㈜유세이프
+															</td>
+															<td>
+																구매자명, 구매자 생년월일,
+																구매자 성별, 구매자 연락처
+																(일반전화 및 핸드폰), 구매자
+																이메일, 주문번호,
+																배송지 정보, 주문 금액
+															</td>
+															<td>
+																쇼핑몰보증보험 가입 및 보험가입 제반 사항
+															</td>
+															<td>
+																개별서비스 제공기간
+															</td>
+														</tr>
+														<tr>
+															<td>
+																더비오유컴퍼니 주식회사
+															</td>
+															<td>
+																성명, 주소, 연락처
+															</td>
+															<td>
+																주문상품의 배송, 고객상담 및 불만처리
+															</td>
+															<td>
+																이용목적 달성 시 까지
+															</td>
+														</tr>
+													</tbody>
+												</table>
 											</div>
 										</div>
+										<!-- 210421_수정 : 테이블 추가. -->
 										<div class="payinfo_blk">
-											<a href="javascript:void(0);">결제대행 서비스 약관 동의<span>보기</span></a>
+											<a href="">
+												결제대행 서비스 약관 동의
+												<span>보기</span>
+											</a>
 											<div class="infotxt">
 												결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.
+											</div>
 										</div>
 									</div>
+									<div class="agree_payment">
+										위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다. (전자상거래법 제 8조 제2항) <!-- 210421_수정 : 텍스트 수정. -->
+									</div>
 								</div>
-								<div class="agree_payment">
-									위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다.
-								</div>
-							</div>
 							<div class="area_paybtn">
 								<div class="form_field">
 									<button type="button" class="btn btn_primary btn_block" id="btn_payment">
@@ -171,6 +229,16 @@
 </form>
 
 <script th:inline="javascript">
+// 개인정보동의 열고닫기
+$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){
+	e.preventDefault();
+	$(this).parents('.payinfo_blk').toggleClass('on');
+	$(this).parents('.payinfo_blk').siblings('.payinfo_blk').removeClass('on'); //210428_수정 : 아코디언 추가.
+	var privacyToggle = $(this).find('span');
+	$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
+	return false;
+});
+
 //결재하기
 $("#btn_payment").on("click", function(){
 	var paynormal			= $("input[name='rdi-paynormal']:checked").val();

+ 16 - 2
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -109,8 +109,22 @@
 				</th:block>
 			</th:block>
 			<div class="coner_item01" th:if="${fsrcInfoBtm != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoBtm.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"></div>
-			
-			 <!-- 댓글리스트 -->
+			<div class="coner_item01" th:if="${planInfo.pollSq != null}">
+				<div class="content dp_btn_area">
+					<div class="cont_head">
+						<div>
+							<h4>버튼영역</h4>
+						</div>
+					</div>
+					<div class="cont_body">
+						<div class="btn_wrap">
+							<a href="javascript:void(0);" class="btn btn_primary go_next"
+								onclick="javascript:fnJoinConfirm()"> <span>설문조사 참여하기</span></a>
+						</div>
+					</div>
+				</div>
+			</div>
+				<!-- 댓글리스트 -->
 			<th:block th:if="${planInfo.replyYn == 'Y'}">
 			<div class="content wide cmt">
 				<div class="cont_body">

+ 4 - 3
src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

@@ -139,12 +139,12 @@
 							<div class="benefit_con">
 							<ul>
 								 <th:block th:each="a, benefitStat : ${benefitList}">
-								<li th:if="${a.benefitGb == 'P' or ( a.basDays > 0 and a.dcVal > 0)}">
+								<li th:if="${a.benefitGb == 'P' and ( a.basDays > 0 and a.pntAmt > 0)}">
 									<div class="benfit_point">
 										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span>
 									</div>
 								</li>
-								<li th:if="${a.benefitGb == 'C'  or ( a.basDays > 0 and a.dcVal > 0)}">
+								<li th:if="${a.benefitGb == 'C'  and ( a.basDays > 0 and a.dcVal > 0)}">
 									<div class="benfit_coupon">
 										<th:block th:if="${a.dcWay == '%'}">
 										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span><strong> 할인 쿠폰</strong>
@@ -154,7 +154,7 @@
 										</th:block>
 									</div>
 								</li>
-								<li th:if="${a.benefitGb == 'A'  or ( a.basDays > 0 and a.dcVal > 0)}">
+								<li th:if="${a.benefitGb == 'A'  and ( a.basDays > 0 and a.pntAmt > 0)}">
 									<div class="benfit_coupon">
 									<th:block th:if="${a.dcWay == '%'}">
 										<span th:text="${a.basDays}"></span>일 출석 시<br><span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span> + <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span> <strong>할인 쿠폰</strong>
@@ -346,6 +346,7 @@ var fnInfoConfirmCallBack = function(result) {
 };
 
 $(document).ready(function() {
+	$("#monthHead").html("<strong>"+month+"월</strong> 출석체크");
 	appendHtml();
 	
 	if (!cfCheckLogin()) {

+ 3 - 2
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -113,9 +113,10 @@
 
 <script th:inline="javascript">
 /*<![CDATA[*/
-	let fnGetPlanningList = function(cateNo) {
+	let fnGetPlanningList = function(cateNo,brandGroupNo) {
 		let actionUrl = '/planning/main/list';
 		if (!gagajf.isNull(cateNo)) actionUrl += '?cateNo=' + cateNo;
+		if (!gagajf.isNull(brandGroupNo)) actionUrl += '?brandGroupNo=' + brandGroupNo;
 		
 		$.getJSON(actionUrl	, function(result, status) {
 				if (status == 'success') {
@@ -185,7 +186,7 @@
 	}
 	
 	$(document).ready(function() {
-		fnGetPlanningList([[${cateNo}]]);
+		fnGetPlanningList([[${cateNo}]],[[${brandGroupNo}]]);
 	});
 /*]]>*/
 </script>

+ 0 - 2
src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html

@@ -194,8 +194,6 @@ if(planCornerList.length>0){
 				if (item2.dcRate != 0) {
 					html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
 				}
-				
-				
 				html += '                             </p>';
 				html += '                             <div class="itemcolorchip">';
 				if(!gagajf.isNull(item2.colorChips)){

+ 3 - 3
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -109,10 +109,10 @@ let fnGetSocialList = function(result) {
 	$.each(result.dataList, function(idx, item) {
 		
 		html += ' <div class="item_prod">';
-		if (item.stockQtySum == 0) {
-			html += '    <div class="item_state sold_out"> ';
-		}else{
+		if (item.stockQtySum > 0 || item.stockQtySum == null) {
 			html += '    <div class="item_state"> ';
+		}else{
+			html += '    <div class="item_state soldout"> ';
 		}
 		if (item.likeIt == 'likeit') {
 			html += '        <button type="button" class="itemLike active" onclick="cfnPutWishList(this);" onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';