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

세트상품상세 - 구성상품 상세노출

eskim 5 лет назад
Родитель
Сommit
ba981a872c

+ 115 - 72
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -61,7 +61,6 @@ public class TsfGoodsService {
 	@Autowired
 	private ObjectMapper mapper;
 
-	
 	/**
 	 * 상품뷰이력 생성
 	 *
@@ -453,14 +452,14 @@ public class TsfGoodsService {
 	 * @since 2021. 3. 22
 	 */
 	public int getGoodsSetStockQty(GoodsStock goodsStock) {
-		
+
 //		input param
 //		arrGoodsOption : goodsOption // [{goodsCd|optCd|qty},{goodsCd|optCd|qty}]
 //		,minOrdQty : minOrdQty
 //		,maxOrdQty : maxOrdQty
 //		,goodsCd : mGoodsCd
 //		,selfGoodsYn : selfGoodsYn
-		
+
 		int result = 0;
 		int index = 0;	// 상품순서
 		//int masterStoreCnt = 0;
@@ -472,7 +471,7 @@ public class TsfGoodsService {
 
 		// 예약상품 여부 확인
 		int goodsResSellCount = goodsDao.getGoodsResSellCount(goodsStock.getGoodsCd());
-				
+
 		int ableOrderCnt = 0;
 		for (String arrGoodsCd : goodsStock.getArrGoodsOption()) {	// [{goodsCd|optCd|qty},{goodsCd|optCd|qty}]
 
@@ -491,7 +490,7 @@ public class TsfGoodsService {
 				} else {
 					stockByGoodsSize = goodsDao.getGoodsStoreStockQty(tmpStock);
 				}
-				
+
 				//log.info("[getGoodsSetStockQty] stockByGoodsSize = {}", stockByGoodsSize);
 				if (stockByGoodsSize <= 0) {
 					returnFlag = true;
@@ -574,7 +573,7 @@ public class TsfGoodsService {
 	public Collection<Goods> getTmtbGoodsList(Goods goods) {
 		goods.setArrTmtbSq(null);		// 배열 사용하여 진행시에 IN절에 걸려 query timeout 걸려 null처리
 		Collection<Goods> result = new ArrayList<Goods>();
-			
+
 		Collection<Tmtb> tmtbSqList = goodsDao.getTmtbSqList(goods);
 		if (tmtbSqList == null || tmtbSqList.isEmpty()) {
 			return result;
@@ -583,48 +582,50 @@ public class TsfGoodsService {
 		//log.info("[goods]={}",goods);
 		int rCount = 0;	//다다익선 조회수
 		int tCount = goods.getMaxRownum();	//리턴 잔여수
-		if (tCount == 0) tCount = 20;
-		
-		for (Tmtb tmtb: tmtbSqList) {
-			
+		if (tCount == 0) {
+			tCount = 20;
+		}
+
+		for (Tmtb tmtb : tmtbSqList) {
+
 			goods.setTmtbSq(tmtb.getTmtbSq());
 			Collection<Goods> tmtbGoodsList = goodsDao.getTmtbGoodsList(goods);
 			if (tmtbGoodsList == null || tmtbGoodsList.isEmpty()) {
 				continue;
 			}
-			
+
 			if (tCount <= 0) { //잔여수가 없으면 종료
 				break;
 			}
-			
+
 			//다다익선 조회 상품 수
 			rCount = tmtbGoodsList.size();
-			
+
 			if (tCount > rCount) { 	//조회수보다 잔여수가 클경우
 				result.addAll(tmtbGoodsList);
 				tCount = tCount - rCount; //남은 잔여수 계산
-			}else {
+			} else {
 				if (tCount == rCount) {	//잔여 수량과 조회수가 같은면 종료
 					result.addAll(tmtbGoodsList);
 					break;
-				}else {
-					
-					for (int i=0; i<tCount; i++) {  //잔여수량만큼 loop
+				} else {
+
+					for (int i = 0; i < tCount; i++) {  //잔여수량만큼 loop
 						int tmtbGoodsListCnt = 0;
-						for(Goods tmtbGoods: tmtbGoodsList) {
+						for (Goods tmtbGoods : tmtbGoodsList) {
 							if (i == tmtbGoodsListCnt) {
 								result.add(tmtbGoods);
-								tCount --;
+								tCount--;
 								break;
 							}
-							tmtbGoodsListCnt ++;
+							tmtbGoodsListCnt++;
 						}
 					}
 				}
-				
+
 			}
 		}
-		
+
 		return result;
 	}
 
@@ -714,10 +715,10 @@ public class TsfGoodsService {
 	 * @date 2021. 3. 10
 	 */
 	public Collection<Measurement> getMeasurementList(Goods goods) {
-		
-		 return goodsDao.getMeasurementList(goods);
+
+		return goodsDao.getMeasurementList(goods);
 	}
-	
+
 	/**
 	 * 실측사이즈 조회
 	 *
@@ -731,14 +732,14 @@ public class TsfGoodsService {
 		// 행, 열 변환
 		Collection<Measurement> measurementList = goodsDao.getMeasurementList(goods);
 		Collection<MeasurementStyle> measurementStyleList = new ArrayList<MeasurementStyle>();
-		
+
 		if (measurementList == null || measurementList.isEmpty()) {
 			return measurementStyleList;
 		}
-		
+
 		int colSize = measurementList.size(); 	// 열 column
 		int rowSize = 5; // 상의하위포함 최대사이즈
-		
+
 		String[][] arrMeasurementList = new String[rowSize + 1][colSize + 1];
 
 		// 사이즈 설정
@@ -747,7 +748,7 @@ public class TsfGoodsService {
 			arrMeasurementList[0][0] = measurement.getTypecd();
 			yIndex++;
 			arrMeasurementList[0][yIndex] = measurement.getOptCd2();
-			
+
 			// 부위명 설정
 			arrMeasurementList[1][0] = measurement.getTypecd();
 			arrMeasurementList[2][0] = measurement.getTypecd();
@@ -759,7 +760,7 @@ public class TsfGoodsService {
 			arrMeasurementList[3][yIndex] = String.valueOf(measurement.getValue3());
 			arrMeasurementList[4][yIndex] = String.valueOf(measurement.getValue4());
 			arrMeasurementList[5][yIndex] = String.valueOf(measurement.getValue5());
-		
+
 //			 arrMeasurementList = [[하의, 100, 110, 120, 130, 140, 150],
 //			                       [하의, 42.0, 44.0, 46.0, 48.0, 52.0, 54.0],
 //			                       [하의, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
@@ -768,43 +769,85 @@ public class TsfGoodsService {
 //			                       [하의, 51.0, 60.0, 65.0, 75.0, 79.0, 87.0]]
 //			                    	   
 		}
-		
-		for(int i=0; i< 6; i++) {
+
+		for (int i = 0; i < 6; i++) {
 			MeasurementStyle measurementStyle = new MeasurementStyle();
 			measurementStyle.setGoodsCd(goods.getGoodsCd());
 			measurementStyle.setSizeCount(colSize);
-			
+
 			//log.info("arrMeasurementList[0].length = {}", arrMeasurementList[0].length);
-			for(int j=0; j<arrMeasurementList[0].length; j++) {
-				switch(j) {
-					case 0: measurementStyle.setTypecd(arrMeasurementList[i][j]); break;
-					case 1: measurementStyle.setSize1(arrMeasurementList[i][j]); break;
-					case 2: measurementStyle.setSize2(arrMeasurementList[i][j]); break;
-					case 3: measurementStyle.setSize3(arrMeasurementList[i][j]); break;
-					case 4: measurementStyle.setSize4(arrMeasurementList[i][j]); break;
-					case 5: measurementStyle.setSize5(arrMeasurementList[i][j]); break;
-					case 6: measurementStyle.setSize6(arrMeasurementList[i][j]); break;
-					case 7: measurementStyle.setSize7(arrMeasurementList[i][j]); break;
-					case 8: measurementStyle.setSize8(arrMeasurementList[i][j]); break;
-					case 9: measurementStyle.setSize9(arrMeasurementList[i][j]); break;
-					case 10: measurementStyle.setSize10(arrMeasurementList[i][j]); break;
-					case 11: measurementStyle.setSize11(arrMeasurementList[i][j]); break;
-					case 12: measurementStyle.setSize12(arrMeasurementList[i][j]); break;
-					case 13: measurementStyle.setSize13(arrMeasurementList[i][j]); break;
-					case 14: measurementStyle.setSize14(arrMeasurementList[i][j]); break;
-					case 15: measurementStyle.setSize15(arrMeasurementList[i][j]); break;
-					case 16: measurementStyle.setSize16(arrMeasurementList[i][j]); break;
-					case 17: measurementStyle.setSize17(arrMeasurementList[i][j]); break;
-					case 18: measurementStyle.setSize18(arrMeasurementList[i][j]); break;
-					case 19: measurementStyle.setSize19(arrMeasurementList[i][j]); break;
-					case 20: measurementStyle.setSize20(arrMeasurementList[i][j]); break;
+			for (int j = 0; j < arrMeasurementList[0].length; j++) {
+				switch (j) {
+					case 0:
+						measurementStyle.setTypecd(arrMeasurementList[i][j]);
+						break;
+					case 1:
+						measurementStyle.setSize1(arrMeasurementList[i][j]);
+						break;
+					case 2:
+						measurementStyle.setSize2(arrMeasurementList[i][j]);
+						break;
+					case 3:
+						measurementStyle.setSize3(arrMeasurementList[i][j]);
+						break;
+					case 4:
+						measurementStyle.setSize4(arrMeasurementList[i][j]);
+						break;
+					case 5:
+						measurementStyle.setSize5(arrMeasurementList[i][j]);
+						break;
+					case 6:
+						measurementStyle.setSize6(arrMeasurementList[i][j]);
+						break;
+					case 7:
+						measurementStyle.setSize7(arrMeasurementList[i][j]);
+						break;
+					case 8:
+						measurementStyle.setSize8(arrMeasurementList[i][j]);
+						break;
+					case 9:
+						measurementStyle.setSize9(arrMeasurementList[i][j]);
+						break;
+					case 10:
+						measurementStyle.setSize10(arrMeasurementList[i][j]);
+						break;
+					case 11:
+						measurementStyle.setSize11(arrMeasurementList[i][j]);
+						break;
+					case 12:
+						measurementStyle.setSize12(arrMeasurementList[i][j]);
+						break;
+					case 13:
+						measurementStyle.setSize13(arrMeasurementList[i][j]);
+						break;
+					case 14:
+						measurementStyle.setSize14(arrMeasurementList[i][j]);
+						break;
+					case 15:
+						measurementStyle.setSize15(arrMeasurementList[i][j]);
+						break;
+					case 16:
+						measurementStyle.setSize16(arrMeasurementList[i][j]);
+						break;
+					case 17:
+						measurementStyle.setSize17(arrMeasurementList[i][j]);
+						break;
+					case 18:
+						measurementStyle.setSize18(arrMeasurementList[i][j]);
+						break;
+					case 19:
+						measurementStyle.setSize19(arrMeasurementList[i][j]);
+						break;
+					case 20:
+						measurementStyle.setSize20(arrMeasurementList[i][j]);
+						break;
 				}
 			}
 			measurementStyleList.add(measurementStyle);
 		}
 
 		//log.info("measurementStyleList = {}", measurementStyleList);
-	
+
 		return measurementStyleList;
 	}
 
@@ -843,9 +886,9 @@ public class TsfGoodsService {
 	 */
 	public Collection<GoodsCompose> getGoodsSetComposeList(Goods goods) {
 		Collection<GoodsCompose> getGoodsSetComposeList = goodsDao.getGoodsSetComposeList(goods);
-		for (GoodsCompose goodsExtend : getGoodsSetComposeList) {
+		for (GoodsCompose goodsCompose : getGoodsSetComposeList) {
 			Goods tmpGoods = new Goods();
-			tmpGoods.setGoodsCd(goodsExtend.getCompsGoodsCd());
+			tmpGoods.setGoodsCd(goodsCompose.getCompsGoodsCd());
 			tmpGoods.setSupplyCompCd(goods.getSupplyCompCd());
 			tmpGoods.setFrontGb(goods.getFrontGb());
 			tmpGoods.setIsApp(goods.getIsApp());
@@ -856,24 +899,24 @@ public class TsfGoodsService {
 			// 상품상세
 			Goods resultGoods = this.getGoodsDesc(tmpGoods);
 			if (resultGoods != null) {
-				goodsExtend.setGoodsTitle(resultGoods.getGoodsTitle());
-				goodsExtend.setGoodsTitleDesc(resultGoods.getGoodsTitleDesc());
-				goodsExtend.setGoodsSpecialDesc(resultGoods.getGoodsSpecialDesc());
-				goodsExtend.setGoodsTopDesc(resultGoods.getGoodsTopDesc());
-				goodsExtend.setGoodsDownDesc(resultGoods.getGoodsDownDesc());
-				goodsExtend.setGoodsDesc(resultGoods.getGoodsDesc());
+//				goodsCompose.setGoodsTitle(resultGoods.getGoodsTitle());
+//				goodsCompose.setGoodsTitleDesc(resultGoods.getGoodsTitleDesc());
+//				goodsCompose.setGoodsSpecialDesc(resultGoods.getGoodsSpecialDesc());
+//				goodsCompose.setGoodsTopDesc(resultGoods.getGoodsTopDesc());
+//				goodsCompose.setGoodsDownDesc(resultGoods.getGoodsDownDesc());
+				goodsCompose.setGoodsDesc(resultGoods.getGoodsDesc());
 			}
 
 			// 상품 옵션1(색상) 정보
-			goodsExtend.setGoodsOption1List(goodsDao.getGoodsOption1List(tmpGoods));
+			goodsCompose.setGoodsOption1List(goodsDao.getGoodsOption1List(tmpGoods));
 			// 상품 옵션2(사이즈) 정보
 			//goodsExtend.setGoodsOption2List(goodsDao.getGoodsOption2List(tmpGoods));
 			// 고시 정보
-			goodsExtend.setGoodsNotiList(goodsDao.getGoodsNotiList(tmpGoods));
+			goodsCompose.setGoodsNotiList(goodsDao.getGoodsNotiList(tmpGoods));
 			// 이미지 정보
-			goodsExtend.setGoodsImgList(goodsDao.getGoodsImgList(tmpGoods));
+			goodsCompose.setGoodsImgList(goodsDao.getGoodsImgList(tmpGoods));
 			// 상품 안전인증 정보
-			goodsExtend.setGoodsSafeNo(goodsDao.getGoodsSafeNo(tmpGoods));
+			goodsCompose.setGoodsSafeNo(goodsDao.getGoodsSafeNo(tmpGoods));
 
 		}
 		return getGoodsSetComposeList;
@@ -943,9 +986,9 @@ public class TsfGoodsService {
 					cate.setCate1No(null);
 				}
 
-				if(cate.getContentsLoc().equals("SCM002") ){
+				if (cate.getContentsLoc().equals("SCM002")) {
 					goodsList.addAll(goodsDao.getCategoryMainNewGoodsList(cate));
-				}else{
+				} else {
 					goodsList.addAll(goodsDao.getContentsCategoryNewGoodsList(cate));
 				}
 			}
@@ -965,7 +1008,7 @@ public class TsfGoodsService {
 					temp.setBenefitArr(temp.getIcon().split(","));
 				}
 			}
-		} else if(cate.getContentsLoc().equals("SOM003")){
+		} else if (cate.getContentsLoc().equals("SOM003")) {
 			goodsList = goodsDao.getContentsCategoryGoodsList(cate);
 			for (Goods temp : goodsList) {
 				if (temp.getSizes() != null) {

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

@@ -33,6 +33,7 @@ public class GoodsCompose extends TscBaseDomain {
 	private int currPrice;
 	private String goodsStat;
 	private String sysImgNm;
+	private String tobeFormYn;
 	private String crud;
 	private String compsGoodsNm;
 	private String compsGoodsFullNm;

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

@@ -1142,6 +1142,7 @@
 		     , DATE_FORMAT(G.SELL_STDT ,'%Y%m%d%H%i%S') AS SELL_STDT
 		     , DATE_FORMAT(G.SELL_EDDT ,'%Y%m%d%H%i%S') AS SELL_EDDT
 		     , (SELECT TI.SIZE_GB FROM TB_ITEMKIND TI WHERE TI.ITEMKIND_CD = G.ITEMKIND_CD) AS SIZE_GB
+		     , G.TOBE_FORM_YN
 		     , A.COMPS_CURR_PRICE
 		     , FN_GET_CODE_NM('G073',G.GOODS_GB) AS GOODS_GB_NM
 		     , FN_GET_CODE_NM('G076',G.ORIGIN_CD) AS ORIGIN_NM

+ 121 - 9
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -430,6 +430,109 @@
 				</div>
 				</th:block>
 
+				<!-- 세트상품일 경우구상상품의 정보도 노출  -START -->
+				<th:block th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
+				<th:block  th:each="goodsCompose, status : ${goodsComposeList}">
+					<th:block th:if="${ goodsCompose.tobeFormYn == 'N' and goodsCompose.goodsDesc != null  and !goodsCompose.goodsDesc.empty}" >
+					<div class="mdhtml_box"	>
+						<div style="height:4rem"></div><!-- 여백용 html -->
+						<div th:id="${'goodsDescHtml_' + goodsCompose.compsGoodsCd}"></div>
+					</div>
+					</th:block>
+					
+					<th:block th:if="${goodsCompose.tobeFormYn == 'Y'}">
+									
+						<!-- 착용컷 노출 -->
+						<div class="view_outfit_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_C1') 
+															or #strings.contains(goodsCompose.goodsImgList,'_C2')
+															or #strings.contains(goodsCompose.goodsImgList,'_C3')
+															or #strings.contains(goodsCompose.goodsImgList,'_C4')
+															or #strings.contains(goodsCompose.goodsImgList,'_C5')}">
+							<span class="tit_view">OUTFIT VIEW</span>
+							<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${status.first}">
+							<span class="model_info" th:text="${goodsImg.modelInfo}">(모델정보 : 185cm / 78kg / XL 착용)</span>
+							</th:block>
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1') 
+																							or #strings.contains(goodsImg.sysImgNm,'_C2')
+																							or #strings.contains(goodsImg.sysImgNm,'_C3')
+																							or #strings.contains(goodsImg.sysImgNm,'_C4')
+																							or #strings.contains(goodsImg.sysImgNm,'_C5')}">
+								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</th:block>
+							</div>
+						</div>
+					
+						<!-- //착용컷 노출 -->
+						<!-- 상품컷 노출 -->
+						<div class="view_detail_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_01') or #strings.contains(goodsCompose.goodsImgList,'_02')
+															or #strings.contains(goodsCompose.goodsImgList,'_D1') or #strings.contains(goodsCompose.goodsImgList,'_D2')
+															or #strings.contains(goodsCompose.goodsImgList,'_D3') or #strings.contains(goodsCompose.goodsImgList,'_D4')
+															or #strings.contains(goodsCompose.goodsImgList,'_D5') or #strings.contains(goodsCompose.goodsImgList,'_D6')
+															or #strings.contains(goodsCompose.goodsImgList,'_D7') or #strings.contains(goodsCompose.goodsImgList,'_D8')
+															or #strings.contains(goodsCompose.goodsImgList,'_D9') or #strings.contains(goodsCompose.goodsImgList,'_D10')
+															or #strings.contains(goodsCompose.goodsImgList,'_D11') or #strings.contains(goodsCompose.goodsImgList,'_D12')
+															or #strings.contains(goodsCompose.goodsImgList,'_D13') or #strings.contains(goodsCompose.goodsImgList,'_D14')
+															or #strings.contains(goodsCompose.goodsImgList,'_D15') or #strings.contains(goodsCompose.goodsImgList,'_D16')
+															or #strings.contains(goodsCompose.goodsImgList,'_D17') or #strings.contains(goodsCompose.goodsImgList,'_D18')
+															or #strings.contains(goodsCompose.goodsImgList,'_D19') or #strings.contains(goodsCompose.goodsImgList,'_D20')}">
+							<span class="tit_view">PRODUCT VIEW</span>
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
+																							or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
+																							or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
+																							or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
+																							or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
+																							or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
+																							or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
+																							or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
+																							or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
+																							or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
+																							or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
+								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt=""  th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</th:block>
+							</div>
+						</div>
+						<!-- //상품컷 노출 -->
+						<!-- 원단 노출 -->
+						<div class="view_fabric_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_F1')}">
+							<span class="tit_view">FABRIC</span>
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
+								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</th:block>
+							</div>
+						</div>
+						<!-- //원단 노출 -->
+						<!-- 라벨 노출 -->
+						<div class="view_label_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_L1') 
+															or #strings.contains(goodsCompose.goodsImgList,'_L2')}">
+							<span class="tit_view">LABEL INFO</span>
+							<div class="view">
+								<span>
+									<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1') 
+																							or #strings.contains(goodsImg.sysImgNm,'_L2')}">
+									<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt=""  th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+									</th:block>
+								</span>
+							</div>
+						</div>
+					
+						<!-- //네이밍룰 안맞는 이미지 노출 -->
+						<div class="view_detail_box" th:if="${not #strings.contains(goodsCompose.goodsImgList,'_01')}">
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" >
+									<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+									</th:block>
+							</div>
+						</div>
+					
+						<!-- //라벨 노출 -->
+					</th:block>
+				</th:block>
+				</th:block>	
+				<!-- 세트상품일 경우구상상품의 정보도 노출  -END -->
+				
 				<!-- 관리자 에디터입력 내용 노출  하다단 html -->
 				<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
 				
@@ -2352,20 +2455,29 @@
 	$(document).ready( function() {
 		
 		$('.timer_box').css('display', 'none');
-		
-		//210526_ 추가 : 이미지 style 속성 제거
-		$(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style");
-		
+
 		//상품상세 적용
 		// 입점 html 에 태그가 정상적이지 않아 스크립트로 처리
-		var goodsDesc = [[${goodsInfo.goodsDesc}]];
-		if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
-			$('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
-			
-			$(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style"); // 이 위치에 있어야해요.
+		if ("G056_S" == [[${goodsInfo.goodsType}]] ){
+			let goodsComposeList = ([[${goodsComposeList}]]);
+			if (goodsComposeList.length > 0){
+				$.each(goodsComposeList, function(idx, item) {
+					if ("N" == item.tobeFormYn && !gagajf.isNull(item.goodsDesc)){
+						$('#goodsDescHtml_'+ item.compsGoodsCd).html(item.goodsDesc);
+					}	
+				});
+			}
 			
+		}else{
+			let goodsDesc = [[${goodsInfo.goodsDesc}]];
+			if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
+				$('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
+			}
 		}
 		
+		//210526_ 추가 : 이미지 style 속성 제거
+		$(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style");
+		
 		var params = new Object();
 		params.goodsCd = [[${params.goodsCd}]];
 		params.viewDt = [[${params.viewDt}]];

+ 115 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -820,6 +820,106 @@
 				<!-- //라벨 노출 -->
 				</th:block>
 					
+				<!-- 세트상품일 경우구상상품의 정보도 노출  -START -->
+				<th:block th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
+				<th:block  th:each="goodsCompose, status : ${goodsComposeList}">
+					<th:block th:if="${ goodsCompose.tobeFormYn == 'N' and goodsCompose.goodsDesc != null  and !goodsCompose.goodsDesc.empty}" >
+						<div style="height:100px"></div>
+						<div th:id="${'goodsDescHtml_' + goodsCompose.compsGoodsCd}"></div>
+					</th:block>
+
+					<th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">
+						<!-- 착용컷 노출 -->
+						<div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_C1') 
+															or #strings.contains(goodsImgList,'_C2')
+															or #strings.contains(goodsImgList,'_C3')
+															or #strings.contains(goodsImgList,'_C4')
+															or #strings.contains(goodsImgList,'_C5')}">
+							<span class="tit_view">OUTFIT VIEW</span>
+							<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${status.first}">
+							<span class="model_info" th:text="${goodsImg.modelInfo}">(모델정보 : 185cm / 78kg / XL 착용)</span>
+							</th:block>
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1') 
+																							or #strings.contains(goodsImg.sysImgNm,'_C2')
+																							or #strings.contains(goodsImg.sysImgNm,'_C3')
+																							or #strings.contains(goodsImg.sysImgNm,'_C4')
+																							or #strings.contains(goodsImg.sysImgNm,'_C5')}">
+								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</th:block>
+							</div>
+						</div>
+						
+						<!-- //착용컷 노출 -->
+						<!-- 상품컷 노출 -->
+						<div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01') or #strings.contains(goodsImgList,'_02')
+															or #strings.contains(goodsImgList,'_D1') or #strings.contains(goodsImgList,'_D2')
+															or #strings.contains(goodsImgList,'_D3') or #strings.contains(goodsImgList,'_D4')
+															or #strings.contains(goodsImgList,'_D5') or #strings.contains(goodsImgList,'_D6')
+															or #strings.contains(goodsImgList,'_D7') or #strings.contains(goodsImgList,'_D8')
+															or #strings.contains(goodsImgList,'_D9') or #strings.contains(goodsImgList,'_D10')
+															or #strings.contains(goodsImgList,'_D11') or #strings.contains(goodsImgList,'_D12')
+															or #strings.contains(goodsImgList,'_D13') or #strings.contains(goodsImgList,'_D14')
+															or #strings.contains(goodsImgList,'_D15') or #strings.contains(goodsImgList,'_D16')
+															or #strings.contains(goodsImgList,'_D17') or #strings.contains(goodsImgList,'_D18')
+															or #strings.contains(goodsImgList,'_D19') or #strings.contains(goodsImgList,'_D20')}">
+							<span class="tit_view">PRODUCT VIEW</span>
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
+																							or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
+																							or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
+																							or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
+																							or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
+																							or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
+																							or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
+																							or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
+																							or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
+																							or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
+																							or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
+								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt=""  th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</th:block>
+							</div>
+						</div>
+						<!-- //상품컷 노출 -->
+						<!-- 원단 노출 -->
+						<div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_F1')}">
+							<span class="tit_view">FABRIC</span>
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
+								<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</th:block>
+							</div>
+						</div>
+						<!-- //원단 노출 -->
+						<!-- 라벨 노출 -->
+						<div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1') 
+															or #strings.contains(goodsImgList,'_L2')}">
+							<span class="tit_view">LABEL INFO</span>
+							<div class="view">
+								<span>
+									<th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1') 
+																							or #strings.contains(goodsImg.sysImgNm,'_L2')}">
+									<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt=""  th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+									</th:block>
+								</span>
+							</div>
+						</div>
+						
+						<!-- //네이밍룰 안맞는 이미지 노출 -->
+						<div class="view_detail_box" th:if="${not #strings.contains(goodsImgList,'_01')}">
+							<div class="view">
+								<th:block th:each="goodsImg, status : ${goodsImgList}" >
+									<img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+									</th:block>
+							</div>
+						</div>
+						
+						<!-- //라벨 노출 -->
+					</th:block>
+				</th:block>
+				</th:block>	
+				<!-- 세트상품일 경우구상상품의 정보도 노출  -END -->
+					
 				<!-- 관리자 에디터입력 내용 노출  하다단 html -->
 				<div class="mdhtml_box" th:if="${goodsInfo.goodsDownDesc != null  and !goodsInfo.goodsDownDesc.empty }" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
 					
@@ -1289,9 +1389,21 @@
 	
 	//상품상세 적용
 	// 입점 html 에 태그가 정상적이지 않아 스크립트로 처리
-	let goodsDesc = [[${goodsInfo.goodsDesc}]];
-	if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
-		$('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
+	if ("G056_S" == [[${goodsInfo.goodsType}]] ){
+		let goodsComposeList = ([[${goodsComposeList}]]);
+		if (goodsComposeList.length > 0){
+			$.each(goodsComposeList, function(idx, item) {
+				if ("N" == item.tobeFormYn && !gagajf.isNull(item.goodsDesc)){
+					$('#goodsDescHtml_'+ item.compsGoodsCd).html(item.goodsDesc);
+				}	
+			});
+		}
+		
+	}else{
+		let goodsDesc = [[${goodsInfo.goodsDesc}]];
+		if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
+			$('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
+		}
 	}
 	
 	let socialSq = [[${goodsInfo.socialSq}]];