bin2107 5 лет назад
Родитель
Сommit
e7b6c6e08c

+ 13 - 0
src/main/java/com/style24/persistence/domain/Contents.java

@@ -80,4 +80,17 @@ public class Contents extends TscBaseDomain {
 
     @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
     private String[] brandGroupList;
+
+    private String group1Title;
+    private String group1brandCd;
+    private String group1brandNm;
+    private String group1brandImg;
+    private String group2Title;
+    private String group2brandCd;
+    private String group2brandNm;
+    private String group2brandImg;
+    private String group3Title;
+    private String group3brandCd;
+    private String group3brandNm;
+    private String group3brandImg;
 }

+ 56 - 18
src/main/java/com/style24/persistence/mybatis/shop/TsaDsiplay.xml

@@ -1706,23 +1706,61 @@
 	<!-- 메인전시 컨텐츠 탭영역 미리보기 리스트 -->
 	<select id="getContentsTabPreviewList" parameterType="Contents" resultType="Contents">
 		/* TsaDisplay.saveContentsGoods */
-		SELECT	B.STR_TITLE2
-		        , B.STR_TITLE1
-				, A.BRAND_GROUP_NO
-				, CASE WHEN A.DISP_NM_LANG = 'EN' THEN A.BRAND_GROUP_ENM
-				ELSE A.BRAND_GROUP_KNM
-				END              AS BRAND_GROUP_NM
-				, A.LOGO_FILE_NM
-				, B.DISP_ORD
-				, B.DISP_STDT
-				, B.DISP_EDDT
-		FROM   TB_BRAND_GROUP A
-			 , TB_CONTENTS_PREVIEW B
-		WHERE  A.BRAND_GROUP_NO = B.STR_VAR1
-		AND    A.USE_YN = 'Y'
-		AND    B.CONTENTS_LOC = #{contentsLoc}
-		AND    B.DISP_STDT <![CDATA[<=]]> NOW()
-		AND    B.DISP_EDDT <![CDATA[>=]]> NOW()
-		ORDER  BY B.DISP_ORD, B.CONTENTS_SQ
+		SELECT 	STR_TITLE3
+				, DISP_STDT
+				, DISP_EDDT
+				, MAX(GROUP1_TITLE) AS GROUP1_TITLE
+				, MAX(GROUP1_BRAND_CD) AS GROUP1_BRAND_CD
+				, MAX(GROUP1_BRAND_NM) AS GROUP1_BRAND_NM
+				, MAX(GROUP1_BRAND_IMG) AS GROUP1_BRAND_IMG
+				, MAX(GROUP2_TITLE) AS GROUP2_TITLE
+				, MAX(GROUP2_BRAND_CD) AS GROUP2_BRAND_CD
+				, MAX(GROUP2_BRAND_NM) AS GROUP2_BRAND_NM
+				, MAX(GROUP2_BRAND_IMG) AS GROUP2_BRAND_IMG
+				, MAX(GROUP3_TITLE) AS GROUP3_TITLE
+				, MAX(GROUP3_BRAND_CD) AS GROUP3_BRAND_CD
+				, MAX(GROUP3_BRAND_NM) AS GROUP3_BRAND_NM
+				, MAX(GROUP3_BRAND_IMG) AS GROUP3_BRAND_IMG
+		FROM (
+				SELECT  STR_TITLE3
+					, DISP_STDT
+					, DISP_EDDT
+					, CASE WHEN STR_TITLE2 = 1 THEN TITLE END AS GROUP1_TITLE
+					, CASE WHEN STR_TITLE2 = 1 THEN GROUP_CONCAT(BRAND_GROUP_NO SEPARATOR ',') END GROUP1_BRAND_CD
+					, CASE WHEN STR_TITLE2 = 1 THEN GROUP_CONCAT(BRAND_GROUP_NM SEPARATOR ',') END GROUP1_BRAND_NM
+					, CASE WHEN STR_TITLE2 = 1 THEN GROUP_CONCAT(LOGO_FILE_NM SEPARATOR ',') END GROUP1_BRAND_IMG
+					, CASE WHEN STR_TITLE2 = 2 THEN TITLE END AS GROUP2_TITLE
+					, CASE WHEN STR_TITLE2 = 2 THEN GROUP_CONCAT(BRAND_GROUP_NO SEPARATOR ',') END GROUP2_BRAND_CD
+					, CASE WHEN STR_TITLE2 = 2 THEN GROUP_CONCAT(BRAND_GROUP_NM SEPARATOR ',') END GROUP2_BRAND_NM
+					, CASE WHEN STR_TITLE2 = 2 THEN GROUP_CONCAT(LOGO_FILE_NM SEPARATOR ',') END GROUP2_BRAND_IMG
+					, CASE WHEN STR_TITLE2 = 3 THEN TITLE END AS GROUP3_TITLE
+					, CASE WHEN STR_TITLE2 = 3 THEN GROUP_CONCAT(BRAND_GROUP_NO SEPARATOR ',') END GROUP3_BRAND_CD
+					, CASE WHEN STR_TITLE2 = 3 THEN GROUP_CONCAT(BRAND_GROUP_NM SEPARATOR ',') END GROUP3_BRAND_NM
+					, CASE WHEN STR_TITLE2 = 3 THEN GROUP_CONCAT(LOGO_FILE_NM SEPARATOR ',') END GROUP3_BRAND_IMG
+				FROM (
+					SELECT
+							B.STR_TITLE3
+							, B.STR_TITLE2
+							, B.DISP_STDT
+							, B.DISP_EDDT
+							, B.STR_TITLE1     AS TITLE
+							, A.BRAND_GROUP_NO
+							, CASE WHEN A.DISP_NM_LANG = 'EN' THEN A.BRAND_GROUP_ENM
+							ELSE A.BRAND_GROUP_KNM
+							END              AS BRAND_GROUP_NM
+							, A.LOGO_FILE_NM
+							, B.DISP_ORD
+					FROM   TB_BRAND_GROUP A
+						, TB_CONTENTS_PREVIEW B
+					WHERE  A.BRAND_GROUP_NO = B.STR_VAR1
+					AND    A.USE_YN = 'Y'
+					AND	   B.CATE_NO = #{cateNo}
+					AND    B.CONTENTS_LOC = #{contentsLoc}
+					AND    B.DISP_STDT <![CDATA[<=]]> NOW()
+					AND    B.DISP_EDDT <![CDATA[>=]]> NOW()
+					ORDER  BY B.DISP_ORD, B.CONTENTS_SQ
+				) T
+			GROUP BY STR_TITLE2
+		) Z
 	</select>
 </mapper>

+ 96 - 17
src/main/webapp/WEB-INF/views/display/MainGnbContentsPopupForm.html

@@ -214,8 +214,6 @@
 
 	var fnRemoveBrand = function (obj , idx){
 		var divId = $(obj).closest('div').attr('id');
-		console.log('divId>'+divId);
-		console.log('idx>'+idx);
 		$("#"+divId+" #brandUl"+idx).remove();
 		//fnReloadGoodsListIdx(divId);
 	}
@@ -256,9 +254,9 @@
 	 */
 	var dataArr = [];
 	$("#btnGnbTabSave").on('click', function(){
-		/*if(!gagajf.checkRequired("#gnbTabList")){
+		if(!gagajf.checkRequired("#gnbTabList")){
 			return;
-		}*/
+		}
 
 		dataArr = [];
 		$("#gnbTabList .tabTable").each(function (){
@@ -285,6 +283,8 @@
 			var subText4 = '';
 			var i=1;
 
+			strTitle3 = $(".tabTable").find("input[name=tableIdx]").val();
+
 			$(this).find(".brandClass").each(function (){
 				var idx = $(this).closest('div').attr('data-id');
 				strTitle1 = $(".groupTr").find("input[id=bTitle"+idx+"]").val();
@@ -293,6 +293,7 @@
 				var dispOrd = $(this).find("[name=dispOrd]").val();
 				strVar1 = $(this).find("input[name=brandGroupNo]").val();
 				imgPath1 = $(this).find("input[name=imgPath1]").val();
+				strTitle2 = idx;
 
 				var data = {
 					cateNo : cateNo
@@ -339,7 +340,6 @@
 
 	// 브랜드 코드에 해당하는 브랜드 명, 브랜드 이미지 join해서 가져와야함 -> 로직 수정 필요
 	var fnGetBrandPreviewList = function (result){
-		console.log('저장이됐다!?');
 		$("#gnbTabList").html('');
 		var data = {cateNo : cateNo
 			,contentsLoc : contentsLoc
@@ -350,8 +350,17 @@
 
 	var fnCreateBrandLayout = function (result){
 		var html = '';
-
 		for(var i=0; i<result.length; i++){
+			var g1cdArr = result[i].group1brandCd.split(",");
+			var g2cdArr = result[i].group2brandCd.split(",");
+			var g3cdArr = result[i].group3brandCd.split(",");
+			var g1nmArr = result[i].group1brandNm.split(",");
+			var g2nmArr = result[i].group2brandNm.split(",");
+			var g3nmArr = result[i].group3brandNm.split(",");
+			var g1imgArr = result[i].group1brandImg.split(",");
+			var g2imgArr = result[i].group2brandImg.split(",");
+			var g3imgArr = result[i].group3brandImg.split(",");
+
 			var dispStdt = result[i].dispStdt.split(" ");
 			var dispEddt = result[i].dispEddt.split(" ");
 			html += '<table class="frmStyle tabTable" style="margin-bottom:30px" id="tabTable'+i+'">';
@@ -386,18 +395,88 @@
 			html += '	</tr>';
 			html += '	</thead>';
 			html += '	<tbody>';
-			for(var j=0; j<3; j++){
-				html += '	<tr class="groupTr">';
-				html += '		<th>GROUP '+(j+1)+'<br><input type="text" name="brandGroup'+i+'" id="bTitle'+(j+1)+'" class="w100" value=""/><br>';
-				html += '			<button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',\''+(j+1)+'\');">브랜드조회</button><br></th>';
-				html += '		<td colspan="2" name="brandArr'+i+'" id="tabBrand'+(j+1)+'">';
-				html += '			<div class="sortableWrap" data-unit="7" style="overflow-y:scroll;">';
-				html += '				<div class="itemWrap ui-sortable" id="brandListTd'+(j+1)+'" data-id="'+(j+1)+'">';
-				html += '				</div>';
-				html += '			</div>';
-				html += '		</td>';
-				html += '	</tr>';
+
+			html += '	<tr class="groupTr">';
+			html += '		<th>GROUP1<br><input type="text" name="brandGroup'+i+'" id="bTitle1" class="w100" value="'+result[i].group1Title+'"/><br>';
+			html += '			<button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',1);">브랜드조회</button><br></th>';
+			html += '		<td colspan="2" name="brandArr'+i+'" id="tabBrand1">';
+			html += '			<div class="sortableWrap" data-unit="7" style="overflow-y:scroll;">';
+			html += '				<div class="itemWrap ui-sortable" id="brandListTd1" data-id="1">';
+			for(let k=0; k<g1cdArr.length; k++){
+				html += '<ul id="brandUl' + k + '" class="item ui-state-default brandClass" style="min-height:130px;">';
+				html += '	<input type="hidden" name="brandGroupNo" value="' + g1cdArr[k] + '">';
+				html += '	<li class="img">';
+				html += '		<img src="' + uploadGoodsUrl + "/" + g1imgArr[k] + '" onerror="this.src=\'/image/no.gif\';"/>';
+				html += '	</li>';
+				html += '	<li class="cont">';
+				html += '		<ul>';
+				html += '			<li class="no" name="brandCdLi"><span>' + g1cdArr[k] + '</span>';
+				html += '				<span style="margin-left:5px;"><a href="javascript:void(0);" onclick="fnRemoveBrand(this,' + k + ');">X</a></span>';
+				html += '			</li>';
+				html += '			<li class="title">' + g1nmArr[k] + '</li>';
+				html += '		</ul>';
+				html += '	</li>';
+				html += '</ul>';
 			}
+			html += '				</div>';
+			html += '			</div>';
+			html += '		</td>';
+			html += '	</tr>';
+
+			html += '	<tr class="groupTr">';
+			html += '		<th>GROUP2<br><input type="text" name="brandGroup'+i+'" id="bTitle2" class="w100" value="'+result[i].group2Title+'"/><br>';
+			html += '			<button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',2);">브랜드조회</button><br></th>';
+			html += '		<td colspan="2" name="brandArr'+i+'" id="tabBrand2">';
+			html += '			<div class="sortableWrap" data-unit="7" style="overflow-y:scroll;">';
+			html += '				<div class="itemWrap ui-sortable" id="brandListTd2" data-id="2">';
+			for(let m=0; m<g2cdArr.length; m++){
+				html += '<ul id="brandUl' + m + '" class="item ui-state-default brandClass" style="min-height:130px;">';
+				html += '	<input type="hidden" name="brandGroupNo" value="' + g2cdArr[m] + '">';
+				html += '	<li class="img">';
+				html += '		<img src="' + uploadGoodsUrl + "/" + g2imgArr[m] + '" onerror="this.src=\'/image/no.gif\';"/>';
+				html += '	</li>';
+				html += '	<li class="cont">';
+				html += '		<ul>';
+				html += '			<li class="no" name="brandCdLi"><span>' + g2cdArr[m] + '</span>';
+				html += '				<span style="margin-left:5px;"><a href="javascript:void(0);" onclick="fnRemoveBrand(this,' + m + ');">X</a></span>';
+				html += '			</li>';
+				html += '			<li class="title">' + g2nmArr[m] + '</li>';
+				html += '		</ul>';
+				html += '	</li>';
+				html += '</ul>';
+			}
+			html += '				</div>';
+			html += '			</div>';
+			html += '		</td>';
+			html += '	</tr>';
+
+			html += '	<tr class="groupTr">';
+			html += '		<th>GROUP3<br><input type="text" name="brandGroup'+i+'" id="bTitle3" class="w100" value="'+result[i].group3Title+'"/><br>';
+			html += '			<button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',3);">브랜드조회</button><br></th>';
+			html += '		<td colspan="2" name="brandArr'+i+'" id="tabBrand3">';
+			html += '			<div class="sortableWrap" data-unit="7" style="overflow-y:scroll;">';
+			html += '				<div class="itemWrap ui-sortable" id="brandListTd3" data-id="3">';
+			for(let n=0; n<g3cdArr.length; n++){
+				html += '<ul id="brandUl' + n + '" class="item ui-state-default brandClass" style="min-height:130px;">';
+				html += '	<input type="hidden" name="brandGroupNo" value="' + g3cdArr[n] + '">';
+				html += '	<li class="img">';
+				html += '		<img src="' + uploadGoodsUrl + "/" + g3imgArr[n] + '" onerror="this.src=\'/image/no.gif\';"/>';
+				html += '	</li>';
+				html += '	<li class="cont">';
+				html += '		<ul>';
+				html += '			<li class="no" name="brandCdLi"><span>' + g3cdArr[n] + '</span>';
+				html += '				<span style="margin-left:5px;"><a href="javascript:void(0);" onclick="fnRemoveBrand(this,' + n + ');">X</a></span>';
+				html += '			</li>';
+				html += '			<li class="title">' + g3nmArr[n] + '</li>';
+				html += '		</ul>';
+				html += '	</li>';
+				html += '</ul>';
+			}
+			html += '				</div>';
+			html += '			</div>';
+			html += '		</td>';
+			html += '	</tr>';
+
 			html += '	</tbody>';
 			html += '</table>';
 		}