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

Merge branch 'sowon' into develop

sowon4187 5 лет назад
Родитель
Сommit
43e5e6953e

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

@@ -455,6 +455,15 @@ public interface TsaPlanDao {
 	 */
 	Collection<Plan> getPlanContentFileList(Plan param);
 	
+	/**
+	 * 기획전 템플릿 상세조회 - 유의사항
+	 *
+	 * @param
+	 * @author sowon
+	 * @since 2021. 3. 2
+	 */
+	Collection<Plan> getPlanContentNoticeList(Plan param);
+	
 	/**
 	 * 기획전 템플릿 상세조회 - html
 	 *

+ 41 - 0
src/main/java/com/style24/admin/biz/service/TsaPlanService.java

@@ -984,6 +984,34 @@ public class TsaPlanService {
 			}
 		}
 		
+		// 유의사항등록
+		Plan noticePlan = new Plan();
+		//유의사항 등록 - tb_plan_contents
+		if(!org.apache.commons.lang3.StringUtils.isAllEmpty(param.getMultiPlanNotice()) || param.getNoticeDispOrd() >=0) {
+			noticePlan.setRegNo(regNo);
+			noticePlan.setUpdNo(regNo);
+			noticePlan.setTmplType("G082_60");
+			noticePlan.setPlanSq(param.getPlanSq());
+			noticePlan.setDispYn(param.getNoticeDispYn());
+			noticePlan.setDispOrd(param.getNoticeDispOrd());
+			noticePlan.setPlanContSq(param.getNoticePlanContSq());
+			planDao.createPlanContents(noticePlan);
+			
+			// 기존 유의사항삭제
+			planDao.deletePlanContentItem(param.getNoticePlanContSq());
+						
+			//유의사항아이템 등록
+			if(param.getMultiPlanNotice().length>0) {
+				String[] noticeItemVal = param.getMultiPlanNotice();
+				
+				// 유의사항 insert
+				for (int j = 0; j < noticeItemVal.length; j++) {
+					noticePlan.setItemVal(noticeItemVal[j]);
+					planDao.createPlanContentsItem(noticePlan);
+				}
+			}
+		}
+		
 		//HTML[PC] 상단 하단 등록
 		if(param.getFsrcMobileTop() != "" || param.getFsrcPcTop() != "") {
 
@@ -1434,6 +1462,19 @@ public class TsaPlanService {
 		return planDao.getPlanContentFileList(param);
 	}
 	
+	/**
+	 * 기획전 템플릿 상세조회 - 유의사항
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @since 2021. 5 .28
+	 */
+	public Collection<Plan> getPlanContentNoticeList(Plan param){
+		return planDao.getPlanContentNoticeList(param);
+	}
+	
+	
 	/**
 	 * 기획전 템플릿 상세조회 - html
 	 *

+ 4 - 0
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -2229,6 +2229,10 @@ public class TsaMarketingController extends TsaBaseController {
 			//파일리스트
 			param.setTmplType("G082_30");
 			mav.addObject("fileList", planService.getPlanContentFileList(param));
+			
+			//유의사항리스트
+			param.setTmplType("G082_60");
+			mav.addObject("noticeList", planService.getPlanContentNoticeList(param));
 
 			//html 리스트 - 상단
 			param.setFontGb("T");

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

@@ -206,6 +206,8 @@ public class Plan extends TscBaseDomain{
 		@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 		private String[] multiPlanCoupon;		//쿠폰목록
 		@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+		private String[] multiPlanNotice;			//유의사항목록
+		@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 		private String[] multiPlanFile;			//이미지목록
 		@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 		private String[] multiPlanFile2;			//이미지새장본창
@@ -240,6 +242,11 @@ public class Plan extends TscBaseDomain{
 		private int fileDispOrd;			//파일전시순서
 		private Integer filePlanContSq;		//파일 컨텐츠일련번호
 		
+		private String noticeItemVal;			//유의사항아이템
+		private String noticeDispYn;			//유의사항전시여부
+		private int noticeDispOrd;			//유의사항전시순서
+		private Integer noticePlanContSq;		//유의사항컨텐츠일련번호
+		
 		private String topFsrcDispYn;		//html상단 전시여부
 		private String BtmFsrcDispYn;		//html하단 전시여부
 		private int   topFsrcDispOrd;		//html상단 전시순서

+ 15 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaPlan.xml

@@ -1186,6 +1186,21 @@
 		ORDER BY B.PLAN_CONT_ITEM_SQ 
 	</select>
 	
+	<select id="getPlanContentNoticeList" parameterType="Plan" resultType="Plan">
+		/* TsaPlan.getPlanContentNoticeList */
+		SELECT A.PLAN_CONT_SQ 
+			  ,A.PLAN_SQ 
+		      ,A.TMPL_TYPE 
+		      ,A.DISP_YN 
+		      ,A.DISP_ORD 
+		      ,A.REG_NO 
+		      ,B.ITEM_VAL AS noticeItemVal
+		      ,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}
+		ORDER BY B.PLAN_CONT_ITEM_SQ 
+	</select>
+	
 	<!-- 기획전 템플릿 이미지 파일 삭제 -->
 	<delete id="deletePlanTemplateFile" parameterType="Plan">
 		/* TsaPlan.deletePlanTemplateFile */

+ 118 - 10
src/main/webapp/WEB-INF/views/marketing/PlanTemplatePopupForm.html

@@ -29,6 +29,7 @@
 			<input type="hidden" name="rePlanContSq">
 			<input type="hidden" name="cuPlanContSq">
 			<input type="hidden" name="filePlanContSq">
+			<input type="hidden" name="noticePlanContSq">
 			<input type="hidden" name="goodsPlanContSq1">
 			<input type="hidden" name="goodsPlanContSq2">
 			<input type="hidden" name="goodsPlanContSq3">
@@ -210,6 +211,56 @@
 						</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="noticeDispYn" value="N"/></label>]</th>
+										<td colspan="5">
+											<div id="registeredFile"></div>
+											<div style="display: block">
+												<select name="noticeCnt" id="noticeCnt">
+													<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>
+													<table>
+														<tr th:id="${'notice'+num}">
+															<th th:text="${'유의사항' + num}"></th>
+															<td><input type="text" th:id="${'noticeItemVal' + num}" th:name="${'noticeItemVal' + num}" class="w300 aR">
+															</td>
+														</tr>
+													</table>
+												</div>
+											</th:block>
+										</td>
+
+										<th>전시순서</th>
+										<td><input type="text" name="noticeDispOrd" class="w100 aR" data-valid-type="numeric"></td>
+									</tr>
+								</table>
+							</div>
+						</div>
+					</div>
+				</div>
 
 				<div class="panelContent">
 					<div class="panelStyle" style="margin: unset;">
@@ -1017,6 +1068,7 @@
 	let reviewList = [[${reviewList}]];
 	let couponList = [[${couponList}]];
 	let fileList = [[${fileList}]];
+	let noticeList = [[${noticeList}]];
 	let fsrcListTop = [[${fsrcListTop}]];
 	let fsrcListBtm = [[${fsrcListBtm}]];
 	let goodsList = [[${goodsList}]];
@@ -1485,6 +1537,18 @@
 			$('#file' + i).parent().parent().hide();
 		}
 	});
+	
+	// 유의사항 개수 선택시
+	$("#noticeCnt").on("change", function() {
+		for (var i = 1; i <= 10; i++) {
+			$('#notice' + i).parent().parent().parent().show();
+		}
+
+		var noticeCnt = $(this).val();
+		for (var i = 10; i > noticeCnt; i--) {
+			$('#notice' + i).parent().parent().parent().hide();
+		}
+	});
 
 	// 파일첨부 선택 시
 	$('#file1').on('change', function() { fnChooseFile(this, 1); });
@@ -1631,6 +1695,18 @@
 			}
 		}
 		
+		//유의사항관련 데이터 담기
+		var multiPlanNotice = [];
+		
+		var count = $("#planTemplateForm select[name=noticeCnt]").val();
+		for (var i = 0; i < count; i++) {
+			if($('#noticeItemVal'+(i+1)).val() == '' || typeof $('#noticeItemVal'+(i+1)).val() == 'undeifined'){
+				false;
+			}else{
+				multiPlanNotice.push($('#noticeItemVal'+(i+1)).val());
+			}
+		}
+		
 		// 리뷰 전시 클릭했을 경우
 		if($("input:checkbox[name=reDispYn]").prop("checked")){
 			$("input:checkbox[name=reDispYn]").val('Y');
@@ -1692,6 +1768,23 @@
 			$("input:checkbox[name=fileDispOrd]").val('N');
 		}
 		
+		// 유의사항 전시 클랙했을 경우
+		if($("input:checkbox[name=noticeDispYn]").prop("checked")){
+			$("input:checkbox[name=noticeDispYn]").val('Y');
+			
+			if($("input[name=noticeDispOrd]").val()==''){
+				mcxDialog.alert('유의사항 전시순서를 입력하세요.');
+				return;
+			}
+			if(multiPlanNotice.length == 0){
+				mcxDialog.alert('등록할 유의사항를 입력하세요.');
+				return;
+			}
+			
+		}else{
+			$("input:checkbox[name=noticeDispOrd]").val('N');
+		}
+		
 		// html 상단 전시 클릭했을 경우
 		if($("input:checkbox[name=topFsrcDispYn]").prop("checked")){
 			$("input:checkbox[name=topFsrcDispYn]").val('Y');
@@ -2049,6 +2142,10 @@
 						   ,fileDispYn : $('#planTemplateForm input:checkbox[name=fileDispYn]').val() 
 						   ,fileDispOrd : $('#planTemplateForm input[name=fileDispOrd]').val()  
 						   ,filePlanContSq : $('#planTemplateForm input[name=filePlanContSq]').val()
+						   ,multiPlanNotice : multiPlanNotice
+						   ,noticeDispYn : $('#planTemplateForm input:checkbox[name=noticeDispYn]').val() 
+						   ,noticeDispOrd : $('#planTemplateForm input[name=noticeDispOrd]').val()  
+						   ,noticePlanContSq : $('#planTemplateForm input[name=noticePlanContSq]').val()
 						   ,topFsrcDispYn : $('#planTemplateForm input:checkbox[name=topFsrcDispYn]').val() 
 						   ,btmFsrcDispYn : $('#planTemplateForm input:checkbox[name=btmFsrcDispYn]').val() 
 						   ,topFsrcDispOrd: $('#planTemplateForm input[name=topFsrcDispOrd]').val() 
@@ -2200,16 +2297,6 @@ $(document).ready(function() {
 				{
 					$("#planTemplateForm select[name=fileCnt]").val(fileList.length);
 					
-					 /* 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);
-							
-					}  */
-					
 					for (var i = 0; i <fileList.length; i++) {
 						$("#planTemplateForm input[name=fileLinkUrl"+ (i+1) +"]").val(fileList[i].linkUrl);
 						$("#planTemplateForm label[id=file_"+ (i+1) +"]").html(fileList[i].fileItemVal);
@@ -2224,6 +2311,26 @@ $(document).ready(function() {
 				}
 			}
 			
+			if(typeof noticeList[0] != 'undefined'){
+				//유의사항
+				$('#planTemplateForm input[name=noticeDispOrd]').val(noticeList[0].dispOrd);
+				$('#planTemplateForm input[name=noticePlanContSq]').val(noticeList[0].planContSq);
+				
+				if (noticeList[0].dispYn == 'Y') {
+					$('#planTemplateForm input:checkbox[name="noticeDispYn"]').prop('checked', true);
+				}
+				
+				if(noticeList.length > 0 && noticeList[0].noticeItemVal != null)
+				{
+					$("#planTemplateForm select[name=noticeCnt]").val(noticeList.length);
+					
+					for (var i = 0; i <noticeList.length; i++) {
+						$("#planTemplateForm input[id=noticeItemVal"+ (i+1) +"]").val(noticeList[i].noticeItemVal);
+							
+					} 
+				}
+			}
+			
 			//html(하단)
 			if(typeof fsrcListBtm[0] != 'undefined'){
 				$('#planTemplateForm input[name=btmFsrcDispOrd]').val(fsrcListBtm[0].dispOrd);
@@ -2301,6 +2408,7 @@ $(document).ready(function() {
 		
 
 		$("#fileCnt").trigger('change');
+		$("#noticeCnt").trigger('change');
 		
 });