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

기획전 템플릿 개발완료

sowon4187 5 лет назад
Родитель
Сommit
59f1a24ae3

+ 10 - 0
src/main/java/com/style24/admin/biz/dao/TsaPlanDao.java

@@ -417,6 +417,7 @@ public interface TsaPlanDao {
 	 */
 	void deletePlanContentItem(Integer planContSq);
 	
+	
 	/**
 	 * 기획전템플릿 이미지파일 삭제
 	 * @param 
@@ -425,6 +426,15 @@ public interface TsaPlanDao {
 	 */
 	void deletePlanTemplateFile(Plan plan);
 	
+	/**
+	 * 기획전템플릿 상품 삭제
+	 * @param 
+	 * @author sowon
+	 * @since 2021. 3. 3
+	 */
+	void deletePlanContentItemGoods(Integer planContSq);
+	
+	
 
 
 }

+ 165 - 178
src/main/java/com/style24/admin/biz/service/TsaPlanService.java

@@ -203,22 +203,22 @@ public class TsaPlanService {
 	 * @author sowon
 	 * @since 2021. 2. 8
 	 */
-	public Plan getPlanFsrcPcList(Plan param) {
-		param.setFrontGb("P");
-		Collection<Plan> planFsrcList = planDao.getPlanFsrcList(param);
-		Plan planPc = new Plan();
-
-		for (Plan pcTemp : planFsrcList) {
-			if (StringUtils.isNotBlank(planPc.getFsrc())) {
-				planPc.setFsrc(planPc.getFsrc() + pcTemp.getFsrc());
-			} else {
-				planPc.setFsrc(pcTemp.getFsrc());
-			}
-
-		}
-		log.debug("fsrcPc = {}", planPc.getFsrcPc());
-		return planPc;
-	}
+//	public Plan getPlanFsrcPcList(Plan param) {
+//		param.setFrontGb("P");
+//		Collection<Plan> planFsrcList = planDao.getPlanFsrcList(param);
+//		Plan planPc = new Plan();
+//
+//		for (Plan pcTemp : planFsrcList) {
+//			if (StringUtils.isNotBlank(planPc.getFsrc())) {
+//				planPc.setFsrc(planPc.getFsrc() + pcTemp.getFsrc());
+//			} else {
+//				planPc.setFsrc(pcTemp.getFsrc());
+//			}
+//
+//		}
+//		log.debug("fsrcPc = {}", planPc.getFsrcPc());
+//		return planPc;
+//	}
 
 	/**
 	 * 기획전 모바일용 소스 조회
@@ -228,22 +228,22 @@ public class TsaPlanService {
 	 * @author sowon
 	 * @since 2021. 2. 8
 	 */
-	public Plan getPlanFsrcMobileList(Plan param) {
-		param.setFrontGb("M");
-		Collection<Plan> planFsrcList = planDao.getPlanFsrcList(param);
-		Plan planMobile = new Plan();
-
-		for (Plan mobileTemp : planFsrcList) {
-			if (StringUtils.isNotBlank(planMobile.getFsrc())) {
-				planMobile.setFsrc(planMobile.getFsrc() + mobileTemp.getFsrc());
-			} else {
-				planMobile.setFsrc(mobileTemp.getFsrc());
-			}
-		}
-
-		return planMobile;
-	}
-	
+//	public Plan getPlanFsrcMobileList(Plan param) {
+//		param.setFrontGb("M");
+//		Collection<Plan> planFsrcList = planDao.getPlanFsrcList(param);
+//		Plan planMobile = new Plan();
+//
+//		for (Plan mobileTemp : planFsrcList) {
+//			if (StringUtils.isNotBlank(planMobile.getFsrc())) {
+//				planMobile.setFsrc(planMobile.getFsrc() + mobileTemp.getFsrc());
+//			} else {
+//				planMobile.setFsrc(mobileTemp.getFsrc());
+//			}
+//		}
+//
+//		return planMobile;
+//	}
+//	
 	/**
 	 * 기획전 웹 수정
 	 *
@@ -283,10 +283,9 @@ public class TsaPlanService {
 		}
 
 		// 기존 기획전 카테고리 삭제 
-		planDao.deletePlanCate(param);
-//		for (int i = 0; i < param.getMultiCate().length; i++) {
-//			planDao.deletePlanCate(param);
-//		}
+		for (int i = 0; i < param.getMultiCate().length; i++) {
+			planDao.deletePlanCate(param);
+		}
 		
 		String[] cate = param.getMultiCate();
 		// 기획전 카테고리insert
@@ -299,10 +298,9 @@ public class TsaPlanService {
 		}
 		
 		// 기존 기획전 카테고리 삭제
-		planDao.deletePlanCate(param);
-//		for (int i = 0; i < param.getMultiCate().length; i++) {
-//			planDao.deletePlanCate(param);
-//		}
+		for (int i = 0; i < param.getMultiBrand().length; i++) {
+			planDao.deletePlanBrand(param);;
+		}
 		
 		
 		String[] brand = param.getMultiBrand();
@@ -707,7 +705,7 @@ public class TsaPlanService {
 		// 리뷰 등록
 		Plan rePlan = new Plan();
 		//리뷰 등록 - tb_plan_contents
-		if(param.getReTitle() != "" || param.getMultiPlanReview().length>0) {
+		if(param.getReTitle() != "" || !StringUtils.isAllEmpty(param.getMultiPlanReview())) {
 			rePlan.setRegNo(regNo);
 			rePlan.setUpdNo(regNo);
 			rePlan.setTmplType("G082_10");
@@ -768,7 +766,7 @@ public class TsaPlanService {
 		
 		//이미지등록
 		Plan filePlan = new Plan();
-		if(param.getMultiPlanFile().length>=0) {
+		if(!StringUtils.isAllEmpty(param.getMultiPlanFile()) || param.getFileDispOrd() >=0) {
 			filePlan.setRegNo(regNo);
 			filePlan.setUpdNo(regNo);
 			filePlan.setTmplType("G082_30");
@@ -783,61 +781,33 @@ public class TsaPlanService {
 			/* planDao.deletePlanContentItem(param.getFilePlanContSq()); */
 			
 			//파일아이템 등록
-			if(param.getMultiPlanFile().length>0) {
-				String[] fileItemVal = param.getMultiPlanFile();
-				
-				// 기획전 브랜드 insert
-				for (int j = 0; j < fileItemVal.length; j++) {
-					filePlan.setItemVal(fileItemVal[j]);
-					planDao.createPlanContentsItem(filePlan);
-				}
+			String[] fileItemVal = param.getMultiPlanFile();
+			
+			// 기획전 브랜드 insert
+			for (int j = 0; j < fileItemVal.length; j++) {
+				filePlan.setItemVal(fileItemVal[j]);
+				planDao.createPlanContentsItem(filePlan);
 			}
 		}
 		
-		//HTML[상단] 등록
-		Plan fsrcTop = new Plan();
+		//HTML[PC] 상단 하단 등록
 		if(param.getFsrcMobileTop() != "" || param.getFsrcPcTop() != "") {
-			//tb_plan_contents 등록
-			fsrcTop.setRegNo(regNo);
-			fsrcTop.setUpdNo(regNo);
-			fsrcTop.setTmplType("G082_40");
-			fsrcTop.setPlanSq(param.getPlanSq());
-			fsrcTop.setDispYn(param.getTopFsrcDispYn());
-			fsrcTop.setDispOrd(param.getTopFsrcDispOrd());
-			
-			planDao.createPlanContents(fsrcTop);
+
 			
 			// 웹용 상단PC 등록
 			if (StringUtils.isNotBlank(param.getFsrcPcTop())) {
 				createPlanFsrcPcTop(param);
 			}
-			// 웹용 상단MOBILE 등록
-			if (StringUtils.isNotBlank(param.getFsrcMobileTop())) {
-				createPlanFsrcMobileTop(param);
-			}
 		}
-		
 		//HTML[하단] 등록
-		Plan fsrcBtm = new Plan();
 		if(param.getFsrcMobileBtm() != "" || param.getFsrcPcBtm() != "") {
-			//tb_plan_contents 등록
-			fsrcBtm.setRegNo(regNo);
-			fsrcBtm.setUpdNo(regNo);
-			fsrcBtm.setTmplType("G082_41");
-			fsrcBtm.setPlanSq(param.getPlanSq());
-			fsrcBtm.setDispYn(param.getBtmFsrcDispYn());
-			fsrcBtm.setDispOrd(param.getBtmFsrcDispOrd());
 			
-			planDao.createPlanContents(fsrcBtm);
 			
 			// 웹용 상단PC 등록
 			if (StringUtils.isNotBlank(param.getFsrcPcBtm())) {
 				createPlanFsrcPcBtm(param);
 			}
-			// 웹용 상단MOBILE 등록
-			if (StringUtils.isNotBlank(param.getFsrcMobileBtm())) {
-				createPlanFsrcMobileBtm(param);
-			}
+
 		}
 		
 		//상품 등록 -- 1
@@ -849,6 +819,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent1.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent1.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent1.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent1.getGoodsPlanContSq();
 				
 				Plan goods1 = new Plan();
 				goods1.setRegNo(regNo);
@@ -859,9 +830,13 @@ public class TsaPlanService {
 				goods1.setDispYn(goodsDispYn);
 				goods1.setTmplType(goodsType);
 				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());
@@ -881,6 +856,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent2.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent2.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent2.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent2.getGoodsPlanContSq();
 				
 				Plan goods2 = new Plan();
 				goods2.setRegNo(regNo);
@@ -891,9 +867,13 @@ public class TsaPlanService {
 				goods2.setDispYn(goodsDispYn);
 				goods2.setTmplType(goodsType);
 				goods2.setLinkUrl(goodsUrl);
+				goods2.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods2);
 				
+				// 기존  상품2 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal2 : param.getMultiPlanGoodsContentVal2()) {
 					if(param.getMultiPlanGoodsContentVal2().size()>0) {
 						goods2.setItemVal(multiPlanGoodsContentVal2.getGoodsItemVal());
@@ -913,6 +893,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent3.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent3.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent3.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent3.getGoodsPlanContSq();
 				
 				Plan goods3 = new Plan();
 				goods3.setRegNo(regNo);
@@ -923,9 +904,13 @@ public class TsaPlanService {
 				goods3.setDispYn(goodsDispYn);
 				goods3.setTmplType(goodsType);
 				goods3.setLinkUrl(goodsUrl);
+				goods3.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods3);
 				
+				// 기존  상품3 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal3 : param.getMultiPlanGoodsContentVal3()) {
 					if(param.getMultiPlanGoodsContentVal3().size()>0) {
 						goods3.setItemVal(multiPlanGoodsContentVal3.getGoodsItemVal());
@@ -945,6 +930,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent4.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent4.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent4.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent4.getGoodsPlanContSq();
 				
 				Plan goods4 = new Plan();
 				goods4.setRegNo(regNo);
@@ -955,9 +941,13 @@ public class TsaPlanService {
 				goods4.setDispYn(goodsDispYn);
 				goods4.setTmplType(goodsType);
 				goods4.setLinkUrl(goodsUrl);
+				goods4.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods4);
 				
+				// 기존  상품4 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal4 : param.getMultiPlanGoodsContentVal4()) {
 					if(param.getMultiPlanGoodsContentVal4().size()>0) {
 						goods4.setItemVal(multiPlanGoodsContentVal4.getGoodsItemVal());
@@ -977,6 +967,8 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent5.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent5.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent5.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent5.getGoodsPlanContSq();
+
 				
 				Plan goods5 = new Plan();
 				goods5.setRegNo(regNo);
@@ -987,9 +979,13 @@ public class TsaPlanService {
 				goods5.setDispYn(goodsDispYn);
 				goods5.setTmplType(goodsType);
 				goods5.setLinkUrl(goodsUrl);
+				goods5.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods5);
 				
+				// 기존  상품5 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal5 : param.getMultiPlanGoodsContentVal5()) {
 					if(param.getMultiPlanGoodsContentVal5().size()>0) {
 						goods5.setItemVal(multiPlanGoodsContentVal5.getGoodsItemVal());
@@ -1009,6 +1005,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent6.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent6.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent6.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent6.getGoodsPlanContSq();
 				
 				Plan goods6 = new Plan();
 				goods6.setRegNo(regNo);
@@ -1019,9 +1016,13 @@ public class TsaPlanService {
 				goods6.setDispYn(goodsDispYn);
 				goods6.setTmplType(goodsType);
 				goods6.setLinkUrl(goodsUrl);
+				goods6.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods6);
 				
+				// 기존  상품6 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal6 : param.getMultiPlanGoodsContentVal6()) {
 					if(param.getMultiPlanGoodsContentVal6().size()>0) {
 						goods6.setItemVal(multiPlanGoodsContentVal6.getGoodsItemVal());
@@ -1041,6 +1042,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent7.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent7.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent7.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent7.getGoodsPlanContSq();
 				
 				Plan goods7 = new Plan();
 				goods7.setRegNo(regNo);
@@ -1051,9 +1053,13 @@ public class TsaPlanService {
 				goods7.setDispYn(goodsDispYn);
 				goods7.setTmplType(goodsType);
 				goods7.setLinkUrl(goodsUrl);
+				goods7.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods7);
 				
+				// 기존  상품7 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal7 : param.getMultiPlanGoodsContentVal7()) {
 					if(param.getMultiPlanGoodsContentVal7().size()>0) {
 						goods7.setItemVal(multiPlanGoodsContentVal7.getGoodsItemVal());
@@ -1073,6 +1079,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent8.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent8.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent8.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent8.getGoodsPlanContSq();
 				
 				Plan goods8 = new Plan();
 				goods8.setRegNo(regNo);
@@ -1083,9 +1090,13 @@ public class TsaPlanService {
 				goods8.setDispYn(goodsDispYn);
 				goods8.setTmplType(goodsType);
 				goods8.setLinkUrl(goodsUrl);
+				goods8.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods8);
 				
+				// 기존  상품8 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal8 : param.getMultiPlanGoodsContentVal8()) {
 					if(param.getMultiPlanGoodsContentVal8().size()>0) {
 						goods8.setItemVal(multiPlanGoodsContentVal8.getGoodsItemVal());
@@ -1105,6 +1116,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent9.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent9.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent9.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent9.getGoodsPlanContSq();
 				
 				Plan goods9 = new Plan();
 				goods9.setRegNo(regNo);
@@ -1115,9 +1127,13 @@ public class TsaPlanService {
 				goods9.setDispYn(goodsDispYn);
 				goods9.setTmplType(goodsType);
 				goods9.setLinkUrl(goodsUrl);
+				goods9.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods9);
 				
+				// 기존  상품9 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal9 : param.getMultiPlanGoodsContentVal9()) {
 					if(param.getMultiPlanGoodsContentVal9().size()>0) {
 						goods9.setItemVal(multiPlanGoodsContentVal9.getGoodsItemVal());
@@ -1137,6 +1153,7 @@ public class TsaPlanService {
 				String goodsType = multiPlanGoodsContent10.getGoodsType();
 				long goodsDispOrd = multiPlanGoodsContent10.getGoodsDispOrd();
 				String goodsDispYn = multiPlanGoodsContent10.getGoodsDispYn();
+				Integer goodsPlanContSq = multiPlanGoodsContent10.getGoodsPlanContSq();
 				
 				Plan goods10 = new Plan();
 				goods10.setRegNo(regNo);
@@ -1147,9 +1164,13 @@ public class TsaPlanService {
 				goods10.setDispYn(goodsDispYn);
 				goods10.setTmplType(goodsType);
 				goods10.setLinkUrl(goodsUrl);
+				goods10.setPlanContSq(goodsPlanContSq);
 				
 				planDao.createPlanContents(goods10);
 				
+				// 기존  상품10 삭제
+				planDao.deletePlanContentItem(goodsPlanContSq); 
+				
 				for (Plan multiPlanGoodsContentVal10 : param.getMultiPlanGoodsContentVal10()) {
 					if(param.getMultiPlanGoodsContentVal10().size()>0) {
 						goods10.setItemVal(multiPlanGoodsContentVal10.getGoodsItemVal());
@@ -1248,20 +1269,22 @@ public class TsaPlanService {
 	
 	
 	/*
-	 * 기획전 템플릿 HTML[상단] PC 소스 등록
+	 * 기획전 템플릿 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("P");                 
+		fsrcTop.setLocGb("T");                 
 		fsrcTop.setRegNo(param.getRegNo());      
 		fsrcTop.setPlanSq(param.getPlanSq());    
+		fsrcTop.setDispYn(param.getTopFsrcDispYn());
 		
-		if (fsrcPcTotalCnt > byteCnt) { // 4000 바이트 이상 일 때 파싱.
+		if (fsrcPcTotalCnt > byteCnt || fsrcMobileTotalCnt > byteCnt) { // 4000 바이트 이상 일 때 파싱.
 			StringBuilder sbStr = new StringBuilder(4000);
 
 			int cnt = 0;
@@ -1274,85 +1297,60 @@ public class TsaPlanService {
 
 				if (getCnt == tempCnt || getCnt == fsrcPcTotalCnt) {
 					fsrcTop.setSeq(cnt + 1);
-					fsrcTop.setFsrcTop(sbStr.toString());
+					fsrcTop.setFsrcPc(sbStr.toString());
 
 					// 초기화
 					sbStr.delete(0, tempCnt);
 					cnt++;
 					tempCnt += byteCnt;
 
-					planDao.savePlanFsrcInfo(fsrcTop);
+					//planDao.savePlanFsrcInfo(fsrcTop);
 				}
-
 			}
-		} else {
-			fsrcTop.setSeq(1);
-			fsrcTop.setFsrcTop(param.getFsrcPcTop());
-
-			planDao.savePlanFsrcInfo(fsrcTop);
-		}
-		return param;
-	}
-
-	/*
-	 * 기획전 템플릿 HTML[상단] mobile 소스 등록
-	 */
-	@Transactional("shopTxnManager")
-	public Plan createPlanFsrcMobileTop(Plan param) {
-		Plan fsrcMobile = new Plan();
-		
-		int fsrcMobileTotalCnt = param.getFsrcMobileTop().toCharArray().length;
-		int byteCnt = 1500;
-
-		fsrcMobile.setFrontGb("M");
-		fsrcMobile.setRegNo(param.getRegNo());
-		fsrcMobile.setPlanSq(param.getPlanSq());
 		
-		if (fsrcMobileTotalCnt > byteCnt) { // 4000 바이트 이상 일 때 파싱.
-			StringBuilder sbStr = new StringBuilder(4000);
-
-			int cnt = 0;
-			int getCnt = 0;
-			int tempCnt = 1500;
-
 			for (char ch : param.getFsrcMobileTop().toCharArray()) {
 				getCnt++;
 				sbStr.append(ch);
 
-				if (getCnt == tempCnt || getCnt == fsrcMobileTotalCnt) {
-					
-					fsrcMobile.setSeq(cnt+1);
-					fsrcMobile.setFsrcTop(sbStr.toString());
+				if (getCnt == tempCnt || getCnt == fsrcPcTotalCnt) {
+					fsrcTop.setSeq(cnt + 1);
+					fsrcTop.setFsrcMob(sbStr.toString());
 
 					// 초기화
 					sbStr.delete(0, tempCnt);
 					cnt++;
 					tempCnt += byteCnt;
-
-					planDao.savePlanFsrcInfo(fsrcMobile);
+					
 				}
-			}
-		} else {
-			fsrcMobile.setSeq(1);
-			fsrcMobile.setFsrcTop(param.getFsrcMobileTop());
-			planDao.savePlanFsrcInfo(fsrcMobile);
+			}		
+			planDao.savePlanFsrcInfo(fsrcTop);
+		} 
+		else {
+			fsrcTop.setSeq(1);
+			fsrcTop.setFsrcPc(param.getFsrcPcTop());
+			fsrcTop.setFsrcMob(param.getFsrcMobileTop());
+
+			planDao.savePlanFsrcInfo(fsrcTop);
 		}
 		return param;
 	}
-	
+
+
 	/*
-	 * 기획전 템플릿 HTML[하단] PC 소스 등록
+	 * 기획전 템플릿 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("P");                 
+		fsrcBtm.setLocGb("B");                 
 		fsrcBtm.setRegNo(param.getRegNo());      
 		fsrcBtm.setPlanSq(param.getPlanSq());    
+		fsrcBtm.setDispYn(param.getBtmFsrcDispYn());
 		
 		if (fsrcPcTotalCnt > byteCnt) { // 4000 바이트 이상 일 때 파싱.
 			StringBuilder sbStr = new StringBuilder(4000);
@@ -1367,72 +1365,44 @@ public class TsaPlanService {
 
 				if (getCnt == tempCnt || getCnt == fsrcPcTotalCnt) {
 					fsrcBtm.setSeq(cnt + 1);
-					fsrcBtm.setFsrcBtm(sbStr.toString());
+					fsrcBtm.setFsrcPc(sbStr.toString());
 
 					// 초기화
 					sbStr.delete(0, tempCnt);
 					cnt++;
 					tempCnt += byteCnt;
 
-					planDao.savePlanFsrcInfo(fsrcBtm);
 				}
 
 			}
-		} else {
-			fsrcBtm.setSeq(1);
-			fsrcBtm.setFsrcBtm(param.getFsrcPcBtm());
-
-			planDao.savePlanFsrcInfo(fsrcBtm);
-		}
-		return param;
-	}
-
-	/*
-	 * 기획전 템플릿 HTML[하단] mobile 소스 등록
-	 */
-	@Transactional("shopTxnManager")
-	public Plan createPlanFsrcMobileBtm(Plan param) {
-		Plan fsrcMobile = new Plan();
-		
-		int fsrcMobileTotalCnt = param.getFsrcMobileBtm().toCharArray().length;
-		int byteCnt = 1500;
-
-		fsrcMobile.setFrontGb("M");
-		fsrcMobile.setRegNo(param.getRegNo());
-		fsrcMobile.setPlanSq(param.getPlanSq());
-		
-		if (fsrcMobileTotalCnt > byteCnt) { // 4000 바이트 이상 일 때 파싱.
-			StringBuilder sbStr = new StringBuilder(4000);
-
-			int cnt = 0;
-			int getCnt = 0;
-			int tempCnt = 1500;
-
+			
 			for (char ch : param.getFsrcMobileBtm().toCharArray()) {
 				getCnt++;
 				sbStr.append(ch);
 
-				if (getCnt == tempCnt || getCnt == fsrcMobileTotalCnt) {
-					
-					fsrcMobile.setSeq(cnt+1);
-					fsrcMobile.setFsrcBtm(sbStr.toString());
+				if (getCnt == tempCnt || getCnt == fsrcPcTotalCnt) {
+					fsrcBtm.setSeq(cnt + 1);
+					fsrcBtm.setFsrcMob(sbStr.toString());
 
 					// 초기화
 					sbStr.delete(0, tempCnt);
 					cnt++;
 					tempCnt += byteCnt;
-
-					planDao.savePlanFsrcInfo(fsrcMobile);
+					
 				}
-			}
+			}		
+			
+			planDao.savePlanFsrcInfo(fsrcBtm);
 		} else {
-			fsrcMobile.setSeq(1);
-			fsrcMobile.setFsrcBtm(param.getFsrcMobileBtm());
-			planDao.savePlanFsrcInfo(fsrcMobile);
+			fsrcBtm.setSeq(1);
+			fsrcBtm.setFsrcPc(param.getFsrcPcBtm());
+			fsrcBtm.setFsrcMob(param.getFsrcMobileBtm());
+
+			planDao.savePlanFsrcInfo(fsrcBtm);
 		}
 		return param;
 	}
-	
+
 	
 	/**
 	 * 기획전 템플릿 목록 카운트 조회
@@ -1444,19 +1414,36 @@ public class TsaPlanService {
 	public int getPlanContentsCount(Plan param) {
 		return planDao.getPlanContentsCount(param);
 	}
+
+	/**
+	 * 기획전 템플릿 상품목록 삭제
+	 * @param  
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 3
+	 */
+	@Transactional("shopTxnManager")
+	public void deletePlanContentItemGoods(Integer planContSq) {
+		
+		planDao.deletePlanContentItemGoods(planContSq);
 	
+	}
+
 	/**
-	 * 기획전 템플릿 아이템 등록
-	 *
-	 * @param
-	 * @return
+	 * 기획전 템플릿 컨텐츠 삭제
+	 * @param  
+	 * @return 
 	 * @author sowon
-	 * @since 2021. 2. 25
+	 * @since 2021. 3. 3
 	 */
-	void createPlanContentsItem(Plan param) {
+
+	@Transactional("shopTxnManager")
+	public void deletePlanContentItem(Integer planContSq) {
+		planDao.deletePlanContentItem(planContSq);
+		
 	}
-	
 
 	
 
+
 }

+ 28 - 5
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -1645,9 +1645,9 @@ public class TsaMarketingController extends TsaBaseController {
 		} else if(param.getMode().equals("U")){ // 상세 일 때
 			mav.addObject("planInfo", planService.getPlanDetailInfo(param));
 
-			mav.addObject("fsrcPc", planService.getPlanFsrcPcList(param));
+			//mav.addObject("fsrcPc", planService.getPlanFsrcPcList(param));
 
-			mav.addObject("fsrcMobile", planService.getPlanFsrcMobileList(param));
+			//mav.addObject("fsrcMobile", planService.getPlanFsrcMobileList(param));
 			
 			// 등록했던 브랜드
 			mav.addObject("planBrandList", planService.getPlanBrandList(param));
@@ -2066,11 +2066,11 @@ public class TsaMarketingController extends TsaBaseController {
 			mav.addObject("fileList", planService.getPlanContentFileList(param));
 			
 			//html 리스트 - 상단
-			param.setTmplType("G082_40");
+			param.setLocGb("T");
 			mav.addObject("fsrcListTop", planService.getPlanContentFsrcList(param));
 			
 			//html 리스트 - 하단
-			param.setTmplType("G082_41");
+			param.setLocGb("B");
 			mav.addObject("fsrcListBtm", planService.getPlanContentFsrcList(param));
 			
 			//상품 리스트
@@ -2082,7 +2082,6 @@ public class TsaMarketingController extends TsaBaseController {
 			while (iter.hasNext()) {
 				
 				Integer planContSq = iter.next().getPlanContSq();
-				System.out.println("planContSq:"+planContSq);
 				param.setPlanContSq(planContSq);
 				mav.addObject("goodsDetailList" + i, planService.getPlanContentGoodsDetailList(param));
 				i++;
@@ -2126,6 +2125,30 @@ public class TsaMarketingController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
 	
+	/**
+	 * 기회전템플릿 상품 삭제
+	 * @param plan_content - 기획전템플릿 상품삭제
+	 * @return
+	 * @throws IOException
+	 * @author sowon
+	 * @since 2021. 3. 3
+	 */
+	@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;
+	}
+
+	
 	/**
 	 * 기획전 템플릿 저장
 	 *

+ 3 - 4
src/main/java/com/style24/persistence/domain/Plan.java

@@ -74,11 +74,9 @@ public class Plan extends TscBaseDomain{
 
 		// 기획전 소스
 		private Integer seq;					//일련번호
-		private String fsrc;				//프론트소스
-		private String fsrcTop;				//프론트 상단소스
-		private String fsrcBtm;				//프론트 하단소스
 		private String fsrcPc;				//프론트소스(pc)	/ 화면용
-		private String fsrcMobile;			//프론트소스(모바일)	/ 화면용
+		private String fsrcMob;			//프론트소스(모바일)	/ 화면용
+		private String locGb;			//위치구분(T:상단 / B:하단)
 
 		// 기획전 상세
 		private Integer planDtlSq;				//기획전상세일련번호(SEQ_PLAN_DTL sequence)
@@ -223,6 +221,7 @@ public class Plan extends TscBaseDomain{
 		private String goodsType;			//상품노출순서
 		private String goodsItemVal;		//상품아이템
 		private String brandEnm;			//브랜드명
+		private Integer goodsPlanContSq;	//상품 컨텐츠일련번호
 		
 		// Pagination
 		private TscPageRequest pageable;

+ 33 - 24
src/main/java/com/style24/persistence/mybatis/shop/TsaPlan.xml

@@ -231,9 +231,10 @@
 		         INSERT INTO
 				      TB_PLAN_FSRC (
 				          PLAN_SQ
-				          , FRONT_GB
-				          , FSRC_TOP
-				          , FSRC_BTM
+				          , LOC_GB
+				          , FSRC_PC
+				          , FSRC_MOB
+				          , DISP_YN
 				          , REG_NO
 				          , REG_DT
 				          , UPD_NO
@@ -241,9 +242,10 @@
 				      )
 				   VALUES (
 				    	  #{planSq}
-				          , #{frontGb}
-				          , #{fsrcTop}
-				          , #{fsrcBtm}
+				    	  , #{locGb}
+				          , #{fsrcPc}
+				          , #{fsrcMob}
+				          , #{dispYn}
 				          , #{regNo}
 				          , now()
 				          , #{regNo}
@@ -252,8 +254,9 @@
 				   ON
 				      DUPLICATE KEY
 				   UPDATE
-				       FSRC_TOP = #{fsrcTop}
-			         , FSRC_BTM = #{fsrcBtm}
+				       FSRC_PC = #{fsrcPc}
+			         , FSRC_MOB = #{fsrcMob}
+			         , DISP_YN = #{dispYn}
 		         	 , UPD_NO = #{regNo}
 		         	 , UPD_DT = now()
 	</insert>
@@ -939,6 +942,7 @@
 			     DUPLICATE KEY 
 			 UPDATE 
 			 	   TITLE=#{title}
+			 	 , TMPL_TYPE = #{tmplType}
 			   	 , LINK_URL=#{linkUrl}
 			     , DISP_YN=#{dispYn}
 			     , DISP_ORD=#{dispOrd}
@@ -1048,20 +1052,19 @@
 	
 	<select id="getPlanContentFsrcList" parameterType="Plan" resultType="Plan">
 		/* TsaPlan.getPlanContentFsrcList */
-		SELECT A.PLAN_CONT_SQ 
-		  	 ,A.PLAN_SQ 
-		     ,A.TMPL_TYPE 
-		     ,A.TITLE 
-		     ,A.LINK_URL 
-		     ,A.DISP_YN 
-		     ,A.DISP_ORD 
-		     ,A.REG_NO 
-		     ,B.FRONT_GB 
-		     ,B.FSRC_BTM 
-		     ,B.FSRC_TOP 
-		FROM TB_PLAN_CONTENTS A LEFT JOIN TB_PLAN_FSRC B ON A.PLAN_SQ = B.PLAN_SQ 
-		WHERE A.PLAN_SQ = #{planSq} AND A.TMPL_TYPE = #{tmplType} 
-		ORDER BY FRONT_GB DESC
+		SELECT 
+		  	  B.PLAN_SQ
+		     ,B.LOC_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.LOC_GB = #{locGb}  
 	</select>
 	
 	<select id="getPlanContentGoodsList" parameterType="Plan" resultType="Plan">
@@ -1081,6 +1084,7 @@
 	<select id="getPlanContentGoodsDetailList" parameterType="Plan" resultType="Plan">
 		/* TsaPlan.getPlanContentGoodsDetailList */	
 		SELECT  B.PLAN_CONT_SQ 
+		      ,B.PLAN_CONT_ITEM_SQ
 		      ,B.ITEM_VAL as goodsItemVal
 		      ,C.GOODS_NM
 		      ,C.LIST_PRICE 
@@ -1099,13 +1103,18 @@
 	</select>
 	
 	<delete id="deletePlanContentItem" parameterType="Plan">
-		/* TsaPlan.getPlanContentGoodsDetailList */	
+		/* TsaPlan.deletePlanContentItem */	
 		DELETE 
 		FROM TB_PLAN_CONTENTS_ITEM
 		WHERE PLAN_CONT_SQ = #{planContSq}
 	</delete>
 	
-	
+	<delete id="deletePlanContentItemGoods" parameterType="Plan">
+		/* TsaPlan.deletePlanContentItemGoods */	
+		DELETE 
+		FROM TB_PLAN_CONTENTS
+		WHERE PLAN_CONT_SQ = #{planContSq}
+	</delete>
 </mapper>
 
 

+ 68 - 49
src/main/webapp/WEB-INF/views/marketing/PlanDetailPopupForm.html

@@ -187,32 +187,32 @@
 						</td>
 					</tr>
 					<tr style="display:none" id="append1">
-						<th>댓글제목<em class="required" title="필수"></em></th>
+						<th>댓글제목</th>
 						<td>
-							<input type="text" name="replyTitle1" id="replyTitle1" maxlength="50" required="required" data-valid-name="댓글제목" th:field="*{replyTitle1}"/>
+							<input type="text" name="replyTitle1" id="replyTitle1" maxlength="50" required="required" th:field="*{replyTitle1}"/>
 						</td>
 						
-						<th>댓글서브제목<em class="required" title="필수"></em></th>
+						<th>댓글서브제목</th>
 						<td>
-							<input type="text" name="replyTitle2" id="replyTitle2" maxlength="50" required="required" data-valid-name="댓글서브제목" th:field="*{replyTitle2}"/>
+							<input type="text" name="replyTitle2" id="replyTitle2" maxlength="50" required="required" th:field="*{replyTitle2}"/>
 						</td>
 					
 					</tr>
 					<tr style="display:none" id="append2">
-						<th>댓글위치<em class="required" title="필수"></em></th>
+						<th>댓글위치</th>
 						<td>
 							<label class="rdoBtn"><input type="radio" name="replyLoc" value="U" />상품리스트 상단</label>
 							<label class="rdoBtn"><input type="radio" name="replyLoc" value="D"/>상품리스트 하단</label>
 						</td>
 						
-						<th>투표일련번호<em class="required" title="필수"></em></th>
+						<th>투표일련번호</th>
 						<td>
 							<input type="text" class="w100 aR" name="pollSq" th:field="*{pollSq}"/>
 						</td>
 					
 					</tr>
 					<tr style="display:none" id="append3">
-						<th>댓글이미지<em class="required" title="필수"></em><br/>[삭제여부<label class="chkBox"><input type="checkbox" name="orgReplyImgDelYn" value="Y"/></label>]</th>
+						<th>댓글이미지<br/>[삭제여부<label class="chkBox"><input type="checkbox" name="orgReplyImgDelYn" value="Y"/></label>]</th>
 						<td>
 							<div th:if=*{replyImg} id="replyImgView" style="float:left;">
 								<img id="replyImgUrl" th:src="${@environment.getProperty('upload.image.view') + '/planning/'} + *{replyImg}" style="max-width:720px;"/>
@@ -228,24 +228,7 @@
 						</td>
 					
 					</tr>
-				</tbody>
-				<tbody>
-					<!-- <tr>
-						<th>웹용소스</th>
-						<td colspan="5">
-							<div style="margin-top:5px;">
-								<textarea name="fsrcPc" id="fsrcPcDetail" rows="15" cols="95" style="width:1280px;"></textarea>
-							</div>
-						</td>
-					</tr>
-					<tr>
-						<th>모바일용소스</th>
-						<td colspan="5">
-							<div style="margin-top:5px;">
-								<textarea name="fsrcMobile" id="fsrcMobileDetail" rows="15" cols="95" style="width:1280px;"></textarea>
-							</div>
-						</td>
-					</tr> -->
+				</tbody>				
 				</table>
 				
 				<div class="panelStyle" style="margin: unset;">
@@ -357,7 +340,7 @@
 	
 		<!-- 기획전 웹 등록 -->
 		<div class="panelContent" th:if="${mode == 'N'}">
-			<form id="planRegisterForm" name="planRegisterForm" action="#" th:action="@{'/system/user/save'}" th:method="post">
+			<form id="planRegisterForm" name="planRegisterForm" th:method="post">
 			<input type="hidden" name="mode" th:value="${mode}"/>
 			<div>
 				<table class="frmStyle">
@@ -368,10 +351,6 @@
 					<tr>
 						<th>기존 기획전</th>
 						<td>
-							<!-- <select name="planSq" id="planSq">
-								<option value="">선택</option>
-								<option th:if="${planList}" th:each="oneData, status : ${planList}" th:value="${oneData.planSq}" th:text="|[${oneData.planSq}]  ${oneData.planNm}|"></option>
-							</select> -->
 							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" readonly="readonly"/>
 							<input type="hidden" class="w100" name="planSq_Hideen" id="planSq_Hideen" maxlength="20"/>
 							<button type="button" class="btn icn" id="btnPopupSearchPlan"><i class="fa fa-search"></i></button>
@@ -529,30 +508,30 @@
 					<tr style="display:none" id="append1">
 						<th>댓글제목<em class="required" title="필수"></em></th>
 						<td>
-							<input type="text" name="replyTitle1" id="replyTitle1" maxlength="50" required="required" data-valid-name="댓글제목"/>
+							<input type="text" name="replyTitle1" id="replyTitle1" maxlength="50" required="required"/>
 						</td>
 						
 						<th>댓글서브제목<em class="required" title="필수"></em></th>
 						<td>
-							<input type="text" name="replyTitle2" id="replyTitle3" maxlength="50" required="required" data-valid-name="댓글서브제목"/>
+							<input type="text" name="replyTitle2" id="replyTitle3" maxlength="50" required="required"/>
 						</td>
 					
 					</tr>
 					<tr style="display:none" id="append2">
-						<th>댓글위치<em class="required" title="필수"></em></th>
+						<th>댓글위치</th>
 						<td>
 							<label class="rdoBtn"><input type="radio" name="replyLoc" value="U"/>상품리스트 상단</label>
 							<label class="rdoBtn"><input type="radio" name="replyLoc" value="D"/>상품리스트 하단</label>
 						</td>
 						
-						<th>투표일련번호<em class="required" title="필수"></em></th>
+						<th>투표일련번호</th>
 						<td>
 							<input type="text" class="w100 aR" name="pollSq"/>
 						</td>
 					
 					</tr>
 					<tr style="display:none" id="append3">
-						<th>댓글이미지<em class="required" title="필수"></em></th>
+						<th>댓글이미지</th>
 						<td colspan="5">
 							<div class="uFile w400">
 								<input id="registerReplyImg" name="registerReplyImg" type="file" accept="image/*" class="uFileInput w400"/>
@@ -712,6 +691,12 @@
 			$("#append2").removeAttr('style');
 			$("#append3").removeAttr('style');
 			
+			if(planInfo.replyLoc == "D"){
+				$('#planUpdateForm input:radio[name=replyLoc]:radio[value="D"]').prop('checked', true);
+			}else {
+				$('#planUpdateForm input:radio[name=replyLoc]:radio[value="U"]').prop('checked', true);
+			}
+			
 			if(custGbList.length > 0){
 				var chkboxCnt = $('#planUpdateForm input:checkbox[name=usableCustGbArr]').length;
 				var dataCnt = custGbList.length;
@@ -743,6 +728,40 @@
 		$("#append1").css('display','none');
 		$("#append2").css('display','none');
 		$("#append3").css('display','none');
+		
+		if(planInfo.replyLoc == "D"){
+			$('#planUpdateForm input:radio[name=replyLoc]:radio[value="D"]').prop('checked', true);
+		}else {
+			$('#planUpdateForm input:radio[name=replyLoc]:radio[value="U"]').prop('checked', true);
+		}
+		
+		if(custGbList.length > 0){
+			var chkboxCnt = $('#planUpdateForm input:checkbox[name=usableCustGbArr]').length;
+			var dataCnt = custGbList.length;
+			for(let i=0; i<chkboxCnt; i++){
+				for(let j=0; j<dataCnt; j++){
+					var data = custGbList[j].custGb;
+					if($('#planUpdateForm input:checkbox[name=usableCustGbArr]').eq(i).val() == data){
+						$('#planUpdateForm input:checkbox[name=usableCustGbArr]').eq(i).prop('checked', true);
+						$("#planUpdateForm input:checkbox[name=usableCustGbArr]").eq(i).parent().addClass('checked');
+					}
+				}
+			}
+		}
+		
+		if(custGradeList.length > 0){
+			var chkboxCnt = $('#planUpdateForm input:checkbox[name=usableCustGradeArr]').length;
+			var dataCnt = custGradeList.length;
+			for(let i=0; i<chkboxCnt; i++){
+				for(let j=0; j<dataCnt; j++){
+					var data = custGradeList[j].custGrade;
+					if($('#planUpdateForm input:checkbox[name=usableCustGradeArr]').eq(i).val() == data){
+						$('#planUpdateForm input:checkbox[name=usableCustGradeArr]').eq(i).prop('checked', true);
+						$("#planUpdateForm input:checkbox[name=usableCustGradeArr]").eq(i).parent().addClass('checked');
+					}
+				}
+			}
+		}
 	}
 	
 	
@@ -778,9 +797,9 @@
 		cfnOpenModalPopup(actionUrl,'popupPlan');
 	}
 
-	var fnPlanSave = function(formId) {
-		if (!gagajf.validation(formId))
-			return;
+	 var fnPlanSave = function(formId) {
+		/* if (!gagajf.validation(formId))
+			return;  */
 
 		// 날짜 유효성 체크
 		var stDate = $(formId + ' input[name=startSearchDate]').val().replaceAll("-", "");
@@ -808,25 +827,24 @@
 		$(formId + ' input[name=dispEddt]').val(edDate + ' ' + $(formId + ' select[name=endSearchHour]').val() + ':' + $(formId + ' select[name=endSearchMin]').val() + ':59');
 
 		
-	/* 	if ($('#replyYn').val() == 'Y') {
+		if ($('#replyYn').val() == 'Y') {
 			var replyLoc = $(':radio[name="replyLoc"]:checked').val();
 
 			if (typeof replyLoc == 'undefined') {
 				mcxDialog.alert('댓글 사용 시 댓글위치를 선택해야합니다.');
 				return;
 			}
-		}  */
+		} 
 
 		// poll 관리일련번호 유효성 체크
-		/* if (!gagajf.isNull($(formId + ' input[name=pollSq]').val())) {
+		if (!gagajf.isNull($(formId + ' input[name=pollSq]').val())) {
 			gagajf.ajaxFormSubmit('/marketing/poll/list', formId, function(result) {
-				console.log(result);
 				if (result.length < 1) {
 					mcxDialog.alert('입력하신 투표 일련번호가 존재 하지않습니다.');
 					return;
 				}
 			});
-		} */
+		} 
 
 		var privacyPolicy = '';
 		var frontGb = $('#frontGb').val();
@@ -868,10 +886,10 @@
 			//}
 		}
 
-		if(!gagajf.isNull($(formId + ' input[name=planQtitle]').val()) && gagajf.isNull(privacyPolicy.replace(/<br>/gi, '').replace(/<p>/gi, '').replace(/<\/\p>/gi, ''))){
+		/* if(!gagajf.isNull($(formId + ' input[name=planQtitle]').val()) && gagajf.isNull(privacyPolicy.replace(/<br>/gi, '').replace(/<p>/gi, '').replace(/<\/\p>/gi, ''))){
 			mcxDialog.alert('입력항목 등록 시 개인정보 수집동의를 입력해 주세요.');
 			return;
-		}
+		} */
 
 		//var jsonData = JSON.stringify($("#planRegisterForm").serializeObject());
 		
@@ -985,6 +1003,11 @@
 							,mainMimg : $('#planUpdateForm input[name=mainMimg]').val()
 							,fsrcPc :  $('#planUpdateForm input[name=fsrcPc]').val()
 							,fsrcMobile : $('#planUpdateForm input[name=fsrcMobile]').val()
+							,replyImg : $('#planUpdateForm input[name=replyImg]').val()
+							,replyLoc : $('#planUpdateForm input:radio[name="replyLoc"]:checked').val()
+							,replyTitle1 : $('#planUpdateForm input[name=replyTitle1]').val()
+							,replyTitle2 : $('#planUpdateForm input[name=replyTitle2]').val()
+							,pollSq : $('#planUpdateForm input[name=pollSq]').val()
 						}	
 					
 					
@@ -1207,10 +1230,6 @@
 				$('#planDetailForm input[name=goodsLimitQty]').show();
 			}
 
-			// 썸머노트 값 설정
-			$('#fsrcPcDetail').summernote('code', fsrcPc.fsrc);
-			$('#fsrcMobileDetail').summernote('code', fsrcMobile.fsrc);
-
 			if($("#planGb").val()!='E'){
 				$("#questionEventInsert").hide();
 				$("#questionEventUpdate").hide();

+ 159 - 35
src/main/webapp/WEB-INF/views/marketing/PlanTemplatePopupForm.html

@@ -29,6 +29,16 @@
 			<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">
@@ -200,8 +210,8 @@
 										<col width="90%" />
 									</colgroup>
 									<tr>
-										<th>전시순서<br/>[전시여부<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>
+										<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>
@@ -244,8 +254,8 @@
 										<col width="90%" />
 									</colgroup>
 									<tr>
-										<th>전시순서<br/>[전시여부<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>
+										<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>
@@ -432,7 +442,7 @@
 															<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="goodsType4" value="G082_52" />4개</label>
+																<label class="rdoBtn"><input type="radio" name="goodsType3" value="G082_52" />4개</label>
 															</td>
 														</tr>
 														<tr>
@@ -1214,61 +1224,171 @@
 	function btnDeleteGridNum1(param){
 		if($('#btnAddGridNum1').css('display') !='none'){
 			$('#btnAddGridNum1').hide();
-			$('#btnAddGridNum1')[0].reset();
+			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:checkbox[name=goodsDispYn1]').prop('checked', false);
+			gridOptions_p1.api.updateRowData();
 		}
 	}		
 	function btnDeleteGridNum2(param){
 		if($('#btnAddGridNum2').css('display') !='none'){
 			$('#btnAddGridNum2').hide();
-			$('#searchForm2')[0].reset();
+			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:checkbox[name=goodsDispYn2]').prop('checked', false);
+			gridOptions_p2.api.updateRowData();
 		}			
 	}			
 	function btnDeleteGridNum3(param){
 		if ($('#btnAddGridNum3').css('display') !='none'){
 			$('#btnAddGridNum3').hide();
-			$('#searchForm3')[0].reset();
+			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:checkbox[name=goodsDispYn3]').prop('checked', false);
+			gridOptions_p3.api.updateRowData();
 		}			
 	}		
 	function btnDeleteGridNum4(param){
 		if ($('#btnAddGridNum4').css('display') !='none'){
 			$('#btnAddGridNum4').hide();
-			$('#searchForm3')[0].reset();
+			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:checkbox[name=goodsDispYn4]').prop('checked', false);
+			gridOptions_p4.api.updateRowData();
 		}			
 	}
 	function btnDeleteGridNum5(param){
 		if ($('#btnAddGridNum5').css('display') !='none'){
 			$('#btnAddGridNum5').hide();
-			$('#searchForm5')[0].reset();
+			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:checkbox[name=goodsDispYn5]').prop('checked', false);
+			gridOptions_p5.api.updateRowData();
 		}
 	} 
 	function btnDeleteGridNum6(param){
 		if ($('#btnAddGridNum6').css('display') !='none'){
 			$('#btnAddGridNum6').hide();
-			$('#searchForm6')[0].reset();
+			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:checkbox[name=goodsDispYn6]').prop('checked', false);
+			gridOptions_p6.api.updateRowData();
 		}
 	} 
 	function btnDeleteGridNum7(param){
 		if ($('#btnAddGridNum7').css('display') !='none'){
 			$('#btnAddGridNum7').hide();
-			$('#searchForm7')[0].reset();
+			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:checkbox[name=goodsDispYn7]').prop('checked', false);
+			gridOptions_p7.api.updateRowData();
 		}
 	} 
 	function btnDeleteGridNum8(param){
 		if ($('#btnAddGridNum8').css('display') !='none'){
 			$('#btnAddGridNum8').hide();
-			$('#searchForm8')[0].reset();
+			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:checkbox[name=goodsDispYn8]').prop('checked', false);
+			gridOptions_p8.api.updateRowData();
 		}
 	} 
 	function btnDeleteGridNum9(param){
 		if ($('#btnAddGridNum9').css('display') !='none'){
 			$('#btnAddGridNum9').hide();
-			$('#searchForm9')[0].reset();
+			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:checkbox[name=goodsDispYn9]').prop('checked', false);
+			gridOptions_p9.api.updateRowData();
 		}
 	} 
 	function btnDeleteGridNum10(param){
 		if ($('#btnAddGridNum10').css('display') !='none'){
 			$('#btnAddGridNum10').hide();
-			$('#searchForm10')[0].reset();
+			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:checkbox[name=goodsDispYn10]').prop('checked', false);
+			gridOptions_p10.api.updateRowData();
 		}
 	} 	
 	
@@ -1485,11 +1605,6 @@
 		// html 상단 전시 클릭했을 경우
 		if($("input:checkbox[name=topFsrcDispYn]").prop("checked")){
 			$("input:checkbox[name=topFsrcDispYn]").val('Y');
-			
-			if($("input[name=topFsrcDispOrd]").val()==''){
-				mcxDialog.alert('HTML[상단] 전시순서를 입력하세요.');
-				return;
-			}
 			if($("textarea[name=fsrcMobileTop]").val()=='' && $("textarea[name=fsrcPcTop]").val()==''){
 				mcxDialog.alert('HTML[상단] 내용을  입력하세요.');
 				return;
@@ -1501,11 +1616,6 @@
 		// html 하단 전시 클릭했을 경우
 		if($("input:checkbox[name=btmFsrcDispYn]").prop("checked")){
 			$("input:checkbox[name=btmFsrcDispYn]").val('Y');
-			
-			if($("input[name=btmFsrcDispOrd]").val()==''){
-				mcxDialog.alert('HTML[하단] 전시순서를 입력하세요.');
-				return;
-			}
 			if($("textarea[name=fsrcMobileBtm]").val()=='' && $("textarea[name=fsrcPcBtm]").val()==''){
 				mcxDialog.alert('HTML[하단] 내용을  입력하세요.');
 				return;
@@ -1745,60 +1855,70 @@
 		goodsTemp1.goodsType = $('#planTemplateForm input:radio[name=goodsType1]: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.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.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.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.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.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.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.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.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.goodsDispOrd = $('#planTemplateForm input[name=goodsDispOrd10]').val();
 		goodsTemp10.goodsDispYn = $('#planTemplateForm input:checkbox[name=goodsDispYn10]').val();
+		goodsTemp10.goodsPlanContSq = $('#planTemplateForm input[name=goodsPlanContSq10]').val();
 		
 		mcxDialog.confirm('기획전 템플릿을 등록 하시겠습니까?', {
 			cancelBtnText: "취소",
@@ -1920,7 +2040,10 @@ $(document).ready(function() {
 					$('#planTemplateForm input:checkbox[name="reDispYn"]').prop('checked', true);
 				}
 				
-				gridOptionsPlanReviewList.api.setRowData(reviewList);
+				if(typeof reviewList[0].reItemVal != 'undefined' && reviewList[0].reItemVal != null){
+					gridOptionsPlanReviewList.api.setRowData(reviewList);	
+				}
+				
 				
 			}
 			if(typeof couponList[0] != 'undefined'){
@@ -1961,7 +2084,7 @@ $(document).ready(function() {
 					$('#planTemplateForm input:checkbox[name="fileDispYn"]').prop('checked', true);
 				}
 				
-				if(fileList.length > 0)
+				if(fileList.length > 0 && fileList[0].fileItemVal != null)
 				{
 					for (var i = 0; i <fileList.length; i++) {
 						var tag = '';
@@ -1982,10 +2105,9 @@ $(document).ready(function() {
 				if (fsrcListBtm[0].dispYn == 'Y') {
 					$('#planTemplateForm input:checkbox[name="btmFsrcDispYn"]').prop('checked', true);
 				}
-				if(fsrcListBtm[0].frontGb == 'P')
-					$('#fsrcPcBtm').summernote('code', fsrcListBtm[0].fsrcBtm);
-				if(fsrcListBtm[1].frontGb == 'M')
-					$('#fsrcMobileBtm').summernote('code', fsrcListBtm[1].fsrcBtm);
+			
+				$('#fsrcPcBtm').summernote('code', fsrcListBtm[0].fsrcPc);
+				$('#fsrcMobileBtm').summernote('code', fsrcListBtm[0].fsrcMob);
 			}
 			
 			//html(상단)
@@ -1995,10 +2117,9 @@ $(document).ready(function() {
 				if (fsrcListTop[0].dispYn == 'Y') {
 					$('#planTemplateForm input:checkbox[name="topFsrcDispYn"]').prop('checked', true);
 				}
-				if(fsrcListTop[0].frontGb == 'P')
-					$('#fsrcPcTop').summernote('code', fsrcListTop[0].fsrcTop);
-				if(fsrcListTop[1].frontGb == 'M')
-					$('#fsrcMobileTop').summernote('code', fsrcListTop[1].fsrcTop);
+			
+				$('#fsrcPcTop').summernote('code', fsrcListTop[0].fsrcPc);
+				$('#fsrcMobileTop').summernote('code', fsrcListTop[0].fsrcMob);
 			}
 			
 			//상품
@@ -2009,6 +2130,8 @@ $(document).ready(function() {
 					$('#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[0].dispYn == 'Y') {
 						$('#planTemplateForm input:checkbox[name=goodsDispYn'+(i+1)+']').prop('checked', true);
@@ -2024,6 +2147,7 @@ $(document).ready(function() {
 					
 					$('#btnAddGridNum' + (i + 1)).show();
 					
+					
 					gridOptions_p1.api.setRowData(goodsDetailList1);
 					gridOptions_p2.api.setRowData(goodsDetailList2);
 					gridOptions_p3.api.setRowData(goodsDetailList3);