Parcourir la source

Merge branch 'develop' into bin2107

bin2107 il y a 5 ans
Parent
commit
395ecea3e1
24 fichiers modifiés avec 411 ajouts et 163 suppressions
  1. 10 1
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  2. 14 18
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  3. 1 1
      src/main/java/com/style24/front/biz/web/TsfAppController.java
  4. 1 1
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  5. 1 0
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  6. 1 0
      src/main/java/com/style24/persistence/domain/Goods.java
  7. 11 1
      src/main/java/com/style24/persistence/domain/Plan.java
  8. 3 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  9. 20 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  10. 57 22
      src/main/webapp/WEB-INF/views/mob/app/NoticeFormMob.html
  11. 4 3
      src/main/webapp/WEB-INF/views/mob/app/SettingFormMob.html
  12. 12 12
      src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html
  13. 16 0
      src/main/webapp/WEB-INF/views/mob/customer/JoinCompleteFormMob.html
  14. 36 32
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCustSecedeFormMob.html
  15. 4 4
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html
  16. 3 3
      src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html
  17. 31 11
      src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html
  18. 15 8
      src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html
  19. 106 0
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  20. 0 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  21. 7 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustSecedeFormWeb.html
  22. 4 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  23. 40 18
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  24. 14 12
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

+ 10 - 1
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -264,7 +264,11 @@ public class TsfCustomerService {
 		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
 		customer.setCustGb(TscConstants.CustGb.NORMAL.value());
 		customer.setCustGrade(TscConstants.CustGrade.WELCOME.value());
-
+		// 앱이면 앱푸시 기본값으로 수신동의 처리
+		String isApp = TsfSession.getAttribute("isApp");
+		if ("true".equals(isApp)) {
+			customer.setAppAgreeYn("Y");
+		}
 		int custCnt = customerDao.createCustomer(customer);
 		customerDao.saveBatchBirth(customer);
 
@@ -298,6 +302,11 @@ public class TsfCustomerService {
 		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
 		customer.setCustGb(TscConstants.CustGb.NORMAL.value());
 		customer.setCustGrade(TscConstants.CustGrade.WELCOME.value());
+		// 앱이면 앱푸시 기본값으로 수신동의 처리
+		String isApp = TsfSession.getAttribute("isApp");
+		if ("true".equals(isApp)) {
+			customer.setAppAgreeYn("Y");
+		}
 
 		int custCnt = customerDao.createCustomer(customer);
 		customerDao.createCustomerSns(customer);

+ 14 - 18
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -1580,14 +1580,12 @@ public class TsfOrderService {
 						sb.append("\t\t\t</optionItem>\n");
 					}
 
-					sb.append("\t\t</option>\n");
-
 					// 세트 구성상품 모든 옵션 경우의 수 조회 > 상품코드 오름차순, OPTCD 오름차순으로 정확히 보낼것 > 주문요청된 manageCode가 같아야함.
 					for (Goods comps1 : compsInfoList) {
 						if(comps1.getRnum() == 1) {
 							// 구성상품별 옵션 정보
 							String[] goods1optCds = comps1.getOptCd().split(",");
-							String[] goods1addPrices = comps1.getItemStockQty().split(",");
+							String[] goods1addPrices = comps1.getItemPrices().split(",");
 							String[] goods1stockQty = comps1.getItemStockQty().split(",");
 
 							for(int g1 = 0 ; g1 < goods1optCds.length ; g1++) {
@@ -1601,7 +1599,7 @@ public class TsfOrderService {
 										if(comps2.getRnum() == 2) {
 											// 구성상품별 옵션 정보
 											String[] goods2optCds = comps2.getOptCd().split(",");
-											String[] goods2addPrices = comps2.getItemStockQty().split(",");
+											String[] goods2addPrices = comps2.getItemPrices().split(",");
 											String[] goods2stockQty = comps2.getItemStockQty().split(",");
 
 											// 기존 정보 저장 (다시 돌아올 경우 이전 번호까지의 정보로 리셋하기 위함)
@@ -1622,7 +1620,7 @@ public class TsfOrderService {
 														if (comps3.getRnum() == 3) {
 															// 구성상품별 옵션 정보
 															String[] goods3optCds = comps3.getOptCd().split(",");
-															String[] goods3addPrices = comps3.getItemStockQty().split(",");
+															String[] goods3addPrices = comps3.getItemPrices().split(",");
 															String[] goods3stockQty = comps3.getItemStockQty().split(",");
 
 															// 기존 정보 저장 (다시 돌아올 경우 이전 번호까지의 정보로 리셋하기 위함)
@@ -1643,7 +1641,7 @@ public class TsfOrderService {
 																		if (comps4.getRnum() == 4) {
 																			// 구성상품별 옵션 정보
 																			String[] goods4optCds = comps4.getOptCd().split(",");
-																			String[] goods4addPrices = comps4.getItemStockQty().split(",");
+																			String[] goods4addPrices = comps4.getItemPrices().split(",");
 																			String[] goods4stockQty = comps4.getItemStockQty().split(",");
 
 																			// 기존 정보 저장 (다시 돌아올 경우 이전 번호까지의 정보로 리셋하기 위함)
@@ -1662,7 +1660,7 @@ public class TsfOrderService {
 																						if (comps5.getRnum() == 5) {
 																							// 구성상품별 옵션 정보
 																							String[] goods5optCds = comps5.getOptCd().split(",");
-																							String[] goods5addPrices = comps5.getItemStockQty().split(",");
+																							String[] goods5addPrices = comps5.getItemPrices().split(",");
 																							String[] goods5stockQty = comps5.getItemStockQty().split(",");
 
 																							// 기존 정보 저장 (다시 돌아올 경우 이전 번호까지의 정보로 리셋하기 위함)
@@ -1706,6 +1704,8 @@ public class TsfOrderService {
 						}
 					}
 
+					sb.append("\t\t</option>\n");
+
 					// 10. 배송정보조회
 					// 5.2.1 업체별 기본배송비, 무료배송비
 					String delvFeeCd = "";
@@ -1805,22 +1805,18 @@ public class TsfOrderService {
 					sb.append("\t\t<option>\n");
 
 					// 상품 옵션 전체 정보 조회
-					Collection<GoodsStock> optList = goodsDao.getGoodsOptionInfoList(opt);
+					List<GoodsStock> optList = (ArrayList<GoodsStock>) goodsDao.getGoodsOptionInfoList(opt);
 
 					String[] colorNmList = new String[optList.size()];
-					String[] colorList = new String[optList.size()];
 					String[] sizeList = new String[optList.size()];
 					int count = 0;
 
 					// 중복제거
 					for(GoodsStock optInfo : optList) {
-						colorNmList[count] = optInfo.getColorNm();
-						colorList[count] = optInfo.getOptCd1();
-						sizeList[count] = optInfo.getOptCd2();
-						count++;
+						colorNmList[count] = optInfo.getOptCd1() + "/" + optInfo.getColorNm();
+						sizeList[count++] = optInfo.getOptCd2();
 					}
 					colorNmList = new HashSet<String>(Arrays.asList(colorNmList)).toArray(new String[0]);
-					colorList = new HashSet<String>(Arrays.asList(colorList)).toArray(new String[0]);
 					sizeList = new HashSet<String>(Arrays.asList(sizeList)).toArray(new String[0]);
 
 					if("Y".equals(goods.getSelfGoodsYn())) {
@@ -1829,11 +1825,11 @@ public class TsfOrderService {
 						sb.append("\t\t\t<optionItem>\n");
 						sb.append("\t\t\t\t<type>SELECT</type>\n");
 						sb.append("\t\t\t\t<name>색상</name>\n");
-						int j = 0;
-						for (String color : colorList) {
+						for (String color : colorNmList) {
+							String[] optCd1Info = color.split("/");
 							sb.append("\t\t\t\t<value>\n");
-							sb.append("\t\t\t\t\t<id>").append(color).append("</id>\n");
-							sb.append("\t\t\t\t\t<text>").append(colorNmList[j++]).append("</text>\n");
+							sb.append("\t\t\t\t\t<id>").append(optCd1Info[0]).append("</id>\n");
+							sb.append("\t\t\t\t\t<text>").append(optCd1Info[1]).append("</text>\n");
 							sb.append("\t\t\t\t</value>\n");
 						}
 						sb.append("\t\t\t</optionItem>\n");

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

@@ -105,7 +105,7 @@ public class TsfAppController extends TsfBaseController {
 	}
 
 	/**
-	 * 앱 설정 화면
+	 * 앱알림 화면
 	 *
 	 * @author jsshin
 	 * @since 2020. 5. 11

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

@@ -643,7 +643,7 @@ public class TsfCustomerController extends TsfBaseController {
 		String maskingCustId = TsfSession.getAttribute("maskingCustId");
 
 		mav.addObject("maskingCustId", maskingCustId);
-
+		mav.addObject("custNo", TsfSession.getInfo().getCustNo());
 		mav.setViewName(super.getDeviceViewName("customer/JoinCompleteForm"));
 
 		return mav;

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

@@ -527,6 +527,7 @@ public class TsfOrderController extends TsfBaseController {
 		mav.addObject("isLogin"				, TsfSession.isLogin());					// 로그인여부
 		
 		// 4.2 할인정보(상품금액, 즉시할인, 다다익선, 선포인트, 적립예정포인트) 
+		mav.addObject("listSumAmt"			, goodsDcAmtMap.get("listSumAmt"));			// 상품금액합계
 		mav.addObject("orgGoodsSumAmt"		, goodsDcAmtMap.get("orgGoodsSumAmt"));		// 상품금액합계
 		mav.addObject("goodsDcSumAmt"		, goodsDcAmtMap.get("goodsDcSumAmt"));		// 상품할인금액(정상가-판매가)
 		mav.addObject("cpn1DcSumAmt"		, goodsDcAmtMap.get("cpn1DcSumAmt"));		// 즉시할인금액합계

+ 1 - 0
src/main/java/com/style24/persistence/domain/Goods.java

@@ -183,6 +183,7 @@ public class Goods extends TscBaseDomain {
 	private String remainDt;		// 리뷰 남아있는시간
 	private String brandEnm;
 	private String brandKnm;
+	private String itemPrices;		// 구성상품 금액 모음
 	private Integer ordNo;			// 주문번호
 	private Integer ordDtlNo;		// 주문상세번호
 	private Integer rnum;

+ 11 - 1
src/main/java/com/style24/persistence/domain/Plan.java

@@ -185,7 +185,17 @@ public class Plan extends TscBaseDomain {
 	private String reviewDispStdt;		//리뷰노출시작일시
 	private String reviewDispEddt;		//리뷰노툴종료일시
 	private String linkOpenGb;			//링크 본창 새창
-
+	private String cpnNote0;
+	private String cpnNote1;
+	private String cpnNote2;
+	private String cpnNote3;
+	private String cpnNote4;
+	private String cpnNote5;
+	private String cpnNote6;
+	private String cpnNote7;
+	private String cpnNote8;
+	private String cpnNote9;
+	
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] multiPlanReview;		//리뷰상품목록
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

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

@@ -225,7 +225,7 @@
 		     , CASE WHEN VS.DISP_YN = 'Y' AND VS.SOLDOUT_YN = 'N' THEN VS.CURR_STOCK_QTY ELSE 0 END AS STOCK_QTY
 		FROM   VW_STOCK VS
 		WHERE  VS.GOODS_CD = #{goodsCd}
-		ORDER  BY VS.DISP_ORD
+		ORDER  BY VS.OPT_CD
 	</select>
 	
 	<!-- 핫딜 상품 조회 -->
@@ -3095,7 +3095,7 @@
 		     , A.GOODS_NM
 		     , A.OPT_CD
 		     , A.OPT_CD2
-		     , A.ADD_PRICE
+		     , A.ITEM_PRICES
 		     , A.ITEM_STOCK_QTY
 		     , A.COLOR_NM
 		FROM (SELECT GC.GOODS_CD
@@ -3103,7 +3103,7 @@
 		           , G.GOODS_NM
 		           , GROUP_CONCAT(VS.OPT_CD ORDER BY VS.OPT_CD ASC) AS OPT_CD
 		           , GROUP_CONCAT(VS.OPT_CD2 ORDER BY VS.OPT_CD ASC) AS OPT_CD2
-		           , GROUP_CONCAT(VS.ADD_PRICE ORDER BY VS.OPT_CD ASC) AS ADD_PRICE
+		           , GROUP_CONCAT(VS.ADD_PRICE ORDER BY VS.OPT_CD ASC) AS ITEM_PRICES
 		           , GROUP_CONCAT(TRUNCATE(VS.CURR_STOCK_QTY / GC.QTY, 0) ORDER BY VS.OPT_CD ASC) AS ITEM_STOCK_QTY
 		           , GROUP_CONCAT(IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(VS.OPT_CD1,'') , VS.OPT_CD1 ) AND USE_YN  = 'Y'), VS.OPT_CD1) ORDER BY VS.OPT_CD ASC) AS COLOR_NM
 		      FROM   TB_GOODS_COMPOSE GC

+ 20 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -612,7 +612,6 @@
 		     , TITLE 
 		     , LINK_URL
 		     , LINK_OPEN_GB
-		     , NOTE 
 		     , DISP_YN 
 		FROM TB_PLAN_CONTENTS TPC 
 		WHERE 1=1 
@@ -788,8 +787,17 @@
 		      ,C.MAX_DC_AMT 
 		      ,C.CPN_STAT 
 		      ,C.REG_DT
-		      ,PC.NOTE 
 		      ,PC.TITLE
+		      ,PC.CPN_NOTE0
+		      ,PC.CPN_NOTE1
+		      ,PC.CPN_NOTE2
+		      ,PC.CPN_NOTE3
+		      ,PC.CPN_NOTE4
+		      ,PC.CPN_NOTE5
+		      ,PC.CPN_NOTE6
+		      ,PC.CPN_NOTE7
+		      ,PC.CPN_NOTE8
+		      ,PC.CPN_NOTE9
 		      , IFNULL((SELECT COUNT(1) FROM TB_CUST_COUPON WHERE CPN_ID = C.CPN_ID AND CUST_NO = #{custNo}),0) AS CUST_COUPON_CNT
 		      , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
 		                   ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
@@ -841,8 +849,17 @@
 		           ,C.TOT_PUB_LIMIT_QTY
 		           ,C.MAX_DC_AMT
 		           ,C.REG_DT
-		           ,PC.NOTE 
 		           ,PC.TITLE
+		           ,PC.CPN_NOTE0
+		           ,PC.CPN_NOTE1
+		           ,PC.CPN_NOTE2
+		           ,PC.CPN_NOTE3
+		           ,PC.CPN_NOTE4
+		           ,PC.CPN_NOTE5
+		           ,PC.CPN_NOTE6
+		           ,PC.CPN_NOTE7
+		           ,PC.CPN_NOTE8
+		           ,PC.CPN_NOTE9
 		)Z
 	  ORDER BY  Z.REG_DT DESC ,Z.AVAIL_EDDT ASC LIMIT 10
 	</select>

+ 57 - 22
src/main/webapp/WEB-INF/views/mob/app/NoticeFormMob.html

@@ -20,35 +20,70 @@
 <th:block layout:fragment="content">
 <main class="container app-only">
 	<!-- ★ 컨텐츠 시작 -->
-	<section class="notice">
-		<!--<section class="notice nodata">--><!-- 데이터 없을 경우, .nodata 추가 -->
-			<!-- 컨텐츠 추가 시, .inner 반복합니다 -->
-			<div class="inner">
-				<a href="javascript:void(0);">
-					<dl>
-						<dt class="tit">쇼핑백 미구매 상품</dt>
-						<dd class="cont_txt">쇼핑백에 아직도 구매하지 않은 상품이 있습니다. 스타일24를 방문하여 상품을 확인해주세요.</dd>
-						<dd class="cont_img"><img src="/images/mo/thumb/thumb_notice1.jpg" alt="공지 이미지 예제 1"></dd>
-						<dd class="cont_data"><span>2021.03.08</span></dd>
-					</dl>
-				</a>
-			</div>
-			<div class="inner">
-				<a href="javascript:void(0);">
-					<dl>
-						<dt class="tit">한파주의! 지금 입으면 딱 좋은 상품 모음 한파주의! 지금 입으면 딱 좋은 상품 모음  긴글 예제  긴글 예제  긴글 예제</dt>
-						<dd class="cont_txt">(광고) 올 겨울 필수템! 롱패딩 기획전! 지금 확인해 보세요. (광고) 올 겨울 필수템! 롱패딩 기획전! 지금 확인해 보세요. 긴글 예제 긴글 예제</dd>
-						<dd class="cont_data"><span>2021.03.08</span></dd>
-					</dl>
-				</a>
-			</div>
+	<section id="notice" class="notice">
 	</section>
 	<!-- ★ 컨텐츠 종료 -->
 </main>
 <script th:inline="javascript">
+
+
 	$(document).ready(function(){
 		$('#htopTitle').text('알림함');
+			if (_isApp === 'true') {
+				if (_osType === 'A') {
+					 window.style24.getPushList();
+				} else if (_osType === 'I') {
+
+				}
+			}
 	});
+
+	var pushListInfo = function (pushList) {
+		if (!gagajf.isNull(pushList)) {
+			let pushListJosn = JSON.parse(pushList);
+
+			let html = '';
+			$.each(pushListJosn.pushList, function(idx, item) {
+				html += '<div class="inner">\n';
+				html += '    <a href="'+item.link+'">\n';
+				html += '        <dl>\n';
+				html += '            <dt class="tit">\n';
+				html += item.title;
+				html += '            </dt>\n'
+				html += '            <dd class="cont_txt">\n';
+				html += item.content;
+				html += '            </dd>\n';
+				if (!gagajf.isNull(item.imgUrl)) {
+					html += '            <dd class="cont_img">\n';
+					html += '                <img src="'+ item.imgUrl +'" />\n';
+					html += '            </dd>\n';
+				}
+				html += '            <dd class="cont_data">\n';
+				html += '                <span>\n';
+				html += fnDisplayDate(item.date);
+				html += '                </span>\n';
+				html += '            </dd>\n'
+				html += '        </dl>\n'
+				html += '    </a>';
+				html += '</div>\n'
+			});
+			$('#notice').html(html);
+		} else {
+			$('#notice').addClass('nodata');
+		}
+	}
+	
+	var fnDisplayDate = function (date) {
+		let resultDate = '';
+		if(!gagajf.isNull(date)) {
+			let year = date.substring(0, 4);
+			let month = date.substring(4, 6);
+			let day = date.substring(6, 8);
+			resultDate = year+'.'+month+'.'+day;
+		}
+		return resultDate;
+	}
+
 </script>
 
 </th:block>

+ 4 - 3
src/main/webapp/WEB-INF/views/mob/app/SettingFormMob.html

@@ -111,7 +111,8 @@
 				window.style24.isPushEnable(); // 정보성(푸시수신 API) settingsSwtichPush
 				window.style24.isAdEnable();   // 마케팅성(광고푸시 API) settingsSwtichAdvertise
 			} else if (_osType === 'I') {
-				// 아래와 같이 호출 시 settingsSwtichPush 함수가 앱에서 호출됨
+				// 아래와 같이 호출 시 settingsSwtichPush, settingsSwtichAdvertise 함수가 앱에서 호출됨
+				window.webkit.messageHandlers.isPushEnable.postMessage({"dummy":"dummy"});
 				window.webkit.messageHandlers.isAdEnable.postMessage({"dummy":"dummy"});
 			}
 		}
@@ -162,7 +163,7 @@
 				if (_osType === 'A') {
 					window.style24.pushEnable('ON');
 				} else if (_osType == 'I') {
-					window.webkit.messageHandlers.adEnable.postMessage({"status":"ON"});
+					window.webkit.messageHandlers.pushEnable.postMessage({"status":"ON"});
 				}
 				appAgreeYn = 'Y';
 			} else {
@@ -170,7 +171,7 @@
 					window.style24.pushEnable('OFF');
 					window.style24.adEnable('OFF'); // 정보성 푸시가 상위 개념이라 마케팅도 같이 OFF가 되어여함
 				} else if(_osType === 'I') {
-					window.webkit.messageHandlers.adEnable.postMessage({"status":"OFF"});
+					window.webkit.messageHandlers.pushEnable.postMessage({"status":"OFF"});
 				}
 				appAgreeYn = 'N';
 			}

+ 12 - 12
src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html

@@ -85,17 +85,17 @@
 	
 	// 브랜드 GNB탭 생성
 	let fnCreateBrandGnbTab = function() {
+		$('#ulGnbTab').html('');
+		
+		let tag = '';
+		tag += '<ul>\n';
+		tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToBrandMain(' + [[${brandGroupInfo?.brandGroupNo}]] + ');" class="on">홈</a></li>\n';
+		tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + [[${brandGroupInfo?.brandGroupNo}]] + ',\'' + [[${brandGroupInfo?.cateGb}]] + '\');" class="on">상품</a></li>\n';
+		
 		$.getJSON('/display/brand/gnb/tab/list?brandGroupNo=' + [[${brandGroupInfo?.brandGroupNo}]]
 			, function(result, status) {
 				if (status == 'success') {
 					if (result.length > 0) {
-						$('#ulGnbTab').html('');
-						
-						let tag = '';
-						tag += '<ul>\n';
-						tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToBrandMain(' + [[${brandGroupInfo?.brandGroupNo}]] + ');" class="on">홈</a></li>\n';
-						tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + [[${brandGroupInfo?.brandGroupNo}]] + ',\'' + [[${brandGroupInfo?.cateGb}]] + '\');" class="on">상품</a></li>\n';
-						
 						$.each(result, function(idx, item) {
 							if (item.contentsType == 'L') { // 컨텐츠유형:링크
 								tag += '<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>\n';
@@ -103,14 +103,14 @@
 								tag += '<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>\n';
 							}
 						});
-						
-						tag += '</ul>\n';
-						tag += '<button>+</button>';
-						
-						$('#ulGnbTab').html(tag);
 					}
 				}
 			});
+		
+		tag += '</ul>\n';
+		tag += '<button>+</button>';
+		
+		$('#ulGnbTab').html(tag);
 	}
 	
 	// GNB탭 생성

+ 16 - 0
src/main/webapp/WEB-INF/views/mob/customer/JoinCompleteFormMob.html

@@ -90,6 +90,22 @@
 		</section>
 		<!-- ★ 컨텐츠 종료 -->
 	</main>
+<script th:inline="javascript">
+	const maskingCustId = [[${maskingCustId}]];
+
+	$(document).ready(function(){
+		if (_isApp === 'true') {
+			if (gagajf.isNull(maskingCustId)) {
+				document.location.href = "idsend://?id=" + [[${custNo}]] + "^link=";
+				if (_osType === 'A') {
+					window.style24.pushEnable('ON');
+				} else if (_osType === 'I') {
+					window.webkit.messageHandlers.pushEnable.postMessage({"status":"ON"});
+				}
+			}
+		}
+	});
+</script>
 </th:block>
 </body>
 </html>

+ 36 - 32
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustSecedeFormMob.html

@@ -91,36 +91,37 @@
 
 		</div>
 		<form id="secedeCustForm" class="form_wrap" action="/mypage/customer/secede/complete/form" method="post">
-		<div class="inner">
-			<div class="titWrap">
-				<div class="">보안을 위해 회원님의<br>아이디 및 비밀번호를 다시 확인 합니다.</div>
-			</div>
-				<div class="tblWrap">
-					<div class="tbl">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>
-							<tbody>
-								<tr>
-									<td>
-										<div class="form_field">
-											<input type="text" id="custId" name="custId" class="form_control" readonly="readonly"/>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<div class="form_field">
-											<input type="password" id="passwd" name="passwd" class="form_control" placeholder="비밀번호를 입력해주세요." minlength="8" maxlength="20"/>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
+			<div class="inner">
+				<div class="titWrap">
+					<div class="">보안을 위해 회원님의<br>아이디 및 비밀번호를 다시 확인 합니다.</div>
 				</div>
-		</div>
+					<div class="tblWrap">
+						<div class="tbl">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>
+								<tbody>
+									<tr>
+										<td>
+											<div class="form_field">
+												<input type="text" id="custId" name="custId" class="form_control" readonly="readonly"/>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<td>
+											<div class="form_field">
+												<input type="password" id="passwd" name="passwd" class="form_control" placeholder="비밀번호를 입력해주세요." minlength="8" maxlength="20"/>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+					</div>
+			</div>
+		</form>
 		<div class="inner">
 			<div class="announce_txt">
 				<div class="announce_list">
@@ -132,7 +133,7 @@
 					</ul>
 				</div>
 			</div>
-			<div class="check_box">
+			<div id="checkSecedeDiv" class="check_box">
 				<div class="form_field">
 					<div>
 						<input type="checkbox" name="checkSecede" id="checkSecede" value="Y">
@@ -143,7 +144,6 @@
 				</div>
 			</div>
 		</div>
-		</form>
 		<div class="inner">
 			<div class="goods_btn_wrap btn_group_flex">
 				<div>
@@ -171,6 +171,7 @@
 		let $btnConfirm = $('#btnConfirm');
 		let $secedeCustForm = $('#secedeCustForm');
 		let $subH3 = $('.subH3');
+		let $checkSecedeDiv = $('#checkSecedeDiv');
 
 		let isPossible = true;
 
@@ -228,12 +229,14 @@
 			$btnConfirm.hide();
 			$leaveIncomplete.hide();
 			$btnSaveSecede.show();
+			$checkSecedeDiv.show();
 		} else {
 			$subH3.hide();
 			$secedeCustForm.hide();
 			$btnSaveSecede.hide();
 			$leaveIncomplete.show();
 			$btnConfirm.show();
+			$checkSecedeDiv.hide();
 		}
 
 
@@ -241,6 +244,7 @@
 
 	$('#btnSaveSecede').on('click', function () {
 		let secedeCustInfo = $('#secedeCustForm').serializeObject();
+		let $checkSecede = $('#checkSecede');
 
 		if (gagajf.isNull(secedeCustInfo.passwd)) {
 			mcxDialog.alertC('비밀번호를 입력해주세요.',{
@@ -252,7 +256,7 @@
 			return;
 		}
 
-		if (gagajf.isNull(secedeCustInfo.checkSecede)) {
+		if (!$checkSecede.is(':checked')) {
 			mcxDialog.alertC('회원탈퇴 처리사항 안내에 동의해주세요.',{
 				sureBtnText: "확인",
 				sureBtnClick: function() {

+ 4 - 4
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html

@@ -303,7 +303,7 @@ let reviewAttach = [[${alreadyReviewAttach}]];
 
 //별점 class="on"
 var $starEls = $('#star_grade button#starBtn');
-var rate = 0;
+var rate = 1;
 
 $starEls.each(function (index, el) {
     $(el).on('click', function () {
@@ -322,7 +322,7 @@ function rating(score) {
         }
     });
 
-    rate = score + 1;
+    rate = score;
 }
 
 // 리뷰  취소
@@ -492,9 +492,9 @@ $(function(){
 	}
 	
 	 if(reviewStat=='u'){
-		 var reviewScore = reviewList.score-1;
+		 var reviewScore = reviewList.score;
 		 $("#score").val(reviewScore);
-		 rating(reviewScore);
+		 rating(reviewScore-1);
 		$("#reviewForm input[name=height]").val(reviewList.height);
 		$("#reviewForm input[name=weight]").val(reviewList.weight);
 		$("#reviewForm textarea[name=reviewContent]").val(reviewList.reviewContent.escapeHtml());

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -970,11 +970,11 @@ var paymentInfoSet = function() {
 				$("#orderForm .area_paymethod .agree_insurance").hide();
 				$("#orderForm .area_paymentinfo .agree1").hide();
 				if (delvCnt > 0) {
-					$("#orderForm .area_paymentinfo. paymentinfo").show();
+					$("#orderForm .area_paymentinfo .paymentinfo").show();
 				} else {
 					$("#orderForm .area_paymentinfo .paymentinfo").hide();
 				}
-				
+
 				// 결재하기
 				$("#btn_payment").on("click", function(){
 					// 사은품정보
@@ -1970,7 +1970,7 @@ var custCpnApply = function(obj, idx, cpnType) {
 				$('#orderForm .'+payType).attr("disabled", false);
 			});
 		} else {
-			//$("#orderForm input[name=rdi-paynormal]").attr("disabled", false);
+			$("#orderForm input[name=rdi-paynormal]").attr("disabled", false);
 		}
 		
 		// 선택안함

+ 31 - 11
src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html

@@ -896,17 +896,37 @@ if(coupon.length>0){
 	});
 	html += '		</ul>\n';
 	html += '	</div>\n';
-	html += '	<div class="announce_txt">\n';
-	html += '		<div class="note_txt">\n';
-	html += '			<img src="/images/mo/ico_content_find.png" alt="유의사항">\n';
-	html += '			<p>유의사항</p>\n';
-	html += '		</div>\n';
-	html += '		<div class="announce_list">\n';
-	html += '			<ul>\n';
-	html += coupon[0].note;
-	html += '			</ul>\n';
-	html += '		</div>\n';
-	html += '	</div>\n';
+	if (coupon[0].cpnNote0 != null && coupon[0].cpnNote0 != '') {
+		html += '	<div class="announce_txt">\n';
+		html += '		<div class="note_txt">\n';
+		html += '			<img src="/images/mo/ico_content_find.png" alt="유의사항">\n';
+		html += '			<p>유의사항</p>\n';
+		html += '		</div>\n';
+		html += '		<div class="announce_list">\n';
+		html += '			<ul>\n';
+		html += '                  <li>' + coupon[0].cpnNote0 +'</li>\n';
+		if(coupon[0].cpnNote1 != null && coupon[0].cpnNote1 != '')
+			html += '                  <li>' + coupon[0].cpnNote1 +'</li>\n';
+		if(coupon[0].cpnNote2 != null && coupon[0].cpnNote2 != '')
+			html += '                  <li>' + coupon[0].cpnNote2 +'</li>\n';
+		if(coupon[0].cpnNote3 != null && coupon[0].cpnNote3 != '')
+			html += '                  <li>' + coupon[0].cpnNote3 +'</li>\n';	
+		if(coupon[0].cpnNote4 != null && coupon[0].cpnNote4 != '')
+			html += '                  <li>' + coupon[0].cpnNote4 +'</li>\n';
+		if(coupon[0].cpnNote5 != null && coupon[0].cpnNote5 != '')
+			html += '                  <li>' + coupon[0].cpnNote5 +'</li>\n';
+		if(coupon[0].cpnNote6 != null && coupon[0].cpnNote6 != '')
+			html += '                  <li>' + coupon[0].cpnNote6 +'</li>\n';
+		if(coupon[0].cpnNote7 != null && coupon[0].cpnNote7 != '')
+			html += '                  <li>' + coupon[0].cpnNote7 +'</li>\n';
+		if(coupon[0].cpnNote8 != null && coupon[0].cpnNote8 != '')
+			html += '                  <li>' + coupon[0].cpnNote8 +'</li>\n';
+		if(coupon[0].cpnNote9 != null && coupon[0].cpnNote9 != '')
+			html += '                  <li>' + coupon[0].cpnNote9 +'</li>\n';
+		html += '			</ul>\n';
+		html += '		</div>\n';
+		html += '	</div>\n';
+	}
 	html += '</div>\n';
 		
 	$("#G082_20").append(html);

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

@@ -115,18 +115,18 @@
 						</div>
 					</div>
 				</div>
-				<div class="inner">
-					<div class="announce_txt " th:if="${fsrcInfoTop != null}"> 
+				<div class="inner" style="display: none;" id="noticeDiv">
+					<div class="announce_txt "> 
 						<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;','>')}">
-							<!-- <ul>
-								<li>본 이벤트는 ID당 1회만 참여 가능합니다.</li>
-								<li>설문조사 참여 시 포인트를 지급해드립니다. (이벤트 종료 후, 일괄 지급)</li>
-								<li>지급된 포인트는 [ 마이페이지 > 나의 지갑 ] 메뉴에서 확인할 수 있습니다.</li>
-							</ul> -->
+						<div class="announce_list">
+							<ul>
+							<th:block th:each="a, notice : ${noticeInfo}">
+								<li th:text="${a.itemVal}"></li>
+							</th:block>
+							</ul>
 						</div>
 					</div>
 				</div>
@@ -203,6 +203,7 @@ let date = today.getDate();
 let month =today.getMonth()+1;
 let calendar = [[${month}]];
 let planInfo = [[${planInfo}]];
+let noticeInfo = [[${noticeInfo}]];
 var custAttendList = [[${custAttendList}]];
 var appendHtml = function () {
 	
@@ -318,6 +319,12 @@ $(document).ready(function() {
 	$("#monthHead").html("<strong>"+month+"월</strong> 출석체크");
 	appendHtml();
 	
+	if (noticeInfo.length>0) {
+		$("#noticeDiv").show();
+	}else{
+		$("#noticeDiv").hide();
+	}
+	
 	if (!cfCheckLogin()) {
 		$(".day").html("<span>0</span>일");
 	}else{

+ 106 - 0
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -20,6 +20,7 @@
 <th:block layout:fragment="content">
 <script src="/ux/pc/js/ion.rangeSlider.min.js"></script>
 <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
+<form id="nPayForm" name="nPayForm"></form>
 <div id="container" class="container pd deal" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 	<div class="wrap">
 		<!-- 상품 대표설명 -->
@@ -250,6 +251,111 @@
 								</th:block>
 								</div>
 							</div>
+
+							<div style="margin-top:10px;">
+								<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
+									<script type="text/javascript" src="https://pay.naver.com/customer/js/naverPayButton.js" charset="UTF-8"></script>
+									<script type="text/javascript" >
+										/*버튼설정*/
+										naver.NaverPayButton.apply({
+											BUTTON_KEY              : "[[${buttonKey}]]",       // 네이버페이에서 제공받은 버튼 인증 키 입력
+											TYPE                    : "C",                      // 버튼 모음 종류 설정
+											COLOR                   : 1,                        // 버튼 모음의 색 설정
+											COUNT                   : 1,                        // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
+											ENABLE                  : "Y",                      // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
+											BUY_BUTTON_HANDLER      : buy_nc,                   // 구매하기 버튼 이벤트 Handler 함수 등록, 품절인 경우 not_buy_nc 함수 사용
+											"":""
+										});
+
+										/*네이버구매하기*/
+										function buy_nc(url) {
+											// 자사 일반 상품 정보
+											let compsList = [];
+
+											$("#cartForm .result_item input[name=cea]").each(function() {
+												let dealGoodsCd = "[[${goodsInfo.goodsCd}]]";
+												let goodsType = "[[${goodsInfo.goodsType}]]";
+												let goodsCd = $(this).parent().find("input[name=coption]").attr("goodscd");
+												let optCd = $(this).attr("optcd");
+												let goodsQty = $(this).val();
+
+												if (!goodsCd) {
+													mcxDialog.alert("상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
+													return false;
+												}
+
+												if (!goodsQty || goodsQty < 1) {
+													mcxDialog.alert("구매 수량을 확인해주세요.");      /*수량*/
+													return false;
+												}
+
+												if (!optCd) {
+													mcxDialog.alert("상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요.");   /*옵션*/
+													return false;
+												}
+
+												var obj = new Object();
+												obj.cartGb = "N";
+												obj.goodsType = goodsType;
+												obj.goodsCd = goodsCd;
+												obj.optCd = optCd;
+												obj.goodsQty = goodsQty;
+												obj.dealGoodsCd = $("#cartForm  input[name=goodsCd]").val();
+												obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
+												obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
+												obj.contentsLoc =$("#cartForm  input[name=contentsLoc]").val();
+												obj.planDtlSq = $("#cartForm  input[name=planDtlSq]").val();
+												compsList.push(obj);
+											});
+
+											// 장바구니담기
+											cfnAddCart(compsList);
+
+											return false;
+										}
+
+										function buy_nc_req(cartSqArr) {
+											let data = {  cartSqArr : cartSqArr
+												, backUrl : location.href
+												, goodsUrl : _PAGE_GOODS_DETAIL
+											};
+											let jsonData = JSON.stringify(data);
+
+											$.ajax( {
+												type		: "POST",
+												url 		: "/pg/nPayReq",
+												dataType 	: 'json',
+												data		: jsonData,
+												beforeSend : function(xhr, settings) {
+													xhr.setRequestHeader("AJAX"			, "true");
+													xhr.setRequestHeader('Accept'		, 'application/json');
+													xhr.setRequestHeader('Content-Type'	, 'application/json');
+												},
+												error: function(xhr, status, error) {
+													mcxDialog.alert(status + '; ' + error);
+												},
+												success : function(result) {
+													if (result.state == "sucess") {
+														window.open('about:blank', 'popupView');
+														document.nPayForm.target = 'popupView';
+														document.nPayForm.action = result.npayOrderUrl + "/" + result.orderKey + "/" + result.resultNo;
+														document.nPayForm.submit();
+													} else {
+														mcxDialog.alert(result.message);
+													}
+												}
+											});
+										}
+
+										<!-- 구매불가 -->
+										function not_buy_nc() {
+											mcxDialog.alert("죄송합니다. 네이버페이로 구매가 불가한 상품입니다.");
+											return false;
+										}
+										//]]>
+									</script>
+								</th:block>
+							</div>
 						</div>
 					</div>
 					</form>

+ 0 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -431,8 +431,6 @@
 												// 장바구니담기
 												cfnAddCart(compsList);
 											} else {
-												// TODO 세트상품 추가 예정
-												//alert("개발 중");
 												let itemCds = [];
 												let optCds = [];
 												$("#cartForm .area_desc .option_box .opt_set_select .item_opt2 .list>li").each(function() {

+ 7 - 4
src/main/webapp/WEB-INF/views/web/mypage/MypageCustSecedeFormWeb.html

@@ -121,6 +121,7 @@
 								</tr>
 							</table>
 						</div>
+						</form>
 						<div class="com_info_txt">
 							<p class="tit">회원 탈퇴 안내</p>
 							<ul>
@@ -130,7 +131,7 @@
 								<li>회원 탈퇴 후 STYLE24에 입력하신 상품문의 및 후기,댓글은 삭제되지 않으며,회원정보 삭제로 인해 작성자 본인을 확인 할 수 없어<br>편집 및 삭제처리가 원천적으로 불가능 합니다. 상품문의 및 후기, 댓글 삭제를 원하시는 경우에는 먼저 해당 게시물을 삭제하신 후 탈퇴를 신청하시기 바랍니다.</li>
 								<li>진행중인 주문/취소/반품/교환건이 있을 경우에는 탈퇴가 되지 않습니다.</li>
 							</ul>
-							<div class="check_box">
+							<div id="checkSecedeDiv" class="check_box">
 								<div class="form_field">
 									<div>
 										<input type="checkbox" id="checkSecede" name="checkSecede" value="Y"/>
@@ -141,7 +142,6 @@
 								</div>
 							</div>
 						</div>
-					</form>
 				</div>
 				<div class="btn_footer_area">
 					<button type="button" id="btnSaveSecede" class="btn btn_dark btn_md hide">
@@ -167,6 +167,7 @@
 		let $btnConfirm = $('#btnConfirm');
 		let $secedeCustForm = $('#secedeCustForm');
 		let $subH3 = $('.subH3');
+		let $checkSecedeDiv = $('#checkSecedeDiv');
 
 		let isPossible = true;
 
@@ -224,12 +225,14 @@
 			$btnConfirm.hide();
 			$leaveIncomplete.hide();
 			$btnSaveSecede.show();
+			$checkSecedeDiv.show();
 		} else {
 			$subH3.hide();
 			$secedeCustForm.hide();
 			$btnSaveSecede.hide();
 			$leaveIncomplete.show();
 			$btnConfirm.show();
+			$checkSecedeDiv.hide();
 		}
 
 
@@ -237,7 +240,7 @@
 
 	$('#btnSaveSecede').on('click', function () {
 		let secedeCustInfo = $('#secedeCustForm').serializeObject();
-
+		let $checkSecede = $('#checkSecede');
 		if (gagajf.isNull(secedeCustInfo.passwd)) {
 			mcxDialog.alertC('비밀번호를 입력해주세요.',{
 				sureBtnText: "확인",
@@ -248,7 +251,7 @@
 			return;
 		}
 
-		if (gagajf.isNull(secedeCustInfo.checkSecede)) {
+		if (!$checkSecede.is(':checked')) {
 			mcxDialog.alertC('회원탈퇴 처리사항 안내에 동의해주세요.',{
 				sureBtnText: "확인",
 				sureBtnClick: function() {

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

@@ -385,7 +385,7 @@ let reviewAttach = [[${alreadyReviewAttach}]];
 
 // 별점 class="on"
 var $starEls = $('#star button#starBtn');
-var rate = 0;
+var rate = 1;
 
 $starEls.each(function (index, el) {
     $(el).on('click', function () {
@@ -403,7 +403,7 @@ function rating(score) {
         }
     });
 
-    rate = score + 1;
+    rate = score;
 }
 
 // 리뷰  취소
@@ -637,9 +637,9 @@ $(document).ready(function() {
 	}
 	
 	 if(reviewStat=='u'){
-		 var reviewScore = reviewList.score-1;
+		 var reviewScore = reviewList.score;
 		 $("#score").val(reviewScore);
-		 rating(reviewScore);
+		 rating(reviewScore-1);
 		$("#reviewForm input[name=height]").val(reviewList.height);
 		$("#reviewForm input[name=weight]").val(reviewList.weight);
 		$("#reviewForm textarea[name=reviewContent]").val(reviewList.reviewContent.escapeHtml());

+ 40 - 18
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -753,24 +753,46 @@ if(coupon.length>0){
 	html += '		</ul>\n';
 	html += '	</div>\n';
 	html += '</div>\n';
-	html += '<div class="content dp_announce line">\n                                                 ';
-	html += '    <div class="cont_head">\n                                                       ';
-	html += '        <div>\n                                                                     ';
-	html += '            <h4>유의사항</h4>\n                                                         ';
-	html += '        </div>\n                                                                    ';
-	html += '    </div>\n                                                                        ';
-	html += '    <div class="cont_body">\n                                                       ';
-	html += '        <div class="announce_txt">\n                                                ';
-	html += '            <div class="note_txt">\n                                                ';
-	html += '                <img src="/images/pc/ico_content_find.png" alt="유의사항">\n            ';
-	html += '                <p>유의사항</p>\n                                                       ';
-	html += '            </div>\n                                                                ';
-	html += '            <div class="announce_list">\n                                           ';
-	html += coupon[0].note;
-	html += '            </div>                                                                '; 
-	html += '        </div>                                                                    '; 
-	html += '    </div>                                                                        '; 
-	html += '</div>                                                                            ';  
+	if(coupon[0].cpnNote0 != null && coupon[0].cpnNote0 != ''){
+		html += '<div class="content dp_announce line">\n                                                 ';
+		html += '    <div class="cont_head">\n                                                       ';
+		html += '        <div>\n                                                                     ';
+		html += '            <h4>유의사항</h4>\n                                                         ';
+		html += '        </div>\n                                                                    ';
+		html += '    </div>\n                                                                        ';
+		html += '    <div class="cont_body">\n                                                       ';
+		html += '        <div class="announce_txt">\n                                                ';
+		html += '            <div class="note_txt">\n                                                ';
+		html += '                <img src="/images/pc/ico_content_find.png" alt="유의사항">\n            ';
+		html += '                <p>유의사항</p>\n                                                       ';
+		html += '            </div>\n                                                                ';
+		html += '            <div class="announce_list">\n                                           ';
+		html += '               <ul>\n';
+		html += '                  <li>' + coupon[0].cpnNote0 +'</li>\n';
+		if(coupon[0].cpnNote1 != null && coupon[0].cpnNote1 != '')
+			html += '                  <li>' + coupon[0].cpnNote1 +'</li>\n';
+		if(coupon[0].cpnNote2 != null && coupon[0].cpnNote2 != '')
+			html += '                  <li>' + coupon[0].cpnNote2 +'</li>\n';
+		if(coupon[0].cpnNote3 != null && coupon[0].cpnNote3 != '')
+			html += '                  <li>' + coupon[0].cpnNote3 +'</li>\n';	
+		if(coupon[0].cpnNote4 != null && coupon[0].cpnNote4 != '')
+			html += '                  <li>' + coupon[0].cpnNote4 +'</li>\n';
+		if(coupon[0].cpnNote5 != null && coupon[0].cpnNote5 != '')
+			html += '                  <li>' + coupon[0].cpnNote5 +'</li>\n';
+		if(coupon[0].cpnNote6 != null && coupon[0].cpnNote6 != '')
+			html += '                  <li>' + coupon[0].cpnNote6 +'</li>\n';
+		if(coupon[0].cpnNote7 != null && coupon[0].cpnNote7 != '')
+			html += '                  <li>' + coupon[0].cpnNote7 +'</li>\n';
+		if(coupon[0].cpnNote8 != null && coupon[0].cpnNote8 != '')
+			html += '                  <li>' + coupon[0].cpnNote8 +'</li>\n';
+		if(coupon[0].cpnNote9 != null && coupon[0].cpnNote9 != '')
+			html += '                  <li>' + coupon[0].cpnNote9 +'</li>\n';
+		html += '               </ul>\n';
+		html += '            </div>                                                                '; 
+		html += '        </div>                                                                    '; 
+		html += '    </div>                                                                        '; 
+		html += '</div>                                                                            ';
+	}
 	
 		
 	$("#G082_20").append(html);

+ 14 - 12
src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

@@ -172,7 +172,7 @@
                  	</div>
 				</div>
 			</div>
-			<div class="content dp_announce" th:if="${fsrcInfoTop != null}">
+			<div class="content dp_announce" style="display: none;" id="noticeDiv">
 				<div class="cont_head">
 					<div>
 						<h4>유의사항</h4>
@@ -184,12 +184,12 @@
 							<img src="/images/pc/ico_content_find.png" alt="유의사항">
 							<p>유의사항</p>
 						</div>
-						<div class="announce_list" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
-							<!-- <ul>
-								<li>본 이벤트는 ID당 1회만 참여 가능합니다.</li>
-								<li>설문조사 참여 시 포인트를 지급해드립니다. (이벤트 종료 후, 일괄 지급)</li>
-								<li>지급된 포인트는 [ 마이페이지 > 나의 지갑 ] 메뉴에서 확인할 수 있습니다.</li>
-							</ul> -->
+						<div class="announce_list">
+							<ul>
+							<th:block th:each="a, notice : ${noticeInfo}">
+								<li th:text="${a.itemVal}"></li>
+							</th:block>
+							</ul>
 						</div>
 					</div> 
 				</div>
@@ -234,6 +234,7 @@ let date = today.getDate();
 let month =today.getMonth()+1;
 let calendar = [[${month}]];
 let planInfo = [[${planInfo}]];
+let noticeInfo = [[${noticeInfo}]];
 var custAttendList = [[${custAttendList}]];
 var appendHtml = function () {
 	
@@ -349,6 +350,12 @@ $(document).ready(function() {
 	$("#monthHead").html("<strong>"+month+"월</strong> 출석체크");
 	appendHtml();
 	
+	if (noticeInfo.length>0) {
+		$("#noticeDiv").show();
+	}else{
+		$("#noticeDiv").hide();
+	}
+	
 	if (!cfCheckLogin()) {
 		$(".day").html("<span>0</span>일");
 	}else{
@@ -363,11 +370,6 @@ $(document).ready(function() {
 	}
 	
 	
-	
-	
-	
-	
-	
 	$("#title").html("<strong>"+month+"월</strong> 출석체크");
 	
 	//공유 버튼 토글