Преглед изворни кода

Merge branch 'sowon' into develop

sowon4187 пре 5 година
родитељ
комит
0853cfd5ce

+ 252 - 0
src/main/java/com/style24/persistence/mybatis/shop/TssPlan.xml

@@ -550,6 +550,258 @@
 		</if>
 	</update>
 	
+	<select id="getPlanContentsCount" parameterType="Plan" resultType="int">
+		/* TssPlan.getPlanContentsCount */
+		SELECT COUNT(*) AS CNT
+		FROM TB_PLAN_CONTENTS
+		WHERE PLAN_SQ = #{planSq}
+	</select>
+	
+	<select id="getPlanContentReviewList" parameterType="Plan" resultType="Plan">
+		/* TssPlan.getPlanContentReviewList */
+		SELECT A.PLAN_CONT_SQ 
+			  ,A.PLAN_SQ 
+		      ,A.TMPL_TYPE 
+		      ,A.TITLE 
+		      ,A.LINK_URL 
+		      ,A.LINK_OPEN_GB
+		      ,A.NOTE
+		      ,A.DISP_YN 
+		      ,A.DISP_ORD 
+		      ,A.REG_NO 
+		      ,B.ITEM_VAL AS reItemVal
+		      ,SUBSTRING_INDEX(B.REVIEW_DISP_STDT, ' ', 1) AS startSearchDate
+		      ,SUBSTRING_INDEX(B.REVIEW_DISP_STDT, ' ', -1) AS startSearchTime
+		      ,SUBSTRING_INDEX(B.REVIEW_DISP_EDDT , ' ', 1) AS endSearchDate
+		      ,SUBSTRING_INDEX(B.REVIEW_DISP_EDDT , ' ', -1) AS endSearchTime
+		      ,C.GOODS_NM AS reItemNm
+		FROM TB_PLAN_CONTENTS A LEFT JOIN TB_PLAN_CONTENTS_ITEM B ON A.PLAN_CONT_SQ = B.PLAN_CONT_SQ
+								LEFT JOIN TB_GOODS C ON B.ITEM_VAL = C.GOODS_CD 
+	WHERE A.PLAN_SQ = #{planSq} AND A.TMPL_TYPE = #{tmplType}
+	</select>
+	
+	<select id="getPlanContentCouponList" parameterType="Plan" resultType="Plan">
+		/* TssPlan.getPlanContentCouponList */
+		SELECT A.PLAN_CONT_SQ 
+			  ,A.PLAN_SQ 
+		      ,A.TMPL_TYPE 
+		      ,A.TITLE 
+		      ,A.LINK_URL 
+		      ,A.LINK_OPEN_GB
+		      ,A.NOTE
+		      ,A.DISP_YN 
+		      ,A.DISP_ORD 
+		      ,A.REG_NO 
+		      ,B.ITEM_VAL AS cuItemVal
+		      ,C.CPN_ID 
+		      ,C.CPN_NM AS cuItemNm
+		FROM TB_PLAN_CONTENTS A LEFT JOIN TB_PLAN_CONTENTS_ITEM B ON A.PLAN_CONT_SQ = B.PLAN_CONT_SQ
+								LEFT JOIN TB_COUPON C ON B.ITEM_VAL = C.CPN_ID 
+		WHERE A.PLAN_SQ = #{planSq} AND A.TMPL_TYPE = #{tmplType}
+	</select>
+	
+	<select id="getPlanContentFileList" parameterType="Plan" resultType="Plan">
+		/* TssPlan.getPlanContentFileList */
+		SELECT A.PLAN_CONT_SQ 
+			  ,A.PLAN_SQ 
+		      ,A.TMPL_TYPE 
+		      ,A.TITLE 
+		      ,A.LINK_URL 
+		      ,A.LINK_OPEN_GB
+		      ,A.DISP_YN 
+		      ,A.DISP_ORD 
+		      ,A.REG_NO 
+		      ,B.ITEM_VAL AS fileItemVal
+		      ,B.PLAN_CONT_ITEM_SQ 
+		FROM TB_PLAN_CONTENTS A LEFT JOIN TB_PLAN_CONTENTS_ITEM B ON A.PLAN_CONT_SQ = B.PLAN_CONT_SQ
+		WHERE A.PLAN_SQ = #{planSq} AND A.TMPL_TYPE = #{tmplType}
+	</select>
+	
+	<select id="getPlanContentFsrcList" parameterType="Plan" resultType="Plan">
+		/* TssPlan.getPlanContentFsrcList */
+		SELECT 
+		  	  B.PLAN_SQ
+		     ,B.FRONT_GB
+		     ,B.DISP_YN 
+		     ,B.FSRC_MOB 
+		     ,B.FSRC_PC 
+		     ,B.REG_NO
+		     ,B.REG_DT
+		     ,B.UPD_NO
+		     ,B.UPD_DT
+		FROM TB_PLAN_FSRC B
+		WHERE B.PLAN_SQ = #{planSq}
+			AND B.FRONT_GB = #{fontGb}  
+	</select>
+	
+	<select id="getPlanContentGoodsList" parameterType="Plan" resultType="Plan">
+		/* TssPlan.getPlanContentGoodsList */
+		SELECT A.PLAN_CONT_SQ 
+			  ,A.PLAN_SQ 
+		      ,A.TMPL_TYPE 
+		      ,A.TITLE 
+		      ,A.LINK_URL 
+		      ,A.LINK_OPEN_GB
+		      ,A.DISP_YN 
+		      ,A.DISP_ORD 
+		      ,A.REG_NO 
+		FROM TB_PLAN_CONTENTS A 
+		WHERE A.PLAN_SQ = #{planSq}  AND TMPL_TYPE IN ('G082_50','G082_51','G082_52')
+	</select>
+	
+	<select id="getPlanContentGoodsDetailList" parameterType="Plan" resultType="Plan">
+		/* TssPlan.getPlanContentGoodsDetailList */	
+		SELECT  B.PLAN_CONT_SQ 
+		      ,B.PLAN_CONT_ITEM_SQ
+		      ,B.ITEM_VAL as goodsItemVal
+		      ,C.GOODS_NM
+		      ,C.LIST_PRICE 
+		      ,C.CURR_PRICE
+		      ,C.GOODS_STAT 
+		      ,D.BRAND_KNM 
+		      ,D.BRAND_ENM 
+		FROM tb_plan_contents_item B LEFT JOIN TB_GOODS C ON B.ITEM_VAL = C.GOODS_CD 
+									 LEFT JOIN TB_BRAND D ON C.BRAND_CD = D.BRAND_CD
+		WHERE B.PLAN_CONT_SQ IN 
+								(
+									SELECT A.PLAN_CONT_SQ 
+									FROM TB_PLAN_CONTENTS A 
+									WHERE A.PLAN_SQ = #{planSq}  AND TMPL_TYPE IN ('G082_50','G082_51','G082_52') AND PLAN_CONT_SQ = #{planContSq}
+								)
+	</select>
+	
+	<delete id="deletePlanContentItemGoods" parameterType="Plan">
+		/* TssPlan.deletePlanContentItemGoods */	
+		DELETE 
+		FROM TB_PLAN_CONTENTS
+		WHERE PLAN_CONT_SQ = #{planContSq}
+	</delete>
+	
+	<delete id="deletePlanContentItem" parameterType="Plan">
+		/* TssPlan.deletePlanContentItem */	
+		DELETE 
+		FROM TB_PLAN_CONTENTS_ITEM
+		WHERE PLAN_CONT_SQ = #{planContSq}
+	</delete>
+	
+	<insert id="createPlanContents" parameterType="Plan" useGeneratedKeys="true" keyProperty="planContSq">
+		/* TssPlan.createPlanContents */
+		INSERT INTO 
+			TB_PLAN_CONTENTS(
+							 PLAN_CONT_SQ
+							, PLAN_SQ
+							, TMPL_TYPE
+							, TITLE
+							, LINK_URL
+							, LINK_OPEN_GB
+							, NOTE							
+							, DISP_YN
+							, DISP_ORD
+							, REG_NO
+							, REG_DT
+							, UPD_NO
+							, UPD_DT
+
+						)
+			  VALUES(
+			  		   #{planContSq}
+					 , #{planSq}
+					 , #{tmplType}
+					 , #{title}
+					 , #{linkUrl}
+					 , #{linkOpenGb}
+					 , #{note}
+					 , #{dispYn}
+					 , #{dispOrd}
+					 , #{regNo}
+					 , now()
+					 , #{updNo}
+					 , now()
+				   )
+			  ON
+			     DUPLICATE KEY 
+			 UPDATE 
+			 	   TITLE=#{title}
+			 	 , TMPL_TYPE = #{tmplType}
+			   	 , LINK_URL=#{linkUrl}
+			   	 , LINK_OPEN_GB=#{linkOpenGb}
+			   	 , NOTE = #{note}
+			     , DISP_YN=#{dispYn}
+			     , DISP_ORD=#{dispOrd}
+			     , UPD_NO=#{updNo}
+			     , UPD_DT=now()
+	</insert>
+	
+	<insert id="createPlanContentsItem" parameterType="Plan">
+		/* TssPlan.createPlanContentsItem */
+		INSERT INTO 
+			TB_PLAN_CONTENTS_ITEM(
+						PLAN_CONT_SQ
+					  , ITEM_VAL
+					  , LINK_URL
+					  , LINK_OPEN_GB
+					  , REVIEW_DISP_STDT
+					  , REVIEW_DISP_EDDT
+					  , REG_NO
+					  , REG_DT
+					)
+			VALUES(
+					#{planContSq}
+				  , #{itemVal}
+				  , #{linkUrl}
+				  , #{linkOpenGb}
+				  , #{reviewDispStdt}
+				  , #{reviewDispEddt}
+				  , #{regNo}
+				  , now()
+				 )
+			 ON
+			     DUPLICATE KEY 
+			 UPDATE 
+			 	 ITEM_VAL= #{itemVal}
+			   , LINK_URL = #{linkUrl}
+			   , LINK_OPEN_GB = #{linkOpenGb}
+			   , REVIEW_DISP_STDT= #{reviewDispStdt}
+			   , REVIEW_DISP_EDDT= #{reviewDispEddt}
+			   , REG_NO= #{regNo}
+			   , REG_DT= now()
+	</insert>
+	
+	<!-- 기획전  소스 등록 -->
+	<insert id="savePlanFsrcInfo" parameterType="Plan">
+		/* TssPlan.savePlanFsrcInfo */
+		         INSERT INTO
+				      TB_PLAN_FSRC (
+				          PLAN_SQ
+				          , FRONT_GB
+				          , FSRC_PC
+				          , FSRC_MOB
+				          , DISP_YN
+				          , REG_NO
+				          , REG_DT
+				          , UPD_NO
+				          , UPD_DT
+				      )
+				   VALUES (
+				    	  #{planSq}
+				    	  , #{frontGb}
+				          , #{fsrcPc}
+				          , #{fsrcMob}
+				          , #{dispYn}
+				          , #{regNo}
+				          , now()
+				          , #{regNo}
+				          , now() 
+				   )
+				   ON
+				      DUPLICATE KEY
+				   UPDATE
+				       FSRC_PC = #{fsrcPc}
+			         , FSRC_MOB = #{fsrcMob}
+			         , DISP_YN = #{dispYn}
+		         	 , UPD_NO = #{regNo}
+		         	 , UPD_DT = now()
+	</insert>
 	
 
 	<sql id="getPlanListCondition_sql">

+ 104 - 0
src/main/java/com/style24/scm/biz/dao/TssPlanDao.java

@@ -205,6 +205,110 @@ public interface TssPlanDao {
 	 */
 	void deletePlanCornerGoods(Plan param);
 	
+	/**
+	 * 기획전 템플릿 리스트 카운트 조회
+	 * @param  param
+	 * @return int
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	int getPlanContentsCount(Plan param);
+	
+	/**
+	 * 기획전 템플릿 상세조회 - 리뷰
+	 *
+	 * @param
+	 * @author sowon
+	 * @since  2021. 05. 06
+	 */
+	Collection<Plan> getPlanContentReviewList(Plan param);
+	
+	/**
+	 * 기획전 템플릿 상세조회 - 쿠폰
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	Collection<Plan> getPlanContentCouponList(Plan param);
 	
+	/**
+	 * 기획전 템플릿 상세조회 - 파일
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	Collection<Plan> getPlanContentFileList(Plan param);
+	
+	/**
+	 * 기획전 템플릿 상세조회 - html
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	Collection<Plan> getPlanContentFsrcList(Plan param);
+	
+	/**
+	 * 기획전 템플릿 상세조회 - 상품
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	Collection<Plan> getPlanContentGoodsList(Plan param);
 	
+	/**
+	 * 기획전 템플릿 상세조회 - 상품 목록조회
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	Collection<Plan> getPlanContentGoodsDetailList(Plan param);
+	
+	/**
+	 * 기획전템플릿 상품 삭제
+	 * @param 
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	void deletePlanContentItemGoods(Integer planContSq);
+	
+	/**
+	 * 기획전템플릿 아이템 삭제
+	 * @param 
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	void deletePlanContentItem(Integer planContSq);
+	
+	/**
+	 * 기획전 템플릿 등록
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	void createPlanContents(Plan param);
+	
+	/**
+	 * 기획전 템플릿 아이템 등록
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	void createPlanContentsItem(Plan param);
+	
+	/**
+	 * 기획전 소스 등록
+	 *
+	 * @param 기획전 소스
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	void savePlanFsrcInfo(Plan param);
+
 }

+ 694 - 0
src/main/java/com/style24/scm/biz/service/TssPlanService.java

@@ -600,4 +600,698 @@ public class TssPlanService {
 			planDao.deletePlanCornerGoods(cornerInfo);
 		}
 	}
+	
+	/**
+	 * 기획전 템플릿 목록 카운트 조회
+	 * @param  param
+	 * @return int
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	public int getPlanContentsCount(Plan param) {
+		return planDao.getPlanContentsCount(param);
+	}
+	
+	/**
+	 * 기획전 템플릿 상세조회 - 리뷰
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since  2021. 05. 06
+	 */
+	public Collection<Plan> getPlanContentReviewList(Plan param){
+		return planDao.getPlanContentReviewList(param);
+	}
+
+	/**
+	 * 기획전 템플릿 상세조회 - 쿠폰
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since  2021. 05. 06
+	 */
+	public Collection<Plan> getPlanContentCouponList(Plan param){
+		return planDao.getPlanContentCouponList(param);
+	}
+	
+	/**
+	 * 기획전 템플릿 상세조회 - 파일
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	public Collection<Plan> getPlanContentFileList(Plan param){
+		return planDao.getPlanContentFileList(param);
+	}
+	
+
+	/**
+	 * 기획전 템플릿 상세조회 - html
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	public Collection<Plan> getPlanContentFsrcList(Plan param){
+		return planDao.getPlanContentFsrcList(param);
+	}
+	
+	/**
+	 * 기획전 템플릿 상세조회 - goods
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	public Collection<Plan> getPlanContentGoodsList(Plan param){
+		return planDao.getPlanContentGoodsList(param);
+	}
+	
+	/**
+	 * 기획전 템플릿 상세조회 - goods 목록조회
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	public Collection<Plan> getPlanContentGoodsDetailList(Plan param){
+		return planDao.getPlanContentGoodsDetailList(param);
+	}
+	
+	/**
+	 * 기획전 템플릿 상품목록 삭제
+	 * @param  
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	@Transactional("shopTxnManager")
+	public void deletePlanContentItemGoods(Integer planContSq) {
+		planDao.deletePlanContentItemGoods(planContSq);
+	}
+	
+	/**
+	 * 기획전 템플릿 컨텐츠 삭제
+	 * @param  
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+
+	@Transactional("shopTxnManager")
+	public void deletePlanContentItem(Integer planContSq) {
+		planDao.deletePlanContentItem(planContSq);
+		
+	}
+	
+	/**
+	 * 기획전 템플릿 등록
+	 *
+	 * @param
+	 * @return
+	 * @author sowon
+	 * @since 2021. 2. 25
+	 */
+	public void createPlanContents(Plan param) {
+		Integer regNo = TssSession.getInfo().getUserNo();
+		
+		param.setRegNo(regNo);
+		
+		// 리뷰 등록
+		Plan rePlan = new Plan();
+		//리뷰 등록 - tb_plan_contents
+		if(param.getReTitle() != "" || !org.apache.commons.lang3.StringUtils.isAllEmpty(param.getMultiPlanReview())) {
+			rePlan.setRegNo(regNo);
+			rePlan.setUpdNo(regNo);
+			rePlan.setTmplType("G082_10");
+			rePlan.setPlanSq(param.getPlanSq());
+			rePlan.setTitle(param.getReTitle());
+			rePlan.setDispYn(param.getReDispYn());
+			rePlan.setDispOrd(param.getReDispOrd());
+			rePlan.setPlanContSq(param.getRePlanContSq());
+			planDao.createPlanContents(rePlan);
+
+			// 기존 리뷰아이템 삭제
+			planDao.deletePlanContentItem(param.getRePlanContSq());
+			//리뷰 아이템 등록
+			if(param.getMultiPlanReview().length>0) {
+				String[] reItemVal = param.getMultiPlanReview();
+				String[] startDate = param.getMultiPlanReviewStartD();
+				String[] startTime = param.getMultiPlanReviewStartT();
+				String[] endDate = param.getMultiPlanReviewEndD();
+				String[] endTime = param.getMultiPlanReviewEndT();
+				// 기획전 브랜드 insert
+				for (int j = 0; j < reItemVal.length; j++) {
+					rePlan.setItemVal(reItemVal[j]);
+					rePlan.setReviewDispStdt(startDate[j] + ' ' +startTime[j]);
+					rePlan.setReviewDispEddt(endDate[j] + ' ' +endTime[j]);
+					planDao.createPlanContentsItem(rePlan);
+				}
+			}
+		}
+		
+		// 쿠폰등록
+		Plan cuPlan = new Plan();
+		//쿠폰 등록 - tb_plan_contents
+		if(param.getCuTitle() != "" || param.getMultiPlanCoupon().length>0) {
+			cuPlan.setRegNo(regNo);
+			cuPlan.setUpdNo(regNo);
+			cuPlan.setTmplType("G082_20");
+			cuPlan.setPlanSq(param.getPlanSq());
+			cuPlan.setTitle(param.getCuTitle());
+			cuPlan.setDispYn(param.getCuDispYn());
+			cuPlan.setDispOrd(param.getCuDispOrd());
+			cuPlan.setPlanContSq(param.getCuPlanContSq());
+			cuPlan.setNote(param.getNote());
+			planDao.createPlanContents(cuPlan);
+			
+			// 기존 쿠폰아이템 삭제
+			planDao.deletePlanContentItem(param.getCuPlanContSq());
+						
+			//쿠폰아이템 등록
+			if(param.getMultiPlanCoupon().length>0) {
+				String[] cuItemVal = param.getMultiPlanCoupon();
+				
+				// 기획전 브랜드 insert
+				for (int j = 0; j < cuItemVal.length; j++) {
+					cuPlan.setItemVal(cuItemVal[j]);
+					planDao.createPlanContentsItem(cuPlan);
+				}
+			}
+		}
+		
+		//이미지등록
+		Plan filePlan = new Plan();
+		if(!org.apache.commons.lang3.StringUtils.isAllEmpty(param.getMultiPlanFile()) || param.getFileDispOrd() >=0) {
+			filePlan.setRegNo(regNo);
+			filePlan.setUpdNo(regNo);
+			filePlan.setTmplType("G082_30");
+			filePlan.setPlanSq(param.getPlanSq());
+			filePlan.setDispYn(param.getFileDispYn());
+			filePlan.setDispOrd(param.getFileDispOrd());
+			filePlan.setPlanContSq(param.getFilePlanContSq());
+			
+			planDao.createPlanContents(filePlan);
+			
+			// 기존  파일 삭제
+			/* planDao.deletePlanContentItem(param.getFilePlanContSq()); */
+			
+			//파일아이템 등록
+			String[] fileItemVal = param.getMultiPlanFile();
+			String[] fileItemVal2 = param.getMultiPlanFile2();
+			String[] fileItemVal3 = param.getMultiPlanFile3();
+			int ind = 1;
+			for (int j = 0; j < fileItemVal.length; j++) {
+				String imgInd = String.valueOf(ind);
+				if (ind < 10) {
+					imgInd = "0" + imgInd;
+				}
+				String planUploadPath = env.getProperty("upload.default.target.path");
+				String yearMonth = GagaDateUtil.getToday().substring(0, 6);
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, "/planning");
+				File newFile = new File(GagaFileUtil.getConcatenationPath(planUploadPath, fileItemVal[j]));
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, yearMonth);
+				String newFilename = "PLANNING_" + GagaDateUtil.getTodayDateTime() + "_" + imgInd + "." + StringUtils.getFilenameExtension(fileItemVal[j]);
+				File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(planUploadPath, newFilename)));
+				// Rename a file
+				File path = new File(planUploadPath);
+				if (!path.exists()) {
+					path.mkdir();
+				}
+				newFile.renameTo(uniqueFile);
+				filePlan.setItemVal("/planning/" + yearMonth + "/" + newFilename);
+				filePlan.setLinkUrl(fileItemVal2[j]);
+				filePlan.setLinkOpenGb((fileItemVal3[j]));
+				planDao.createPlanContentsItem(filePlan);
+				ind++;
+			}
+		}
+		
+		//HTML[PC] 상단 하단 등록
+		if(param.getFsrcMobileTop() != "" || param.getFsrcPcTop() != "") {
+
+			
+			// 웹용 상단PC 등록
+			if (org.apache.commons.lang3.StringUtils.isNotBlank(param.getFsrcPcTop())) {
+				
+				createPlanFsrcPcTop(param);
+			}
+		}
+		//HTML[하단] 등록
+		if(param.getFsrcMobileBtm() != "" || param.getFsrcPcBtm() != "") {
+			
+			
+			// 웹용 상단PC 등록
+			if (org.apache.commons.lang3.StringUtils.isNotBlank(param.getFsrcPcBtm())) {
+				createPlanFsrcPcBtm(param);
+			}
+
+		}
+		
+		//상품 등록 -- 1
+		for (Plan multiPlanGoodsContent1 : param.getMultiPlanGoodsContent1()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent1.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent1.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent1.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent1.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent1.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent1.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent1.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent1.getGoodsLinkOpenGb();
+				
+				Plan goods1 = new Plan();
+				goods1.setRegNo(regNo);
+				goods1.setUpdNo(regNo);
+				goods1.setTitle(goodsTitle);
+				goods1.setDispOrd(goodsDispOrd);
+				goods1.setPlanSq(param.getPlanSq());
+				goods1.setDispYn(goodsDispYn);
+				goods1.setTmplType(goodsType);
+				goods1.setLinkOpenGb(linkOpenGb);
+				goods1.setLinkUrl(goodsUrl);
+				goods1.setPlanContSq(goodsPlanContSq);
+				
+				planDao.createPlanContents(goods1);
+				
+				// 기존  상품1 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal1 : param.getMultiPlanGoodsContentVal1()) {
+					if(param.getMultiPlanGoodsContentVal1().size()>0) {
+						goods1.setItemVal(multiPlanGoodsContentVal1.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods1);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 2
+		for (Plan multiPlanGoodsContent2 : param.getMultiPlanGoodsContent2()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent2.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent2.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent2.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent2.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent2.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent2.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent2.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent2.getGoodsLinkOpenGb();
+				
+				Plan goods2 = new Plan();
+				goods2.setRegNo(regNo);
+				goods2.setUpdNo(regNo);
+				goods2.setTitle(goodsTitle);
+				goods2.setDispOrd(goodsDispOrd);
+				goods2.setPlanSq(param.getPlanSq());
+				goods2.setDispYn(goodsDispYn);
+				goods2.setTmplType(goodsType);
+				goods2.setLinkUrl(goodsUrl);
+				goods2.setLinkOpenGb(linkOpenGb);
+				goods2.setPlanContSq(goodsPlanContSq);
+				
+				planDao.createPlanContents(goods2);
+				
+				// 기존  상품2 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal2 : param.getMultiPlanGoodsContentVal2()) {
+					if(param.getMultiPlanGoodsContentVal2().size()>0) {
+						goods2.setItemVal(multiPlanGoodsContentVal2.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods2);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 3
+		for (Plan multiPlanGoodsContent3 : param.getMultiPlanGoodsContent3()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent3.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent3.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent3.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent3.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent3.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent3.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent3.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent3.getGoodsLinkOpenGb();
+				
+				Plan goods3 = new Plan();
+				goods3.setRegNo(regNo);
+				goods3.setUpdNo(regNo);
+				goods3.setTitle(goodsTitle);
+				goods3.setDispOrd(goodsDispOrd);
+				goods3.setPlanSq(param.getPlanSq());
+				goods3.setDispYn(goodsDispYn);
+				goods3.setTmplType(goodsType);
+				goods3.setLinkUrl(goodsUrl);
+				goods3.setLinkOpenGb(linkOpenGb);
+				goods3.setPlanContSq(goodsPlanContSq);
+				
+				planDao.createPlanContents(goods3);
+				
+				// 기존  상품3 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal3 : param.getMultiPlanGoodsContentVal3()) {
+					if(param.getMultiPlanGoodsContentVal3().size()>0) {
+						goods3.setItemVal(multiPlanGoodsContentVal3.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods3);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 4
+		for (Plan multiPlanGoodsContent4 : param.getMultiPlanGoodsContent4()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent4.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent4.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent4.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent4.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent4.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent4.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent4.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent4.getGoodsLinkOpenGb();
+				
+				Plan goods4 = new Plan();
+				goods4.setRegNo(regNo);
+				goods4.setUpdNo(regNo);
+				goods4.setTitle(goodsTitle);
+				goods4.setDispOrd(goodsDispOrd);
+				goods4.setPlanSq(param.getPlanSq());
+				goods4.setDispYn(goodsDispYn);
+				goods4.setTmplType(goodsType);
+				goods4.setLinkUrl(goodsUrl);
+				goods4.setPlanContSq(goodsPlanContSq);
+				goods4.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods4);
+				
+				// 기존  상품4 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal4 : param.getMultiPlanGoodsContentVal4()) {
+					if(param.getMultiPlanGoodsContentVal4().size()>0) {
+						goods4.setItemVal(multiPlanGoodsContentVal4.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods4);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 5
+		for (Plan multiPlanGoodsContent5 : param.getMultiPlanGoodsContent5()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent5.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent5.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent5.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent5.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent5.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent5.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent5.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent5.getGoodsLinkOpenGb();
+
+				
+				Plan goods5 = new Plan();
+				goods5.setRegNo(regNo);
+				goods5.setUpdNo(regNo);
+				goods5.setTitle(goodsTitle);
+				goods5.setDispOrd(goodsDispOrd);
+				goods5.setPlanSq(param.getPlanSq());
+				goods5.setDispYn(goodsDispYn);
+				goods5.setTmplType(goodsType);
+				goods5.setLinkUrl(goodsUrl);
+				goods5.setPlanContSq(goodsPlanContSq);
+				goods5.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods5);
+				
+				// 기존  상품5 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal5 : param.getMultiPlanGoodsContentVal5()) {
+					if(param.getMultiPlanGoodsContentVal5().size()>0) {
+						goods5.setItemVal(multiPlanGoodsContentVal5.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods5);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 6
+		for (Plan multiPlanGoodsContent6 : param.getMultiPlanGoodsContent6()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent6.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent6.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent6.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent6.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent6.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent6.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent6.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent6.getGoodsLinkOpenGb();
+				
+				Plan goods6 = new Plan();
+				goods6.setRegNo(regNo);
+				goods6.setUpdNo(regNo);
+				goods6.setTitle(goodsTitle);
+				goods6.setDispOrd(goodsDispOrd);
+				goods6.setPlanSq(param.getPlanSq());
+				goods6.setDispYn(goodsDispYn);
+				goods6.setTmplType(goodsType);
+				goods6.setLinkUrl(goodsUrl);
+				goods6.setPlanContSq(goodsPlanContSq);
+				goods6.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods6);
+				
+				// 기존  상품6 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal6 : param.getMultiPlanGoodsContentVal6()) {
+					if(param.getMultiPlanGoodsContentVal6().size()>0) {
+						goods6.setItemVal(multiPlanGoodsContentVal6.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods6);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 7
+		for (Plan multiPlanGoodsContent7 : param.getMultiPlanGoodsContent7()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent7.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent7.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent7.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent7.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent7.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent7.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent7.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent7.getGoodsLinkOpenGb();
+				
+				Plan goods7 = new Plan();
+				goods7.setRegNo(regNo);
+				goods7.setUpdNo(regNo);
+				goods7.setTitle(goodsTitle);
+				goods7.setDispOrd(goodsDispOrd);
+				goods7.setPlanSq(param.getPlanSq());
+				goods7.setDispYn(goodsDispYn);
+				goods7.setTmplType(goodsType);
+				goods7.setLinkUrl(goodsUrl);
+				goods7.setPlanContSq(goodsPlanContSq);
+				goods7.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods7);
+				
+				// 기존  상품7 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal7 : param.getMultiPlanGoodsContentVal7()) {
+					if(param.getMultiPlanGoodsContentVal7().size()>0) {
+						goods7.setItemVal(multiPlanGoodsContentVal7.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods7);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 8
+		for (Plan multiPlanGoodsContent8 : param.getMultiPlanGoodsContent8()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent8.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent8.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent8.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent8.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent8.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent8.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent8.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent8.getGoodsLinkOpenGb();
+				
+				Plan goods8 = new Plan();
+				goods8.setRegNo(regNo);
+				goods8.setUpdNo(regNo);
+				goods8.setTitle(goodsTitle);
+				goods8.setDispOrd(goodsDispOrd);
+				goods8.setPlanSq(param.getPlanSq());
+				goods8.setDispYn(goodsDispYn);
+				goods8.setTmplType(goodsType);
+				goods8.setLinkUrl(goodsUrl);
+				goods8.setPlanContSq(goodsPlanContSq);
+				goods8.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods8);
+				
+				// 기존  상품8 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal8 : param.getMultiPlanGoodsContentVal8()) {
+					if(param.getMultiPlanGoodsContentVal8().size()>0) {
+						goods8.setItemVal(multiPlanGoodsContentVal8.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods8);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 9
+		for (Plan multiPlanGoodsContent9 : param.getMultiPlanGoodsContent9()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent9.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent9.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent9.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent9.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent9.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent9.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent9.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent9.getGoodsLinkOpenGb();
+				
+				Plan goods9 = new Plan();
+				goods9.setRegNo(regNo);
+				goods9.setUpdNo(regNo);
+				goods9.setTitle(goodsTitle);
+				goods9.setDispOrd(goodsDispOrd);
+				goods9.setPlanSq(param.getPlanSq());
+				goods9.setDispYn(goodsDispYn);
+				goods9.setTmplType(goodsType);
+				goods9.setLinkUrl(goodsUrl);
+				goods9.setPlanContSq(goodsPlanContSq);
+				goods9.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods9);
+				
+				// 기존  상품9 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal9 : param.getMultiPlanGoodsContentVal9()) {
+					if(param.getMultiPlanGoodsContentVal9().size()>0) {
+						goods9.setItemVal(multiPlanGoodsContentVal9.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods9);
+					}
+					
+				}
+			}
+		}
+		
+		//상품 등록 -- 10
+		for (Plan multiPlanGoodsContent10 : param.getMultiPlanGoodsContent10()) {
+			
+			if (!StringUtils.isEmpty(multiPlanGoodsContent10.getGoodsType())) {
+				String goodsTitle = multiPlanGoodsContent10.getGoodsTitle();
+				String goodsUrl = multiPlanGoodsContent10.getGoodsUrl();
+				String goodsType = multiPlanGoodsContent10.getGoodsType();
+				long goodsDispOrd = multiPlanGoodsContent10.getGoodsDispOrd();
+				String goodsDispYn = multiPlanGoodsContent10.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent10.getGoodsPlanContSq();
+				String linkOpenGb = multiPlanGoodsContent10.getGoodsLinkOpenGb();
+				
+				Plan goods10 = new Plan();
+				goods10.setRegNo(regNo);
+				goods10.setUpdNo(regNo);
+				goods10.setTitle(goodsTitle);
+				goods10.setDispOrd(goodsDispOrd);
+				goods10.setPlanSq(param.getPlanSq());
+				goods10.setDispYn(goodsDispYn);
+				goods10.setTmplType(goodsType);
+				goods10.setLinkUrl(goodsUrl);
+				goods10.setPlanContSq(goodsPlanContSq);
+				goods10.setLinkOpenGb(linkOpenGb);
+				
+				planDao.createPlanContents(goods10);
+				
+				// 기존  상품10 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
+				for (Plan multiPlanGoodsContentVal10 : param.getMultiPlanGoodsContentVal10()) {
+					if(param.getMultiPlanGoodsContentVal10().size()>0) {
+						goods10.setItemVal(multiPlanGoodsContentVal10.getGoodsItemVal());
+						planDao.createPlanContentsItem(goods10);
+					}
+					
+				}
+			}
+		}
+	}
+	
+	/*
+	 * 기획전 템플릿 HTML[상단] PC 모바일 소스 등록
+	 */
+	@Transactional("shopTxnManager")
+	public Plan createPlanFsrcPcTop(Plan param) {
+		Plan fsrcTop = new Plan();
+//		int fsrcPcTotalCnt = param.getFsrcPcTop().toCharArray().length;
+//		int fsrcMobileTotalCnt = param.getFsrcMobileTop().toCharArray().length;
+//		int byteCnt = 1500;
+		
+		
+		fsrcTop.setFrontGb("T");                 
+		fsrcTop.setRegNo(param.getRegNo());      
+		fsrcTop.setPlanSq(param.getPlanSq());    
+		fsrcTop.setDispYn(param.getTopFsrcDispYn());
+		
+		fsrcTop.setFsrcPc(param.getFsrcPcTop());
+		fsrcTop.setFsrcMob(param.getFsrcMobileTop());
+		planDao.savePlanFsrcInfo(fsrcTop);
+
+		return param;
+	}
+	
+	/*
+	 * 기획전 템플릿 HTML[하단] PC 모바일 소스 등록
+	 */
+	@Transactional("shopTxnManager")
+	public Plan createPlanFsrcPcBtm(Plan param) {
+		Plan fsrcBtm = new Plan();
+//		int fsrcPcTotalCnt = param.getFsrcPcBtm().toCharArray().length;
+//		int fsrcMobileTotalCnt = param.getFsrcMobileBtm().toCharArray().length;
+//		int byteCnt = 1500;
+//		
+		
+		fsrcBtm.setFrontGb("B");                 
+		fsrcBtm.setRegNo(param.getRegNo());      
+		fsrcBtm.setPlanSq(param.getPlanSq());    
+		fsrcBtm.setDispYn(param.getBtmFsrcDispYn());
+		fsrcBtm.setFsrcPc(param.getFsrcPcBtm());
+		fsrcBtm.setFsrcMob(param.getFsrcMobileBtm());
+		planDao.savePlanFsrcInfo(fsrcBtm);
+
+		return param;
+	}
+
+
+	
 }

+ 107 - 1
src/main/java/com/style24/scm/biz/web/TssMarketingController.java

@@ -2,7 +2,9 @@ package com.style24.scm.biz.web;
 
 
 
+import java.io.IOException;
 import java.util.Collection;
+import java.util.Iterator;
 
 import com.style24.core.biz.service.TscCouponService;
 import org.apache.commons.lang3.StringUtils;
@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -350,7 +353,7 @@ public class TssMarketingController extends TssBaseController {
 	 *
 	 * @return
 	 * @author sowon
-	 * @since 2021. 2. 18
+	 * @since 2021. 05. 06
 	 */
 	@PostMapping("/planning/corner/goods/delete")
 	@ResponseBody
@@ -358,6 +361,107 @@ public class TssMarketingController extends TssBaseController {
 		planService.deletePlanCornerGoods(paramList);
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
+	
+	 /**
+	 * 기획전 템플릿 팝업
+	 *
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	@GetMapping("/planning/detail/template/form")
+	public ModelAndView planTemplateForm(Plan param, @RequestParam(value = "planSq") Integer planSq) {
+		ModelAndView mav = new ModelAndView();
+
+		// 템플릿 등록이 최조인지 확인
+		if (planService.getPlanContentsCount(param) > 0) {
+			mav.addObject("mode", "U");
+
+			//리뷰리스트
+			param.setPlanSq(planSq);
+			param.setTmplType("G082_10");
+			mav.addObject("reviewList", planService.getPlanContentReviewList(param));
+
+			//쿠폰리스트
+			param.setTmplType("G082_20");
+			mav.addObject("couponList", planService.getPlanContentCouponList(param));
+
+			//파일리스트
+			param.setTmplType("G082_30");
+			mav.addObject("fileList", planService.getPlanContentFileList(param));
+
+			//html 리스트 - 상단
+			param.setFontGb("T");
+			mav.addObject("fsrcListTop", planService.getPlanContentFsrcList(param));
+
+			//html 리스트 - 하단
+			param.setFontGb("B");
+			mav.addObject("fsrcListBtm", planService.getPlanContentFsrcList(param));
+
+			//상품 리스트
+			mav.addObject("goodsList", planService.getPlanContentGoodsList(param));
+
+			Collection<Plan> goodsList = planService.getPlanContentGoodsList(param);
+			Iterator<Plan> iter = goodsList.iterator();
+			int i = 1;
+			while (iter.hasNext()) {
+
+				Integer planContSq = iter.next().getPlanContSq();
+				param.setPlanContSq(planContSq);
+				mav.addObject("goodsDetailList" + i, planService.getPlanContentGoodsDetailList(param));
+				i++;
+			}
+
+		} else {
+			mav.addObject("mode", "C");
+
+		}
+		// 상품상태
+		String[] exceptCds = {"G008_00"};
+		mav.addObject("goodsStatList", rendererService.getCommonCodeList("G008", "Y", exceptCds));
+
+		mav.addObject("planSq", planSq);
+		mav.setViewName("marketing/PlanTemplatePopupForm");
+		return mav;
+	}
+
+	/**
+	 * 기회전템플릿 상품 삭제
+	 * @param plan_content - 기획전템플릿 상품삭제
+	 * @return
+	 * @throws IOException
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	@PostMapping("/planning/detail/template/goods/delete")
+	@ResponseBody
+	public GagaMap deletePlanTemplateGoods(@RequestBody Collection<Plan> param) throws IOException {
+		GagaMap result = new GagaMap();
+		Integer planContSq = null;
+		Iterator<Plan> list = param.iterator();
+		while (list.hasNext()) {
+			planContSq = list.next().getPlanContSq();
+		}
+		planService.deletePlanContentItemGoods(planContSq);
+		planService.deletePlanContentItem(planContSq);
+		result.set("status", GagaResponseStatus.SUCCESS.getCode());
+		return result;
+	}
+	
+	/**
+	 * 기획전 템플릿 저장
+	 *
+	 * @return
+	 * @author sowon
+	 * @since 2021. 05. 06
+	 */
+	@PostMapping("/planning/detail/template/save")
+	@ResponseBody
+	public GagaResponse planTemplateSave(@RequestBody Plan param) {
+		// 기획전 컨텐츠 등록
+		planService.createPlanContents(param);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
 
 
     /**
@@ -409,4 +513,6 @@ public class TssMarketingController extends TssBaseController {
 
         return result;
     }
+    
+   
 }

+ 2 - 2
src/main/webapp/WEB-INF/views/marketing/PlanCornerListForm.html

@@ -343,11 +343,11 @@
 	}
 
 	// 코너 복사
-/* 	var fnCornerCopyPopup = function() {
+	var fnCornerCopyPopup = function() {
 		var actionUrl = '/marketing/planning/corner/copy/list/form?planSq=' + planInfo.planSq;
 		actionUrl += '&copyMode=CORNER';
 		cfnOpenModalPopup(actionUrl,'popupCornerCopy');
-	} */
+	}
 	
 	var uploadGoodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
 	var columnDefsGoods = [

+ 2313 - 0
src/main/webapp/WEB-INF/views/marketing/PlanTemplatePopupForm.html

@@ -0,0 +1,2313 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : PlanCornerCopyForm.html
+ * @desc    : 기획전 템플릿  화면 Page
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.18   sowon 		  최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="1200" data-height="730" id="popupPlanTemplate">
+	<div class="panelStyle" style="height: 750px;">
+		<div class="panelTitle">
+			<strong>기획전 템플릿</strong>
+			<button type="button" class="close"	onclick="uifnPopupClose('popupPlanTemplate')">
+				<i class="fa fa-times"></i>
+			</button>
+		</div>
+		
+	<form id="planTemplateForm" name="planTemplateForm" action="#" th:method="post">
+			<input type="hidden" name="planSq" th:value="*{planSq}"/>
+			<input type="hidden" name="mode" th:value="*{mode}"/>
+			<input type="hidden" name="rePlanContSq">
+			<input type="hidden" name="cuPlanContSq">
+			<input type="hidden" name="filePlanContSq">
+			<input type="hidden" name="goodsPlanContSq1">
+			<input type="hidden" name="goodsPlanContSq2">
+			<input type="hidden" name="goodsPlanContSq3">
+			<input type="hidden" name="goodsPlanContSq4">
+			<input type="hidden" name="goodsPlanContSq5">
+			<input type="hidden" name="goodsPlanContSq6">
+			<input type="hidden" name="goodsPlanContSq7">
+			<input type="hidden" name="goodsPlanContSq8">
+			<input type="hidden" name="goodsPlanContSq9">
+			<input type="hidden" name="goodsPlanContSq10">
+			<div class="cardArea" style="height: 700px; margin: 3px;">
+
+				<div class="panelContent">
+					<div class="panelStyle" style="margin: unset;">
+						<!-- TITLE -->
+						<div class="panelTitle">
+							<h2>리뷰 조회</h2>
+							<span class="panelControl"> <i
+								class="fa inner-fa-chevron-up"></i> <!-- 열림/닫힘 화살표 -->
+							</span>
+						</div>
+						<!-- //TITLE -->
+						<div class="inner-panelContent">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%" />
+										<col width="90%" />
+									</colgroup>
+									<tr>
+										<th>리뷰<br/>[전시여부<label class="chkBox"><input type="checkbox" name="reDispYn" onclick="fnAttachYnClick('reDispYn')" value="N"/></label>]</th>
+										<td>
+											<table class="frmStyle">
+												<tr>
+													<th>리뷰 타이틀</th>
+													<td><input type="text" name="reTitle" class="w300 aR"/>
+													</td>
+												</tr>
+												<tr>
+													<th>전시순서</th>
+													<td><input type="text" name="reDispOrd" class="w100 aR" data-valid-type="numeric"></td>
+												</tr>
+											</table>
+											<div class="padding10">
+												<span class="buttonSpan">
+													<button type="button" class="btn btnRight btn-success btn-lg" onclick="cfnOpenGoodsPopup('reviewGoodsList')">상품 조회</button>
+													<button type="button" class="btn btnRight btn-success btn-lg" id="btnReviewDelete">행 삭제</button>
+												</span> <br />
+												<div id="gridListPlanReview" style="width: 100%; height: 200px;" class="ag-theme-balham"></div>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+					</div>
+				</div>
+
+				<div class="panelContent">
+					<div class="panelStyle" style="margin: unset;">
+						<!-- TITLE -->
+						<div class="panelTitle">
+							<h2>쿠폰 조회</h2>
+							<span class="panelControl"> <i
+								class="fa inner-fa-chevron-up"></i> <!-- 열림/닫힘 화살표 -->
+							</span>
+						</div>
+						<!-- //TITLE -->
+						<div class="inner-panelContent">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%" />
+										<col width="90%" />
+									</colgroup>
+									<tr>
+										<th>쿠폰<br/>[전시여부<label class="chkBox"><input type="checkbox" name="cuDispYn" id="cuDispYn" value="N"/></label>]</th>
+										<td>
+											<table class="frmStyle">
+												<tr>
+													<th>쿠폰 타이틀</th>
+													<td><input type="text" name="cuTitle" class="w300 aR">
+													</td>
+												</tr>
+												<tr>
+													<th>전시순서</th>
+													<td><input type="text" name="cuDispOrd" class="w100 aR" data-valid-type="numeric"></td>
+												</tr>
+												<tr>
+													<th>쿠폰유의사항</th>
+													<td><textarea class="textareaR4 summernote" name="note" id="note" rows="15" cols="40" style="width: 860px;"></textarea></td>
+												</tr>
+											</table>
+											<div class="padding10">
+												<span class="buttonSpan">
+													<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnAddCoupone()">쿠폰 추가</button>
+												</span> <br />
+											<table class="frmStyle" id="couponTable">
+												<!-- <tr>
+													<td colspan="3">
+														<input type="checkbox">
+														<input type="text" class="w300" name="cuItemVal1" onkeypress="if (window.event.keyCode == 13) { fnOpenCouponRetrievePopup('input[name=cuItemVal1]', 'input[name=cuItemNm1]'); }"/>
+														<button type="button" class="btn icn" onclick="fnOpenCouponRetrievePopup('input[name=cuItemVal1]', 'input[name=cuItemNm1]');"><i class="fa fa-search cpn" aria-hidden="true"></i></button>
+														<input name="cuItemVal1" type="text" class="w100" maxlength="20" readonly="readonly"/>
+														<button type="button" class="btn icn" onclick="$('input[name=cuItemVal1], input[name=cuItemNm1]').val('');"><i class="fa fa-eraser" aria-hidden="true"></i></button>
+													</td>
+												</tr> -->
+											</table>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+					</div>
+				</div>
+
+				<div class="panelContent">
+					<div class="panelStyle" style="margin: unset;">
+						<!-- TITLE -->
+						<div class="panelTitle">
+							<h2>이미지 첨부</h2>
+							<span class="panelControl"> <i
+								class="fa inner-fa-chevron-up"></i> <!-- 열림/닫힘 화살표 -->
+							</span>
+						</div>
+						<!-- //TITLE -->
+						<div class="inner-panelContent">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%" />
+										<col width="90%" />
+									</colgroup>
+									<tr>
+										<th>이미지 첨부<br/>[전시여부<label class="chkBox"><input type="checkbox" name="fileDispYn" value="N"/></label>]</th>
+										<td colspan="5">
+											<div id="registeredFile"></div>
+											<div style="display: block">
+												<select name="fileCnt" id="fileCnt">
+													<th:block th:each="num: ${#numbers.sequence(1,10)}">
+														<option th:value="${num}" th:text="${num}"></option>
+													</th:block>
+												</select>* 이미지 개수 선택(10개까지 가능)
+											</div> 
+											<th:block th:each="num: ${#numbers.sequence(1,10)}">
+												<div>
+													<div class="uFile w500">
+														<input type="file" th:id="${'file' + num}" th:name="${'file' + num}" class="uFileInput w500" accept="image/*"/> 
+														<label th:for="${'file' + num}" class="uFileLabel">파일선택</label>
+														<input type="hidden" name="fileItemVal"	th:id="${'fileItemVal' + num}" /> 
+														<input type="hidden" name="sysFileNms" th:id="${'sysFileNm' + num}" />
+														<input type="text" th:name="${'linkUrl' + num}" class="w300 aR">
+													</div>
+													<br />
+													<table>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" th:name="${'fileLinkOpenGb' + num}" value="M" checked/>현재창</label>   
+														     <label class="rdoBtn"><input type="radio" th:name="${'fileLinkOpenGb' + num}" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>        
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" th:name="${'fileLinkUrl' + num}" class="w300 aR">
+															</td>
+														</tr>
+														</table>
+												</div>
+											</th:block>
+										</td>
+
+										<th>전시순서</th>
+										<td><input type="text" name="fileDispOrd" class="w100 aR" data-valid-type="numeric"></td>
+									</tr>
+								</table>
+							</div>
+						</div>
+					</div>
+				</div>
+
+				<div class="panelContent">
+					<div class="panelStyle" style="margin: unset;">
+						<!-- TITLE -->
+						<div class="panelTitle">
+							<h2>HTML [상단]</h2>
+							<span class="panelControl"> <i
+								class="fa inner-fa-chevron-up"></i> <!-- 열림/닫힘 화살표 -->
+							</span>
+						</div>
+						<!-- //TITLE -->
+						<div class="inner-panelContent">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%" />
+										<col width="90%" />
+									</colgroup>
+									<tr>
+										<th>[전시여부<label class="chkBox"><input type="checkbox" name="topFsrcDispYn" value="N"/></label>]</th>	
+										<!-- <td><input type="text" name ="topFsrcDispOrd" value="" class="w100 aR" data-valid-type="numeric"></td> -->
+									</tr>
+									<tr>
+										<th>웹용소스</th>
+										<td colspan="5">
+											<div style="margin-top: 5px;">
+												<textarea class="textareaR4 summernote" name="fsrcPcTop" id="fsrcPcTop" rows="15" cols="95" style="width: 1280px;"></textarea>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<th>모바일용소스</th>
+										<td colspan="5">
+											<div style="margin-top: 5px;">
+												<textarea class="textareaR4 summernote" name="fsrcMobileTop" id="fsrcMobileTop" rows="15" cols="95" style="width: 1280px;"></textarea>
+											</div>
+										</td>
+									</tr>
+
+								</table>
+							</div>
+						</div>
+					</div>
+				</div>
+
+				<div class="panelContent">
+					<div class="panelStyle" style="margin: unset;">
+						<!-- TITLE -->
+						<div class="panelTitle">
+							<h2>HTML [하단]</h2>
+							<span class="panelControl"> <i
+								class="fa inner-fa-chevron-up"></i> <!-- 열림/닫힘 화살표 -->
+							</span>
+						</div>
+						<!-- //TITLE -->
+						<div class="inner-panelContent">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%" />
+										<col width="90%" />
+									</colgroup>
+									<tr>
+										<th>[전시여부<label class="chkBox"><input type="checkbox" name="btmFsrcDispYn" value="N"/></label>]</th>	
+										<!-- <td><input type="text" name ="btmFsrcDispOrd" value="" class="w100 aR" data-valid-type="numeric"></td> -->
+									</tr>
+									<tr>
+										<th>웹용소스</th>
+										<td colspan="5">
+											<div style="margin-top: 5px;">
+												<textarea class="textareaR4 summernote" name="fsrcPcBtm" id="fsrcPcBtm" rows="15"	cols="95" style="width: 1280px;"></textarea>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<th>모바일용소스</th>
+										<td colspan="5">
+											<div style="margin-top: 5px;">
+												<textarea class="textareaR4 summernote" name="fsrcMobileBtm" id="fsrcMobileBtm" rows="15" cols="95" style="width: 1280px;"></textarea>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+					</div>
+				</div>
+
+				<!-- 팝업창 하단부분 시작 -->
+
+				<div class="panelStyle" style="margin: unset;">
+					<!-- TITLE -->
+					<div class="panelTitle">
+						<h2>상품 등록</h2>
+						<span class="panelControl"> <i
+							class="fa inner-fa-chevron-up"></i> <!-- 열림/닫힘 화살표 -->
+						</span>
+					</div>
+					<!-- //상품 전시 설정 -->
+					<div class="inner-panelContent">
+						<div class="panelContent">
+							<ul class="panelBar">
+								<li class="left">
+									<p>최대 10개 까지 상품을 추가하실 수 있습니다.</p>
+								</li>
+								<li class="right">
+									<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddGrid">구분추가하기</button>
+								</li>
+							</ul>
+							<!-- 구분 1 -->
+							<div class="inner-panelContent" id="btnAddGridNum1"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum1UseYn" value="Y">
+								<input type="hidden" name="mailtcSq">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 1<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn1" value="N" ></label>]<br>
+												<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum1();">구분 삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType1" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType1" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType1" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle1" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb1" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb1" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>        
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl1" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd1" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p1');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p1');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList1" style="width: 100%; height: 200px;" class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분 1 -->
+
+							<!-- 구분2 -->
+							<div class="inner-panelContent" id="btnAddGridNum2"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum2UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 2<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn2" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum2();">구분 삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType2" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType2" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType2" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle2" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb2" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb2" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl2" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd2" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p2');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p2');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList2" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분2  -->
+
+							<!-- 구분3 -->
+							<div class="inner-panelContent" id="btnAddGridNum3"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum3UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 3<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn3" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum3('gridOptions_c3');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType3" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType3" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType3" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle3" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb3" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb3" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl3" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd3" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p3');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p3');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList3" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분3 -->
+
+							<!-- 구분4 -->
+							<div class="inner-panelContent" id="btnAddGridNum4"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum4UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 4<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn4" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum4('gridOptions_c4');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType4" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType4" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType4" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle4" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb4" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb4" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>                                                                                                                       
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl4" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd4" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p4');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p4');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList4" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분4 -->
+
+							<!-- 구분5 -->
+							<div class="inner-panelContent" id="btnAddGridNum5"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum5UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 5<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn5" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum5('gridOptions_c5');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType5" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType5" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType5" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle5" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb5" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb5" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl5" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd5" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p5');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p5');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList5" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분5 -->
+
+							<!-- 구분6 -->
+							<div class="inner-panelContent" id="btnAddGridNum6"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum6UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 6<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn6" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum5('gridOptions_c6');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType6" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType6" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType6" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle6" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb6" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb6" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl6" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd6" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p6');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p6');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList6" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분6 -->
+
+							<!-- 구분7 -->
+							<div class="inner-panelContent" id="btnAddGridNum7"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum7UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 7<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn7" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum5('gridOptions_c7');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType7" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType7" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType7" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle7" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb7" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb7" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl7" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd7" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p7');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p7');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList7" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분7 -->
+
+							<!-- 구분8 -->
+							<div class="inner-panelContent" id="btnAddGridNum8"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum8UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 8<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn8" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum8('gridOptions_c8');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType8" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType8" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType8" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle8" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb8" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb8" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl8" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd8" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p8');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p8');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList8" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분8 -->
+
+							<!-- 구분9 -->
+							<div class="inner-panelContent" id="btnAddGridNum9"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum9UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 9<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn9" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum8('gridOptions_c9');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType9" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType9" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType9" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle9" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb9" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb9" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl9" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd9" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p9');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p9');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList9" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분9 -->
+
+							<!-- 구분10 -->
+							<div class="inner-panelContent" id="btnAddGridNum10"
+								style="display: none;">
+								<input type="hidden" name="btnAddGridNum10UseYn" value="Y">
+								<div class="panelContent">
+									<table class="frmStyle">
+										<colgroup>
+											<col width="10%" />
+											<col width="90%" />
+										</colgroup>
+										<tr>
+											<th>상품 구분 10<br/>[전시여부<label class="chkBox" style="padding-left: 0px;"><input type="checkbox" name="goodsDispYn10" value="N" ></label>]<br>
+											<br>
+												<button type="button" class="btn btn-danger btn-lg" id=""
+													onclick="btnDeleteGridNum8('gridOptions_c10');">구분
+													삭제</button>
+											</th>
+											<td>
+												<div class="">
+													<table class="frmStyle">
+														<tr>
+															<th>상품 노출 기준</th>
+															<td>
+																<label class="rdoBtn"><input type="radio" name="goodsType10" value="G082_50" />1개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType10" value="G082_51" />2개</label> 
+																<label class="rdoBtn"><input type="radio" name="goodsType10" value="G082_52" />4개</label>
+															</td>
+														</tr>
+														<tr>
+															<th>상품 타이틀</th>
+															<td><input type="text" name="goodsTitle10" class="w300 aR">
+															</td>
+														</tr>
+														<tr>                                                                                                     
+															<th>클릭시 페이지창</th>                                                                                                     
+															<td>                                                                                                         
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb10" value="M" checked="checked"/>현재창</label>   
+															<label class="rdoBtn"><input type="radio" name="linkOpenGb10" value="N" />새창</label>                    
+															</td>                                                                                                                    
+														</tr>   
+														<tr>
+															<th>상품 링크</th>
+															<td><input type="text" name="goodsUrl10" class="w300 aR">
+															</td>
+														</tr>
+														<tr>
+															<th>전시 순서</th>
+															<td><input type="text" name="goodsDispOrd10" class="w300 aR" data-valid-type="numeric">
+															</td>
+														</tr>
+													</table>
+													<ul class="panelBar">
+														<li class="left">
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnOpenGoodsPopup('gridOptions_p10');">상품 조회</button>
+															<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGoodsDeleteRow('gridOptions_p10');">행 삭제</button>
+														</li>
+													</ul>
+													<!-- Agrid -->
+													<div id="gridTempGbList10" style="width: 100%; height: 200px;"	class="ag-theme-balham"></div>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+							<!-- 구분10 -->
+
+						</div>
+						<!-- panelContent -->
+					</div>
+					<!-- end of inner-panelContent -->
+				</div>
+			</div>
+			<br><br>
+			<!-- 버튼 배치 영역 -->
+			<ul class="panelBar">
+				<li class="right">
+					<button type="button" class="btn btn-danger btn-lg"
+						id="btndeleteTemplate">닫기</button>
+					<button type="button" class="btn btn-info btn-lg"
+						id="btnSaveTemplate">저장</button>
+				</li>
+
+			</ul>
+			<!-- //버튼 배치 영역 -->
+		</form>
+	</div>
+</div>
+<script type="text/javascript" src="/ux/plugins/summernote/summernote.js?v=2020103001"></script>
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.summernote.js?v=2020103001"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	
+	let AddgridRow;	
+	let goodsStatList = gagajf.convertToArray([[${goodsStatList}]]);
+	let reviewList = [[${reviewList}]];
+	let couponList = [[${couponList}]];
+	let fileList = [[${fileList}]];
+	let fsrcListTop = [[${fsrcListTop}]];
+	let fsrcListBtm = [[${fsrcListBtm}]];
+	let goodsList = [[${goodsList}]];
+	let goodsDetailList1 = [[${goodsDetailList1}]];
+	let goodsDetailList2 = [[${goodsDetailList2}]];
+	let goodsDetailList3 = [[${goodsDetailList3}]];
+	let goodsDetailList4 = [[${goodsDetailList4}]];
+	let goodsDetailList5 = [[${goodsDetailList5}]];
+	let goodsDetailList6 = [[${goodsDetailList6}]];
+	let goodsDetailList7 = [[${goodsDetailList7}]];
+	let goodsDetailList8 = [[${goodsDetailList8}]];
+	let goodsDetailList9 = [[${goodsDetailList9}]];
+	let goodsDetailList10 = [[${goodsDetailList10}]];
+	
+	let mode = [[${mode}]]; 
+	
+	
+	// 리뷰 리스트 설정
+	var columnReviewList = [
+		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+		{headerName: "상품ID", field: "reItemVal", width: 110, cellClass: 'text-center'},
+		{headerName: "상품명", field: "reItemNm", width: 200, cellClass: 'text-center'},
+		{headerName: "시작일"			, field:'startSearchDate'	, width:110, cellClass: 'text-center',
+			cellEditor: 'datePicker',
+			cellEditorParams: { maxlength: 10, required: true },
+		},
+		{headerName: "시작시간"		, field:'startSearchTime'	, width:150, cellClass: 'text-center',
+			cellEditor: 'dateTimer',
+			cellEditorParams: { maxlength: 8, required: true },
+		},
+		{headerName: "종료일"			, field:'endSearchDate'		, width:110, cellClass: 'text-center',
+			cellEditor: 'datePicker',
+			cellEditorParams: { maxlength: 10, required: true }
+		},
+		{headerName: "종료시간"		, field:'endSearchTime'		, width:150, cellClass: 'text-center',
+			cellEditor: 'dateTimer',
+			cellEditorParams: { maxlength: 8, required: true },
+		},
+	];  
+	
+	//상품 전시 그리드 그리기
+	var columnDefs = [
+		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+		{headerName: "상품 ID", field: "goodsItemVal" , width: 120, cellClass: 'text-center'},
+		{headerName: "브랜드명", field: "brandEnm" , width: 200, cellClass: 'text-center'},
+		{headerName: "상품명", field: "goodsNm" , width: 200, cellClass: 'text-center'},
+		{headerName: "판매상태", field: "goodsStat" , width: 100, cellClass: 'text-center'
+			,cellEditorParams: { values: gagaAgGrid.extractValues(goodsStatList) },
+			valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },
+			valueParser: function (params) { return gagaAgGrid.lookupKey(goodsStatList, params.newValue); }	
+		},
+		{headerName: "정상가", field: "listPrice" , width: 120, cellClass: 'text-center'
+			, valueFormatter: function(params) { return params.value.addComma(); }
+		},
+		{headerName: "판매가", field: "currPrice" , width: 120, cellClass: 'text-center'
+			, valueFormatter: function(params) { return params.value.addComma(); }
+		},
+	]
+	
+	// Add on options
+	var gridOptions_p1 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p2 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p3 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p4 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p5 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p6 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p7 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p8 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p9 = gagaAgGrid.getGridOptions(columnDefs);
+	var gridOptions_p10 = gagaAgGrid.getGridOptions(columnDefs);
+	
+	
+	// 표시순번 수정가능
+	gridOptions_p1.defaultColDef.editable = true;
+	gridOptions_p2.defaultColDef.editable = true;
+	gridOptions_p3.defaultColDef.editable = true;
+	gridOptions_p4.defaultColDef.editable = true;
+	gridOptions_p5.defaultColDef.editable = true;
+	gridOptions_p6.defaultColDef.editable = true;
+	gridOptions_p7.defaultColDef.editable = true;
+	gridOptions_p8.defaultColDef.editable = true;
+	gridOptions_p9.defaultColDef.editable = true;
+	gridOptions_p10.defaultColDef.editable = true;
+	            
+	gridOptions_p1.suppressRowClickSelection = true;
+	gridOptions_p2.suppressRowClickSelection = true;
+	gridOptions_p3.suppressRowClickSelection = true;
+	gridOptions_p4.suppressRowClickSelection = true;
+	gridOptions_p5.suppressRowClickSelection = true;
+	gridOptions_p6.suppressRowClickSelection = true;
+	gridOptions_p7.suppressRowClickSelection = true;
+	gridOptions_p8.suppressRowClickSelection = true;
+	gridOptions_p9.suppressRowClickSelection = true;
+	gridOptions_p10.suppressRowClickSelection = true;
+	
+	// 상품 중복선택
+	gridOptions_p2.rowSelection = 'multiple';
+	gridOptions_p1.rowSelection = 'multiple';
+	gridOptions_p3.rowSelection = 'multiple';
+	gridOptions_p4.rowSelection = 'multiple';
+	gridOptions_p5.rowSelection = 'multiple';
+	gridOptions_p6.rowSelection = 'multiple';
+	gridOptions_p7.rowSelection = 'multiple';
+	gridOptions_p8.rowSelection = 'multiple';
+	gridOptions_p9.rowSelection = 'multiple';
+	gridOptions_p10.rowSelection = 'multiple';
+	
+	
+	
+	// 리뷰 그리드 설정
+	var gridOptionsPlanReviewList = gagaAgGrid.getGridOptions(columnReviewList);
+	gridOptionsPlanReviewList.stopEditingWhenGridLosesFocus = true;
+	gridOptionsPlanReviewList.defaultColDef.editable = true;
+	gridOptionsPlanReviewList.rowSelection = "multiple";
+	gridOptionsPlanReviewList.suppressRowClickSelection = true;
+	
+	
+
+	
+	//팝업창 닫기버튼
+	$('#btndeleteTemplate').on('click', function() {
+		mcxDialog.confirm("창을 닫으시겠습니까?<br>닫은 내용은 복원하실 수 없습니다.", {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				uifnPopupClose('popupPlanTemplate');
+			}
+		});
+	});
+	
+	// 첨부파일 삭제
+ 	var fnDeleteFile = function(obj, noticeSq, seq, sysFileNm) {
+		mcxDialog.confirm('정말 삭제하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				var params = new Object();
+				params.noticeSq = noticeSq;
+				params.seq = seq;
+				params.sysFileNm = sysFileNm;
+
+				var jsonData = JSON.stringify(params);
+				gagajf.ajaxJsonSubmit('/board/notice/file/delete', jsonData, function() {
+					$(obj).parent().remove();
+				});
+			}
+		});
+	}
+	 
+	// 상품 구분 추가 버튼 추가 버튼 표시는 1~5까지 순서대로 표시
+	$('#btnAddGrid').on('click', function(){
+		if($('#btnAddGridNum1').css('display') == 'none'){
+			$('#btnAddGridNum1').show();
+		}else if($('#btnAddGridNum2').css('display') == 'none' && $('#btnAddGridNum1').css('display') != 'none'){
+			$('#btnAddGridNum2').show();
+		}else if($('#btnAddGridNum3').css('display') == 'none' && $('#btnAddGridNum2').css('display') != 'none'){
+			$('#btnAddGridNum3').show();
+		}else if($('#btnAddGridNum4').css('display') == 'none' && $('#btnAddGridNum3').css('display') != 'none'){
+			$('#btnAddGridNum4').show();
+		}else if($('#btnAddGridNum5').css('display') == 'none' && $('#btnAddGridNum4').css('display') != 'none'){
+			$('#btnAddGridNum5').show();
+		}else if($('#btnAddGridNum6').css('display') == 'none' && $('#btnAddGridNum5').css('display') != 'none'){
+			$('#btnAddGridNum6').show();
+		}else if($('#btnAddGridNum7').css('display') == 'none' && $('#btnAddGridNum6').css('display') != 'none'){
+			$('#btnAddGridNum7').show();
+		}else if($('#btnAddGridNum8').css('display') == 'none' && $('#btnAddGridNum7').css('display') != 'none'){
+			$('#btnAddGridNum8').show();
+		}else if($('#btnAddGridNum9').css('display') == 'none' && $('#btnAddGridNum8').css('display') != 'none'){
+			$('#btnAddGridNum9').show();
+		}else if($('#btnAddGridNum10').css('display') == 'none' && $('#btnAddGridNum9').css('display') != 'none'){
+			$('#btnAddGridNum10').show();
+		}else if($('#btnAddGridNum10').css('display') != 'none'){
+			mcxDialog.alertC("구분자는 최대 10개까지 등록가능합니다.", {
+				sureBtnText: "확인"
+			});
+			return false;
+		}
+	});
+	
+	
+	
+	// 상품추가
+	var fnFetchPlanGoods = function(goodsData) {
+		for(let i = 0 ; i < goodsData.length ; i++) {
+			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(AddgridRow);		// 받아온 모든 데이터
+
+			// 받아온 data for
+			for(let j = 0 ; j < gridListValue.length ; j++) {
+				// 동일한 data는 추가하지 않음
+				if(gridListValue[j].goodsItemVal == goodsData[i].goodsCd) {	addChk = false;	}		// 중복체크
+			}
+
+			// 중복되지 않은 데이터 리스트에 추가
+			if(addChk) {
+				gagaAgGrid.addRowData(AddgridRow, {
+														"goodsItemVal":goodsData[i].goodsCd
+													   ,"brandEnm":goodsData[i].brandEnm
+													   ,"goodsNm":goodsData[i].goodsNm
+													   ,"goodsStat":goodsData[i].goodsStat
+													   ,"listPrice":goodsData[i].listPrice
+													   ,"currPrice":goodsData[i].currPrice
+														
+				});
+			}
+		}
+		
+		uifnPopupClose("popupGoods");
+	}
+	
+	// 버튼별 상품추가 팝업
+	var fnOpenGoodsPopup = function(param) {
+		switch (param){
+		case 'gridOptions_p1': 
+			AddgridRow = gridOptions_p1;
+			break;
+		case 'gridOptions_p2' : 
+			AddgridRow = gridOptions_p2;
+			break;
+		case 'gridOptions_p3' : 
+			AddgridRow = gridOptions_p3;
+			break;
+		case 'gridOptions_p4' : 
+			AddgridRow = gridOptions_p4;
+			break;
+		case 'gridOptions_p5' : 
+			AddgridRow = gridOptions_p5;
+			break;
+		case 'gridOptions_p6' : 
+			AddgridRow = gridOptions_p6;
+			break;
+		case 'gridOptions_p7' : 
+			AddgridRow = gridOptions_p7;
+			break;
+		case 'gridOptions_p8' : 
+			AddgridRow = gridOptions_p8;
+			break;
+		case 'gridOptions_p9' : 
+			AddgridRow = gridOptions_p9;
+			break;
+		case 'gridOptions_p10' : 
+			AddgridRow = gridOptions_p10;
+			break;
+		}
+		
+		cfnOpenGoodsPopup('fnFetchPlanGoods');
+	}
+	
+	// 상품 삭제
+	var fnGoodsDeleteRow = function(param) {
+		switch (param){
+		case 'gridOptions_p1': 
+			AddgridRow = gridOptions_p1;
+			break;
+		case 'gridOptions_p2' : 
+			AddgridRow = gridOptions_p2;
+			break;
+		case 'gridOptions_p3' : 
+			AddgridRow = gridOptions_p3;
+			break;
+		case 'gridOptions_p4' : 
+			AddgridRow = gridOptions_p4;
+			break;
+		case 'gridOptions_p5' : 
+			AddgridRow = gridOptions_p5;
+			break;
+		case 'gridOptions_p6' : 
+			AddgridRow = gridOptions_p6;
+			break;
+		case 'gridOptions_p7' : 
+			AddgridRow = gridOptions_p7;
+			break;
+		case 'gridOptions_p8' : 
+			AddgridRow = gridOptions_p8;
+			break;
+		case 'gridOptions_p9' : 
+			AddgridRow = gridOptions_p9;
+			break;
+		case 'gridOptions_p10' : 
+			AddgridRow = gridOptions_p10;
+			break;
+		}
+		
+		var selectedData = gagaAgGrid.selectedRowData(AddgridRow);
+	
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return false;
+		}		
+		//화면에서 삭제
+		gagaAgGrid.removeRowData(AddgridRow, false);
+	}
+	
+	// 상품 구분 삭제 버튼  삭제는 해당 하는 폼이 삭제
+	function btnDeleteGridNum1(param){
+		if($('#btnAddGridNum1').css('display') !='none'){
+			$('#btnAddGridNum1').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq1]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle1]").val('');
+			$("#planTemplateForm input[name=goodsUrl1]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd1]").val('');
+			$('#planTemplateForm input:radio[name=goodsType1]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb1]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn1]').prop('checked', false);
+			gridOptions_p1.api.updateRowData();
+		}
+	}		
+	function btnDeleteGridNum2(param){
+		if($('#btnAddGridNum2').css('display') !='none'){
+			$('#btnAddGridNum2').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq2]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle2]").val('');
+			$("#planTemplateForm input[name=goodsUrl2]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd2]").val('');
+			$('#planTemplateForm input:radio[name=goodsType2]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb2]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn2]').prop('checked', false);
+			gridOptions_p2.api.updateRowData();
+		}			
+	}			
+	function btnDeleteGridNum3(param){
+		if ($('#btnAddGridNum3').css('display') !='none'){
+			$('#btnAddGridNum3').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq3]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle3]").val('');
+			$("#planTemplateForm input[name=goodsUrl3]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd3]").val('');
+			$('#planTemplateForm input:radio[name=goodsType3]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb3]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn3]').prop('checked', false);
+			gridOptions_p3.api.updateRowData();
+		}			
+	}		
+	function btnDeleteGridNum4(param){
+		if ($('#btnAddGridNum4').css('display') !='none'){
+			$('#btnAddGridNum4').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq4]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle4]").val('');
+			$("#planTemplateForm input[name=goodsUrl4]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd4]").val('');
+			$('#planTemplateForm input:radio[name=goodsType4]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb4]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn4]').prop('checked', false);
+			gridOptions_p4.api.updateRowData();
+		}			
+	}
+	function btnDeleteGridNum5(param){
+		if ($('#btnAddGridNum5').css('display') !='none'){
+			$('#btnAddGridNum5').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq5]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle5]").val('');
+			$("#planTemplateForm input[name=goodsUrl5]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd5]").val('');
+			$('#planTemplateForm input:radio[name=goodsType5]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb5]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn5]').prop('checked', false);
+			gridOptions_p5.api.updateRowData();
+		}
+	} 
+	function btnDeleteGridNum6(param){
+		if ($('#btnAddGridNum6').css('display') !='none'){
+			$('#btnAddGridNum6').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq6]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle6]").val('');
+			$("#planTemplateForm input[name=goodsUrl6]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd6]").val('');
+			$('#planTemplateForm input:radio[name=goodsType6]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb6]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn6]').prop('checked', false);
+			gridOptions_p6.api.updateRowData();
+		}
+	} 
+	function btnDeleteGridNum7(param){
+		if ($('#btnAddGridNum7').css('display') !='none'){
+			$('#btnAddGridNum7').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq7]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle7]").val('');
+			$("#planTemplateForm input[name=goodsUrl7]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd7]").val('');
+			$('#planTemplateForm input:radio[name=goodsType7]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb7]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn7]').prop('checked', false);
+			gridOptions_p7.api.updateRowData();
+		}
+	} 
+	function btnDeleteGridNum8(param){
+		if ($('#btnAddGridNum8').css('display') !='none'){
+			$('#btnAddGridNum8').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq8]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle8]").val('');
+			$("#planTemplateForm input[name=goodsUrl8]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd8]").val('');
+			$('#planTemplateForm input:radio[name=goodsType8]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb8]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn8]').prop('checked', false);
+			gridOptions_p8.api.updateRowData();
+		}
+	} 
+	function btnDeleteGridNum9(param){
+		if ($('#btnAddGridNum9').css('display') !='none'){
+			$('#btnAddGridNum9').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq9]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle9]").val('');
+			$("#planTemplateForm input[name=goodsUrl9]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd9]").val('');
+			$('#planTemplateForm input:radio[name=goodsType9]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb9]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn9]').prop('checked', false);
+			gridOptions_p9.api.updateRowData();
+		}
+	} 
+	function btnDeleteGridNum10(param){
+		if ($('#btnAddGridNum10').css('display') !='none'){
+			$('#btnAddGridNum10').hide();
+			var deleteData = [];
+			var data = {};
+				data.planContSq = $('#planTemplateForm input[name=goodsPlanContSq10]').val();
+				deleteData.push(data);
+			var jsonData = JSON.stringify(deleteData);
+			gagajf.ajaxJsonSubmit('marketing/planning/detail/template/goods/delete', jsonData);
+			$("#planTemplateForm input[name=goodsTitle10]").val('');
+			$("#planTemplateForm input[name=goodsUrl10]").val('');
+			$("#planTemplateForm input[name=goodsDispOrd10]").val('');
+			$('#planTemplateForm input:radio[name=goodsType10]').prop('checked', false);
+			$('#planTemplateForm input:radio[name=linkOpenGb10]').prop('checked', false);
+			$('#planTemplateForm input:checkbox[name=goodsDispYn10]').prop('checked', false);
+			gridOptions_p10.api.updateRowData();
+		}
+	} 	
+	
+	
+	// 첨부파일 개수 선택시
+	$("#fileCnt").on("change", function() {
+		for (var i = 1; i <= 10; i++) {
+			$('#file' + i).parent().parent().show();
+		}
+
+		var fileCnt = $(this).val();
+		for (var i = 10; i > fileCnt; i--) {
+			$('#file' + i).parent().parent().hide();
+		}
+	});
+
+	// 파일첨부 선택 시
+	$('#file1').on('change', function() { fnChooseFile(this, 1); });
+	$('#file2').on('change', function() { fnChooseFile(this, 2); });
+	$('#file3').on('change', function() { fnChooseFile(this, 3); });
+	$('#file4').on('change', function() { fnChooseFile(this, 4); });
+	$('#file5').on('change', function() { fnChooseFile(this, 5); });
+	$('#file6').on('change', function() { fnChooseFile(this, 6); });
+	$('#file7').on('change', function() { fnChooseFile(this, 7); });
+	$('#file8').on('change', function() { fnChooseFile(this, 8); });
+	$('#file9').on('change', function() { fnChooseFile(this, 9); });
+	$('#file10').on('change', function() { fnChooseFile(this, 10); });
+	
+
+	var fnChooseFile = function(obj, fileNo) {
+		// multiple 속성이 있으면 files에는 다수의 객체가 할당됨
+		var file = obj.files[0];
+
+		// 파일 업로드
+		gagajf.ajaxFileUpload('/common/file/upload?subDir=/planning'
+				, file
+				, function(result) {
+					// 업로드한 파일명 설정
+					$('#fileItemVal' + fileNo).val(result.oldFileName);
+					$('#sysFileNm' + fileNo).val(result.newFileName);
+				}
+		);
+	}
+	
+	// 리뷰상품 추가 콜백 함수
+	var reviewGoodsList = function (result) {
+		// 기존 리스트 데이터 for
+		for(let i = 0 ; i < result.length ; i++) {
+			let addChk = true, gridListValue = gagaAgGrid.getAllRowData(gridOptionsPlanReviewList);		// 받아온 모든 데이터
+			// 받아온 data for
+			for(let j = 0 ; j < gridListValue.length ; j++) {
+				// 동일한 data는 추가하지 않음
+				if(gridListValue[j].reItemVal == result[i].goodsCd) {	addChk = false;	}		// 중복체크
+			}
+			// 중복되지 않은 데이터 리스트에 추가
+			if(addChk) {
+				gagaAgGrid.addRowData(gridOptionsPlanReviewList, {"reItemVal":result[i].goodsCd , "reItemNm":result[i].goodsNm, "startSearchDate": _today, "startSearchTime": '00:00:00', "endSearchDate":_today, endSearchTime: '23:59:59' });
+			}
+		}
+		
+		uifnPopupClose("popupGoods");
+	}
+	
+	// 리뷰 선택삭제 버튼 클릭시
+    $('#btnReviewDelete').on('click', function() {
+    	gridOptionsPlanReviewList.api.updateRowData({remove:gagaAgGrid.selectedRowData(gridOptionsPlanReviewList)});
+    });
+	
+	
+	// 쿠폰조회 팝업
+	var fnOpenCouponRetrievePopup = function(strReturnCode, strReturnName) {
+		var oParam = new Object();
+		oParam.returnCode = strReturnCode;
+		oParam.returnName = strReturnName;
+		cfnOpenCouponRetrievePopup($(strReturnName).val(), oParam);
+	}
+	
+	// 쿠폰 추가
+	var fnAddCoupone = function() {
+		var len =  $('#planTemplateForm').find('#couponTable tr').length;
+		
+		var html =  '<tr>';
+		html += '<td colspan="3">';
+		html += '<input type="text" class="w300" id="cuItemNm" name="cuItemNm'+(len+1)+'"/>';
+		html += '<button type="button" class="btn icn" id="couponPlusBtn'+(len+1)+'"><i class="fa fa-search cpn" aria-hidden="true"></i></button>';
+		html += '<input id="cuItemVal" name="cuItemVal'+(len+1)+'" type="text" class="w100" maxlength="20" readonly="readonly"/>';
+		html += '<button type="button" class="btn icn" id="deleteCoupon'+(len+1)+'"><i class="fa fa-eraser" aria-hidden="true"></i></button>';
+		html += '</td>';
+		html += '</tr>';
+			
+			
+			
+		$("#couponTable").append(html);
+		
+		$('#couponPlusBtn'+(len+1)).attr("onclick","fnOpenCouponRetrievePopup('input[name=cuItemVal"+(len+1)+"]', 'input[name=cuItemNm"+(len+1)+"]');")
+		$('#deleteCoupon'+(len+1)).attr("onclick","deleteRowCoupon("+(len+1)+")");
+	}
+	
+
+	 //삭제 버튼
+	var deleteRowCoupon = function(len) {  
+		var cnt = len;
+	    var html = $("#deleteCoupon"+len).closest('tr');
+	    html.remove(); //tr 테그 삭제
+	} 
+		
+	
+	// 팝업창 저장
+	$('#btnSaveTemplate').on('click', function() {
+		
+		// 리뷰관련 데이터 담기
+		let allReviewData = gagaAgGrid.getAllRowData(gridOptionsPlanReviewList);
+		var multiPlanReview = [];
+		
+		$.each(allReviewData, function(idx, item) {
+			multiPlanReview.push(item.reItemVal);
+		});
+		
+		var multiPlanReviewStartD = [];
+		$.each(allReviewData, function(idx, item) {
+			multiPlanReviewStartD.push(item.startSearchDate);
+		});
+		
+		var multiPlanReviewStartT = [];
+		$.each(allReviewData, function(idx, item) {
+			multiPlanReviewStartT.push(item.startSearchTime);
+		});
+		
+		var multiPlanReviewEndD = [];
+		$.each(allReviewData, function(idx, item) {
+			multiPlanReviewEndD.push(item.endSearchDate);
+		});
+		
+		var multiPlanReviewEndT = [];
+		$.each(allReviewData, function(idx, item) {
+			multiPlanReviewEndT.push(item.endSearchTime);
+		});
+		
+		// 쿠폰관련 데이터 담기
+		var multiPlanCoupon = [];
+		var len =  $('#planTemplateForm').find('#couponTable tr').length;
+		for (var i = 0; i < len; i++) {
+			multiPlanCoupon.push($('#planTemplateForm').find('#couponTable tr').children().eq(i).find("#cuItemVal").val());
+		}
+		
+		//파일관련 데이터 담기
+		var multiPlanFile = [];
+		var multiPlanFile2 = [];
+		var multiPlanFile3 = [];
+		
+		var count = $("#planTemplateForm select[name=fileCnt]").val();
+		for (var i = 0; i < count; i++) {
+			if($('#fileItemVal'+(i+1)).val() == '' || typeof $('#fileItemVal'+(i+1)).val() == 'undeifined'){
+				false;
+			}else{
+				multiPlanFile.push($('#fileItemVal'+(i+1)).val());
+				multiPlanFile2.push($('#planTemplateForm input[name=fileLinkUrl'+(i+1)+']').val());
+				multiPlanFile3.push($('#planTemplateForm input:radio[name=linkOpenGb'+(i+1)+']:checked').val());
+			}
+		}
+		
+		// 리뷰 전시 클릭했을 경우
+		if($("input:checkbox[name=reDispYn]").prop("checked")){
+			$("input:checkbox[name=reDispYn]").val('Y');
+			if($("input[name=reTitle]").val()==''){
+				mcxDialog.alert('리뷰 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=reDispOrd]").val()==''){
+				mcxDialog.alert('리뷰 전시순서를 입력하세요.');
+				return;
+			}
+			if(multiPlanReview.length == 0){
+				mcxDialog.alert('리뷰 상품을 선택하세요.');
+				return;
+			}
+			
+		}else{
+			$("input:checkbox[name=reDispYn]").val('N');
+		}
+		
+		// 쿠폰 전시 클랙했을 경우
+		if($("input:checkbox[name=cuDispYn]").prop("checked")){
+			$("input:checkbox[name=cuDispYn]").val('Y');
+			if($("input[name=cuTitle]").val()==''){
+				mcxDialog.alert('쿠폰 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=cuDispOrd]").val()==''){
+				mcxDialog.alert('쿠폰 전시순서를 입력하세요.');
+				return;
+			}
+			if(multiPlanCoupon.length == 0){
+				mcxDialog.alert('쿠폰을 선택하세요.');
+				return;
+			}
+			if($("textarea[name=note]").val()=='' && $("textarea[name=note]").val()==''){
+				mcxDialog.alert('쿠폰 유의사항 내용을  입력하세요.');
+				return;
+			}
+			
+		}else{
+			$("input:checkbox[name=cuDispYn]").val('N');
+		}
+		
+		// 이미지 전시 클랙했을 경우
+		if($("input:checkbox[name=fileDispYn]").prop("checked")){
+			$("input:checkbox[name=fileDispYn]").val('Y');
+			
+			if($("input[name=fileDispOrd]").val()==''){
+				mcxDialog.alert('이미지 전시순서를 입력하세요.');
+				return;
+			}
+			if(multiPlanFile.length == 0 && $("#dnFile").text() == null){
+				mcxDialog.alert('등록할 이미지를 등록하세요.');
+				return;
+			}
+			
+		}else{
+			$("input:checkbox[name=fileDispOrd]").val('N');
+		}
+		
+		// html 상단 전시 클릭했을 경우
+		if($("input:checkbox[name=topFsrcDispYn]").prop("checked")){
+			$("input:checkbox[name=topFsrcDispYn]").val('Y');
+			if($("textarea[name=fsrcMobileTop]").val()=='' && $("textarea[name=fsrcPcTop]").val()==''){
+				mcxDialog.alert('HTML[상단] 내용을  입력하세요.');
+				return;
+			}
+		}else{
+			$("input:checkbox[name=topFsrcDispYn]").val('N');
+		}
+		
+		// html 하단 전시 클릭했을 경우
+		if($("input:checkbox[name=btmFsrcDispYn]").prop("checked")){
+			$("input:checkbox[name=btmFsrcDispYn]").val('Y');
+			if($("textarea[name=fsrcMobileBtm]").val()=='' && $("textarea[name=fsrcPcBtm]").val()==''){
+				mcxDialog.alert('HTML[하단] 내용을  입력하세요.');
+				return;
+			}
+		}else{
+			$("input:checkbox[name=btmFsrcDispYn]").val('N');
+		}
+		
+		// 상품 등록
+		let arrayData1 = gagaAgGrid.getAllRowData(gridOptions_p1)
+		let arrayData2 = gagaAgGrid.getAllRowData(gridOptions_p2)
+		let arrayData3 = gagaAgGrid.getAllRowData(gridOptions_p3)
+		let arrayData4 = gagaAgGrid.getAllRowData(gridOptions_p4)
+		let arrayData5 = gagaAgGrid.getAllRowData(gridOptions_p5)
+		let arrayData6 = gagaAgGrid.getAllRowData(gridOptions_p6)
+		let arrayData7 = gagaAgGrid.getAllRowData(gridOptions_p7)
+		let arrayData8 = gagaAgGrid.getAllRowData(gridOptions_p8)
+		let arrayData9 = gagaAgGrid.getAllRowData(gridOptions_p9)
+		let arrayData10 = gagaAgGrid.getAllRowData(gridOptions_p10)
+		
+
+		//상품 등록 CHECK
+		//상품구분 1
+		if($("input:checkbox[name=goodsDispYn1]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn1]").val('Y');
+			
+			if($("input[name=goodsTitle1]").val()==''){
+				mcxDialog.alert('상품 구분1의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd1]").val()==''){
+				mcxDialog.alert('상품 구분1의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData1.length == 0 && $('#btnAddGridNum1').css('display') != 'none'){
+				mcxDialog.alert('상품 구분1 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn1]").val('N');
+		}
+		
+		//상품구분 2
+		if($("input:checkbox[name=goodsDispYn2]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn2]").val('Y');
+			
+			if($("input[name=goodsTitle2]").val()==''){
+				mcxDialog.alert('상품 구분2의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd2]").val()==''){
+				mcxDialog.alert('상품 구분2의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData2.length == 0 && $('#btnAddGridNum2').css('display') != 'none'){
+				mcxDialog.alert('상품 구분2 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn2]").val('N');
+		}
+		
+		//상품구분 3
+		if($("input:checkbox[name=goodsDispYn3]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn3]").val('Y');
+			
+			if($("input[name=goodsTitle3]").val()==''){
+				mcxDialog.alert('상품 구분3의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd3]").val()==''){
+				mcxDialog.alert('상품 구분3의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData3.length == 0 && $('#btnAddGridNum3').css('display') != 'none'){
+				mcxDialog.alert('상품 구분3 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn3]").val('N');
+		}
+		
+		//상품구분 4
+		if($("input:checkbox[name=goodsDispYn4]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn4]").val('Y');
+			
+			if($("input[name=goodsTitle4]").val()==''){
+				mcxDialog.alert('상품 구분4의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd4]").val()==''){
+				mcxDialog.alert('상품 구분4의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData4.length == 0 && $('#btnAddGridNum4').css('display') != 'none'){
+				mcxDialog.alert('상품 구분4 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn4]").val('N');
+		}
+		
+		//상품구분 5
+		if($("input:checkbox[name=goodsDispYn5]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn5]").val('Y');
+			
+			if($("input[name=goodsTitle5]").val()==''){
+				mcxDialog.alert('상품 구분5의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd5]").val()==''){
+				mcxDialog.alert('상품 구분5의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData5.length == 0 && $('#btnAddGridNum5').css('display') != 'none'){
+				mcxDialog.alert('상품 구분5 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn5]").val('N');
+		}
+		
+		//상품구분 6
+		if($("input:checkbox[name=goodsDispYn6]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn6]").val('Y');
+			
+			if($("input[name=goodsTitle6]").val()==''){
+				mcxDialog.alert('상품 구분6의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd6]").val()==''){
+				mcxDialog.alert('상품 구분6의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData6.length == 0 && $('#btnAddGridNum6').css('display') != 'none'){
+				mcxDialog.alert('상품 구분6 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn6]").val('N');
+		}
+		
+		//상품구분 7
+		if($("input:checkbox[name=goodsDispYn7]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn7]").val('Y');
+			
+			if($("input[name=goodsTitle7]").val()==''){
+				mcxDialog.alert('상품 구분7의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd7]").val()==''){
+				mcxDialog.alert('상품 구분7의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData7.length == 0 && $('#btnAddGridNum7').css('display') != 'none'){
+				mcxDialog.alert('상품 구분7 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn7]").val('N');
+		}
+		
+		//상품구분 8
+		if($("input:checkbox[name=goodsDispYn8]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn8]").val('Y');
+			
+			if($("input[name=goodsTitle8]").val()==''){
+				mcxDialog.alert('상품 구분8의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd8]").val()==''){
+				mcxDialog.alert('상품 구분8의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData8.length == 0 && $('#btnAddGridNum8').css('display') != 'none'){
+				mcxDialog.alert('상품 구분8 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn8]").val('N');
+		}
+		
+		//상품구분 9
+		if($("input:checkbox[name=goodsDispYn9]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn9]").val('Y');
+			
+			if($("input[name=goodsTitle9]").val()==''){
+				mcxDialog.alert('상품 구분9의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd9]").val()==''){
+				mcxDialog.alert('상품 구분9의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData9.length == 0 && $('#btnAddGridNum9').css('display') != 'none'){
+				mcxDialog.alert('상품 구분9 의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn9]").val('N');
+		}
+		
+		//상품구분 10
+		if($("input:checkbox[name=goodsDispYn10]").prop("checked")){
+			$("input:checkbox[name=goodsDispYn10]").val('Y');
+			
+			if($("input[name=goodsTitle10]").val()==''){
+				mcxDialog.alert('상품 구분10의 타이틀을 입력하세요.');
+				return;
+			}
+			if($("input[name=goodsDispOrd10]").val()==''){
+				mcxDialog.alert('상품 구분10의 전시순서를 입력하세요.');
+				return;
+			}
+			if(arrayData10.length == 0 && $('#btnAddGridNum10').css('display') != 'none'){
+				mcxDialog.alert('상품 구분10의 상품을 등록해주세요.');
+				return false;
+			}
+		}else{
+			$("input:checkbox[name=goodsDispYn10]").val('N');
+		}
+	
+		
+		let goodsTemp1 = {};
+		let goodsTemp2 = {};
+		let goodsTemp3 = {};
+		let goodsTemp4 = {};
+		let goodsTemp5 = {};
+		let goodsTemp6 = {};
+		let goodsTemp7 = {};
+		let goodsTemp8 = {};
+		let goodsTemp9 = {};
+		let goodsTemp10 = {};
+		goodsTemp1.goodsTitle = $('#planTemplateForm input[name=goodsTitle1]').val();
+		goodsTemp1.goodsUrl = $('#planTemplateForm input[name=goodsUrl1]').val();
+		goodsTemp1.goodsType = $('#planTemplateForm input:radio[name=goodsType1]:checked').val();
+		goodsTemp1.goodsLinkOpenGb = $('#planTemplateForm input[name=linkOpenGb1]:checked').val();
+		goodsTemp1.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd1]').val();
+		goodsTemp1.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn1]').val();
+		goodsTemp1.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq1]').val();
+		
+		goodsTemp2.goodsTitle = $('#planTemplateForm input[name=goodsTitle2]').val();
+		goodsTemp2.goodsUrl = $('#planTemplateForm input[name=goodsUrl2]').val();
+		goodsTemp2.goodsType = $('#planTemplateForm input:radio[name=goodsType2]:checked').val();
+		goodsTemp2.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb2]:checked').val();
+		goodsTemp2.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd2]').val();
+		goodsTemp2.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn2]').val();
+		goodsTemp2.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq2]').val();
+		
+		goodsTemp3.goodsTitle = $('#planTemplateForm input[name=goodsTitle3]').val();
+		goodsTemp3.goodsUrl = $('#planTemplateForm input[name=goodsUrl3]').val();
+		goodsTemp3.goodsType = $('#planTemplateForm input:radio[name=goodsType3]:checked').val();
+		goodsTemp3.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb3]:checked').val();
+		goodsTemp3.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd3]').val();
+		goodsTemp3.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn3]').val();
+		goodsTemp3.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq3]').val();
+		
+		goodsTemp4.goodsTitle = $('#planTemplateForm input[name=goodsTitle4]').val();
+		goodsTemp4.goodsUrl = $('#planTemplateForm input[name=goodsUrl4]').val();
+		goodsTemp4.goodsType = $('#planTemplateForm input:radio[name=goodsType4]:checked').val();
+		goodsTemp4.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb4]:checked').val();
+		goodsTemp4.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd4]').val();
+		goodsTemp4.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn4]').val();
+		goodsTemp4.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq4]').val();
+		
+		goodsTemp5.goodsTitle = $('#planTemplateForm input[name=goodsTitle5]').val();
+		goodsTemp5.goodsUrl = $('#planTemplateForm input[name=goodsUrl5]').val();
+		goodsTemp5.goodsType = $('#planTemplateForm input:radio[name=goodsType5]:checked').val();
+		goodsTemp5.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb5]:checked').val();
+		goodsTemp5.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd5]').val();
+		goodsTemp5.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn5]').val();
+		goodsTemp5.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq5]').val();
+		
+		goodsTemp6.goodsTitle = $('#planTemplateForm input[name=goodsTitle6]').val();
+		goodsTemp6.goodsUrl = $('#planTemplateForm input[name=goodsUrl6]').val();
+		goodsTemp6.goodsType = $('#planTemplateForm input:radio[name=goodsType6]:checked').val();
+		goodsTemp6.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb6]:checked').val();
+		goodsTemp6.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd6]').val();
+		goodsTemp6.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn6]').val();
+		goodsTemp6.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq6]').val();
+		
+		goodsTemp7.goodsTitle = $('#planTemplateForm input[name=goodsTitle7]').val();
+		goodsTemp7.goodsUrl = $('#planTemplateForm input[name=goodsUrl7]').val();
+		goodsTemp7.goodsType = $('#planTemplateForm input:radio[name=goodsType7]:checked').val();
+		goodsTemp7.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb7]:checked').val();
+		goodsTemp7.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd7]').val();
+		goodsTemp7.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn7]').val();
+		goodsTemp7.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq7]').val();
+		
+		goodsTemp8.goodsTitle = $('#planTemplateForm input[name=goodsTitle8]').val();
+		goodsTemp8.goodsUrl = $('#planTemplateForm input[name=goodsUrl8]').val();
+		goodsTemp8.goodsType = $('#planTemplateForm input:radio[name=goodsType8]:checked').val();
+		goodsTemp8.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb8]:checked').val();
+		goodsTemp8.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd8]').val();
+		goodsTemp8.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn8]').val();
+		goodsTemp8.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq8]').val();
+		
+		goodsTemp9.goodsTitle = $('#planTemplateForm input[name=goodsTitle9]').val();
+		goodsTemp9.goodsUrl = $('#planTemplateForm input[name=goodsUrl9]').val();
+		goodsTemp9.goodsType = $('#planTemplateForm input:radio[name=goodsType9]:checked').val();
+		goodsTemp9.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb9]:checked').val();
+		goodsTemp9.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd9]').val();
+		goodsTemp9.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn9]').val();
+		goodsTemp9.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq9]').val();
+		
+		goodsTemp10.goodsTitle = $('#planTemplateForm input[name=goodsTitle10]').val();
+		goodsTemp10.goodsUrl = $('#planTemplateForm input[name=goodsUrl10]').val();
+		goodsTemp10.goodsType = $('#planTemplateForm input:radio[name=goodsType10]:checked').val();
+		goodsTemp10.goodsLinkOpenGb = $('#planTemplateForm input:radio[name=linkOpenGb10]:checked').val();
+		goodsTemp10.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd10]').val();
+		goodsTemp10.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn10]').val();
+		goodsTemp10.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq10]').val();
+		
+		mcxDialog.confirm('기획전 템플릿을 등록 하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				
+				let data = {
+							multiPlanReview : multiPlanReview
+						   ,allReviewData : allReviewData
+						   ,multiPlanReviewStartD : multiPlanReviewStartD
+						   ,multiPlanReviewStartT : multiPlanReviewStartT
+						   ,multiPlanReviewEndD : multiPlanReviewEndD
+						   ,multiPlanReviewEndT : multiPlanReviewEndT
+						   ,reTitle : $('#planTemplateForm input[name=reTitle]').val()
+						   ,reDispOrd : $('#planTemplateForm input[name=reDispOrd]').val()
+						   ,rePlanContSq : $('#planTemplateForm input[name=rePlanContSq]').val()
+						   ,reDispYn :  $('#planTemplateForm input:checkbox[name=reDispYn]').val()
+						   ,mode :  $('#planTemplateForm input[name=mode]').val()
+						   ,planSq : $('#planTemplateForm input[name=planSq]').val()
+						   ,multiPlanCoupon : multiPlanCoupon
+						   ,cuTitle : $('#planTemplateForm input[name=cuTitle]').val()              
+						   ,cuDispOrd : $('#planTemplateForm input[name=cuDispOrd]').val()        
+						   ,cuPlanContSq : $('#planTemplateForm input[name=cuPlanContSq]').val()
+						   ,cuDispYn :  $('#planTemplateForm input:checkbox[name=cuDispYn]').val()  
+						   ,note :  $('#planTemplateForm textarea[name=note]').val()  
+						   ,multiPlanFile : multiPlanFile
+						   ,multiPlanFile2 : multiPlanFile2
+						   ,multiPlanFile3 : multiPlanFile3
+						   ,fileDispYn : $('#planTemplateForm input:checkbox[name=fileDispYn]').val() 
+						   ,fileDispOrd : $('#planTemplateForm input[name=fileDispOrd]').val()  
+						   ,filePlanContSq : $('#planTemplateForm input[name=filePlanContSq]').val()
+						   ,topFsrcDispYn : $('#planTemplateForm input:checkbox[name=topFsrcDispYn]').val() 
+						   ,btmFsrcDispYn : $('#planTemplateForm input:checkbox[name=btmFsrcDispYn]').val() 
+						   ,topFsrcDispOrd: $('#planTemplateForm input[name=topFsrcDispOrd]').val() 
+						   ,btmFsrcDispOrd : $('#planTemplateForm input[name=btmFsrcDispOrd]').val() 
+						   ,fsrcPcTop : $('#planTemplateForm textarea[name=fsrcPcTop]').val()      
+						   ,fsrcMobileTop: $('#planTemplateForm textarea[name=fsrcMobileTop]').val()      
+						   ,fsrcPcBtm: $('#planTemplateForm textarea[name=fsrcPcBtm]').val()      		
+						   ,fsrcMobileBtm :  $('#planTemplateForm textarea[name=fsrcMobileBtm]').val()   
+						   ,multiPlanGoodsContent1 : goodsTemp1
+						   ,multiPlanGoodsContent2 : goodsTemp2
+						   ,multiPlanGoodsContent3 : goodsTemp3
+						   ,multiPlanGoodsContent4 : goodsTemp4
+						   ,multiPlanGoodsContent5 : goodsTemp5
+						   ,multiPlanGoodsContent6 : goodsTemp6
+						   ,multiPlanGoodsContent7 : goodsTemp7
+						   ,multiPlanGoodsContent8 : goodsTemp8
+						   ,multiPlanGoodsContent9 : goodsTemp9
+						   ,multiPlanGoodsContent10 : goodsTemp10
+						   ,multiPlanGoodsContentVal1 : arrayData1
+						   ,multiPlanGoodsContentVal2 : arrayData2
+						   ,multiPlanGoodsContentVal3 : arrayData3
+						   ,multiPlanGoodsContentVal4 : arrayData4
+						   ,multiPlanGoodsContentVal5 : arrayData5
+						   ,multiPlanGoodsContentVal6 : arrayData6
+						   ,multiPlanGoodsContentVal7 : arrayData7
+						   ,multiPlanGoodsContentVal8 : arrayData8
+						   ,multiPlanGoodsContentVal9 : arrayData9
+						   ,multiPlanGoodsContentVal10 : arrayData10
+						   
+				}
+				var jsonData = JSON.stringify(data);
+				gagajf.ajaxJsonSubmit('/marketing/planning/detail/template/save', jsonData, fnDetailFormSearch);
+			}
+		});
+	});
+	
+	
+	// 템플릿 등록 후 콜백
+	var fnDetailFormSearch = function() {
+		uifnPopupClose('popupPlanTemplate');		
+	}
+	
+	// 첨부파일 삭제
+	var fnDeleteFile = function(obj, planSq, planContItemSq, fileItemVal) {
+		mcxDialog.confirm('정말 삭제하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				var params = new Object();
+				params.planSq = planSq;
+				params.planContItemSq = planContItemSq;
+				params.fileItemVal = fileItemVal;
+
+				var jsonData = JSON.stringify(params);
+				gagajf.ajaxJsonSubmit('/marketing/planning/detail/template/file/delete', jsonData, function() {
+					$(obj).parent().remove();
+				});
+			}
+		});
+	}
+	
+	
+$(document).ready(function() {
+		//gagaSn.setContents('#fsrcPcBtm', ''); 
+		//gagaSn.setContents('#fsrcMobileBtm', '');
+		//gagaSn.setContents('#fsrcPcTop', ''); 
+		//gagaSn.setContents('#fsrcMobileTop', '');
+		//gagaSn.setContents('#note', '');
+ 		var snOptions1 = gagaSn.getToolbarOptions('media');
+		var snOptions2 = gagaSn.getToolbarOptions('media');
+		var snOptions3 = gagaSn.getToolbarOptions('media');
+		var snOptions4 = gagaSn.getToolbarOptions('media');
+		
+		// 썸머노트 그리기
+		gagaSn.createSummernote(snOptions1, '#fsrcPcTop');
+		gagaSn.createSummernote(snOptions2, '#fsrcMobileTop');
+		gagaSn.createSummernote(snOptions3, '#fsrcPcBtm');
+		gagaSn.createSummernote(snOptions4, '#fsrcMobileBtm');  
+		
+		// 그리드 그리기
+		gagaAgGrid.createGrid("gridListPlanReview", gridOptionsPlanReviewList);
+		gagaAgGrid.createGrid("gridTempGbList1", gridOptions_p1);
+		gagaAgGrid.createGrid("gridTempGbList2", gridOptions_p2);
+		gagaAgGrid.createGrid("gridTempGbList3", gridOptions_p3);
+		gagaAgGrid.createGrid("gridTempGbList4", gridOptions_p4);
+		gagaAgGrid.createGrid("gridTempGbList5", gridOptions_p5);
+		gagaAgGrid.createGrid("gridTempGbList6", gridOptions_p6);
+		gagaAgGrid.createGrid("gridTempGbList7", gridOptions_p7);
+		gagaAgGrid.createGrid("gridTempGbList8", gridOptions_p8);
+		gagaAgGrid.createGrid("gridTempGbList9", gridOptions_p9);
+		gagaAgGrid.createGrid("gridTempGbList10", gridOptions_p10);
+		
+		if(mode == 'U'){
+			if(typeof reviewList[0] != 'undefined'){
+				// 리뷰
+				$('#planTemplateForm input[name=reTitle]').val(reviewList[0].title);
+				$('#planTemplateForm input[name=reDispOrd]').val(reviewList[0].dispOrd);
+				$('#planTemplateForm input[name=rePlanContSq]').val(reviewList[0].planContSq);
+				
+				if (reviewList[0].dispYn == 'Y') {
+					$('#planTemplateForm input:checkbox[name="reDispYn"]').prop('checked', true);
+				}
+				
+				if(typeof reviewList[0].reItemVal != 'undefined' && reviewList[0].reItemVal != null){
+					gridOptionsPlanReviewList.api.setRowData(reviewList);	
+				}
+				
+				
+			}
+			if(typeof couponList[0] != 'undefined'){
+				//쿠폰
+				$('#planTemplateForm input[name=cuTitle]').val(couponList[0].title);
+				$('#planTemplateForm input[name=cuDispOrd]').val(couponList[0].dispOrd);
+				$('#planTemplateForm input[name=cuPlanContSq]').val(couponList[0].planContSq);
+				$('#note').summernote('code', couponList[0].note);
+				if (couponList[0].dispYn == 'Y') {
+					$('#planTemplateForm input:checkbox[name="cuDispYn"]').prop('checked', true);
+				}
+				if(couponList.length > 0)
+				{
+					for (var i = 0; i <couponList.length; i++) {
+						var html =  '<tr>';
+						html += '<td colspan="3">';
+						html += '<input type="text" class="w300" id="cuItemNm" name="cuItemNm'+(i+1)+'" value="'+ couponList[i].cuItemNm +'"/>';
+						html += '<button type="button" class="btn icn" id="couponPlusBtn'+(i+1)+'"><i class="fa fa-search cpn" aria-hidden="true"></i></button>';
+						html += '<input id="cuItemVal" name="cuItemVal'+(i+1)+'" type="text" class="w100" maxlength="20" readonly="readonly" value="'+ couponList[i].cuItemVal +'"/>';
+						html += '<button type="button" class="btn icn" id="deleteCoupon'+(i+1)+'"><i class="fa fa-eraser" aria-hidden="true"></i></button>';
+						html += '</td>';
+						html += '</tr>';
+							
+						$("#couponTable").append(html);
+						
+						$('#couponPlusBtn'+(i+1)).attr("onclick","fnOpenCouponRetrievePopup('input[name=cuItemVal"+(i+1)+"]', 'input[name=cuItemNm"+(i+1)+"]');")
+						$('#deleteCoupon'+(i+1)).attr("onclick","deleteRowCoupon("+(i+1)+")");
+					}
+				}
+			}
+			
+			if(typeof fileList[0] != 'undefined'){
+				//파일
+				$('#planTemplateForm input[name=fileDispOrd]').val(fileList[0].dispOrd);
+				$('#planTemplateForm input[name=filePlanContSq]').val(fileList[0].planContSq);
+				
+				if (fileList[0].dispYn == 'Y') {
+					$('#planTemplateForm input:checkbox[name="fileDispYn"]').prop('checked', true);
+				}
+				
+				if(fileList.length > 0 && fileList[0].fileItemVal != null)
+				{
+					for (var i = 0; i <fileList.length; i++) {
+						var tag = '';
+						tag += '<span class="memAdd">';
+						tag += '	<a id="dnFile' + (i + 1) + '">' + fileList[i].fileItemVal + '</a>\n';
+						tag += '	<button type="button" onclick="fnDeleteFile(this, ' + fileList[i].planSq + ', ' +  fileList[i].planContItemSq + ', \'' +  fileList[i].fileItemVal + '\')">삭제</button>\n';
+						tag += '</span>';
+						$('#registeredFile').prepend(tag);
+							
+					}
+				}
+			}
+			
+			//html(하단)
+			if(typeof fsrcListBtm[0] != 'undefined'){
+				$('#planTemplateForm input[name=btmFsrcDispOrd]').val(fsrcListBtm[0].dispOrd);
+				
+				if (fsrcListBtm[0].dispYn == 'Y') {
+					$('#planTemplateForm input:checkbox[name="btmFsrcDispYn"]').prop('checked', true);
+				}
+			
+				$('#fsrcPcBtm').summernote('code', fsrcListBtm[0].fsrcPc);
+				$('#fsrcMobileBtm').summernote('code', fsrcListBtm[0].fsrcMob);
+				//gagaSn.setContents('#fsrcPcBtm', fsrcListBtm[0].fsrcPc); 
+				//gagaSn.setContents('#fsrcMobileBtm', fsrcListBtm[0].fsrcMob);
+			}
+			
+			//html(상단)
+			if(typeof fsrcListTop[0] != 'undefined'){
+				$('#planTemplateForm input[name=topFsrcDispOrd]').val(fsrcListTop[0].dispOrd);
+				
+				if (fsrcListTop[0].dispYn == 'Y') {
+					$('#planTemplateForm input:checkbox[name="topFsrcDispYn"]').prop('checked', true);
+				}
+			
+				$('#fsrcPcTop').summernote('code', fsrcListTop[0].fsrcPc);
+				$('#fsrcMobileTop').summernote('code', fsrcListTop[0].fsrcMob);
+				//gagaSn.setContents('#fsrcPcTop', fsrcListTop[0].fsrcPc); 
+				//gagaSn.setContents('#fsrcMobileTop', fsrcListTop[0].fsrcMob);
+			}
+			
+			//상품
+			if(typeof goodsList[0] != 'undefined'){
+				for (var i = 0; i < goodsList.length; i++) {
+					
+					
+					$('#planTemplateForm input[name=goodsTitle'+(i+1)+']').val(goodsList[i].title);						
+					$('#planTemplateForm input[name=goodsUrl'+(i+1)+']').val(goodsList[i].linkUrl);
+					$('#planTemplateForm input[name=goodsDispOrd'+(i+1)+']').val(goodsList[i].dispOrd);
+					$('#planTemplateForm input[name=goodsPlanContSq'+(i+1)+']').val(goodsList[i].planContSq);
+					$('#planTemplateForm input[name=goodsPlanContItemSq'+(i+1)+']').val(goodsList[i].planContItemSq);
+					
+					if (goodsList[i].dispYn == 'Y') {
+						$('#planTemplateForm input:checkbox[name=goodsDispYn'+(i+1)+']').prop('checked', true);
+					}
+					
+					if(goodsList[i].tmplType == "G082_50"){
+						$('#planTemplateForm input:radio[name=goodsType'+(i+1)+']:radio[value="G082_50"]').prop('checked', true);
+					}else if(goodsList[i].tmplType == "G082_51"){
+						$('#planTemplateForm input:radio[name=goodsType'+(i+1)+']:radio[value="G082_51"]').prop('checked', true);
+					}else if(goodsList[i].tmplType == "G082_52"){
+						$('#planTemplateForm input:radio[name=goodsType'+(i+1)+']:radio[value="G082_52"]').prop('checked', true);
+					}
+					
+					if (goodsList[i].linkOpenGb == "M") {
+						$('#planTemplateForm input:radio[name=linkOpenGb'+(i+1)+']:radio[value="M"]').prop('checked', true);
+					}else if(goodsList[i].linkOpenGb == "N"){
+						$('#planTemplateForm input:radio[name=linkOpenGb'+(i+1)+']:radio[value="N"]').prop('checked', true);
+					}
+					$('#btnAddGridNum' + (i + 1)).show();
+					
+					
+					gridOptions_p1.api.setRowData(goodsDetailList1);
+					gridOptions_p2.api.setRowData(goodsDetailList2);
+					gridOptions_p3.api.setRowData(goodsDetailList3);
+					gridOptions_p4.api.setRowData(goodsDetailList4);
+					gridOptions_p5.api.setRowData(goodsDetailList5);
+					gridOptions_p6.api.setRowData(goodsDetailList6);
+					gridOptions_p7.api.setRowData(goodsDetailList7);
+					gridOptions_p8.api.setRowData(goodsDetailList8);
+					gridOptions_p9.api.setRowData(goodsDetailList9);
+					gridOptions_p10.api.setRowData(goodsDetailList10);
+					
+				}
+			}
+			
+		}
+		
+
+		$("#fileCnt").trigger('change');
+		
+});
+
+/*]]>*/
+</script>
+</html>