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

기획전 상세 쿠폰 퍼블변경, 핫딜 쿼리 수정

sowon4187 5 лет назад
Родитель
Сommit
7f3564a965

+ 3 - 1
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -246,7 +246,9 @@ public class TsfPlanningController extends TsfBaseController {
 		plan.setPlanSq(planSq);
 		
 		result.set("replyList",planningService.getReplyList(plan));
-		result.set("custNo",TsfSession.getInfo().getCustNo());
+		if (TsfSession.isLogin()) {
+			result.set("custNo",TsfSession.getInfo().getCustNo());
+		}
 		return result;
 	}
 

+ 2 - 0
src/main/java/com/style24/front/biz/web/TsfSocialController.java

@@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.service.TsfSocialService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
@@ -40,6 +41,7 @@ public class TsfSocialController extends TsfBaseController {
 		// 디바이스 set
 		social.setFrontGb(TsfSession.getFrontGb());
 		social.setCustGb(TsfSession.getCustGb());
+		social.setSiteCd(TscConstants.Site.STYLE24.value());
 		
 		// 소셜(핫딜) 
 		mav.addObject("socialInfo", socialService.getSocialInfo(social));

+ 105 - 61
src/main/java/com/style24/persistence/mybatis/shop/TsfSocial.xml

@@ -24,66 +24,110 @@
 	
 	<select id="getSocialGoodsList" resultType="Social" parameterType="Social">
 		/* TsfSocial.getSocialGoodsList*/
-		SELECT F.* 
-			 ,  (CASE WHEN F.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = F.GOODS_CD) 
-			    ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = F.GOODS_CD) 
-			    END) AS STOCK_QTY_SUM
-			 , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
-			 , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
-			            WHEN 0 THEN 'N'
-			            ELSE 'Y' END AS GOODS_IMAGE_YN
-			 ,(CASE WHEN F.WISH_GOOD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN
-			FROM
-			(   
-				 SELECT A.SOCIAL_SQ
-				     , A.SOCIAL_NM
-				     , A.SOCIAL_TYPE
-				     , A.SITE_CD
-				     , A.FRONT_GB
-				     , A.SOCIAL_STDT
-				     , A.SOCIAL_EDDT
-				     , A.SOCIAL_TNM
-				     , A.USE_YN
-				     , A.APPLY_GB
-				     , A.REG_DT 
-				     , B.GOODS_CD 
-				     , B.CURR_BPRICE 
-				     , B.CURR_APRICE 
-				     , B.DC_BRATE 
-				     , B.DC_ARATE 
-				     , B.DEL_YN 
-				     , B.DISP_ORD 
-				     , C.GOODS_NM 
-				     , C.GOODS_TYPE 
-				     , C.GOODS_TNM 
-				     , C.LIST_PRICE
-				     , C.MAIN_COLOR_CD 
-				     , D.BRAND_KNM 
-				     , D.BRAND_ENM 
-				     , W.CUST_NO 
-				     , W.GOODS_CD AS WISH_GOOD
-		             <choose>
-			            <when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
-				     , IF(W.GOODS_CD IS NULL,'','likeit')                                                           AS LIKE_IT       /*위시리스트담긴상품*/
-			            </when>
-			            <otherwise>
-				     , ''                                                                                           AS LIKE_IT       /*위시리스트담긴상품*/
-			            </otherwise>
-		             </choose>
-				FROM TB_SOCIAL A INNER JOIN TB_SOCIAL_GOODS B ON A.SOCIAL_SQ = B.SOCIAL_SQ 
-				                 INNER JOIN TB_GOODS C ON B.GOODS_CD = C.GOODS_CD 
-				                 INNER JOIN TB_BRAND D ON C.BRAND_CD = D.BRAND_CD
-				                 LEFT JOIN TB_WISHLIST W ON C.GOODS_CD = W.GOODS_CD
-		                             AND W.CUST_NO  = IFNULL(#{custNo},0)
-				WHERE 1=1
-				  AND NOW() BETWEEN A.SOCIAL_STDT AND A.SOCIAL_EDDT 
-				  AND A.USE_YN = 'Y'		    		 /*사용여부*/
-				  AND A.APPLY_GB = 'A'					 /*적용구분(P:대기,A:적용,F:종료)*/
-				  AND A.FRONT_GB IN ('A',#{frontGb})	 /*프론트 구분*/
-				  AND B.DEL_YN = 'N'
-				  AND NOW() BETWEEN C.SELL_STDT AND C.SELL_EDDT
-				ORDER BY B.DISP_ORD 
-			)F
-			WHERE F.SOCIAL_SQ = #{socialSq}
+		WITH TAB_GOODS AS (
+		    SELECT S.SOCIAL_SQ
+		         , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		                BG.BRAND_GROUP_ENM
+		            ELSE
+		                BG.BRAND_GROUP_KNM
+		       END                                     AS BRAND_GROUP_NM /*브랜드그룹명*/
+		         , SG.GOODS_CD                                               /*상품코드*/
+		         , G.GOODS_TNM                                               /*상품타이틀명*/
+		         , G.MAIN_COLOR_CD                                           /*메인컬러코드*/
+		         , G.GOODS_NM                                                /*상품명*/
+		         , G.GOODS_GB                                                /*상품구분*/
+		         , G.FOREIGN_BUY_YN                                          /*해외구매대행여부*/
+		         , G.PARALLEL_IMPORT_YN                                      /*병행수입여부*/
+		         , G.ORDER_MADE_YN                                           /*주문제작여부*/
+		         , G.LIST_PRICE                                              /*정상가*/
+		         , SG.CURR_APRICE                          AS CURR_PRICE     /*변경후현재판매가*/
+		         , SG.DC_ARATE                             AS DC_RATE        /*변경후할인율*/
+		         , SG.DISP_ORD                                               /*노출순서*/
+		         , G.GOODS_TYPE                                              /*상품유형*/
+		         , G.GOODS_STAT                                              /*상품상태*/
+		         , ROW_NUMBER() OVER(ORDER BY SG.DISP_ORD
+		                                    , SG.GOODS_CD) AS NUMB
+		    FROM   TB_SOCIAL S
+		         , TB_SOCIAL_GOODS SG
+		         , TB_GOODS G
+		         , TB_BRAND B
+		         , TB_BRAND_GROUP BG
+		    WHERE  S.SOCIAL_SQ = SG.SOCIAL_SQ
+		    AND    SG.GOODS_CD = G.GOODS_CD
+		    AND    G.BRAND_CD = B.BRAND_CD
+		    AND    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		    AND    S.SOCIAL_SQ = #{socialSq}
+		    AND    NOW() BETWEEN S.SOCIAL_STDT AND S.SOCIAL_EDDT
+		    AND    S.SOCIAL_TYPE = 'G062_10' /*핫딜*/
+		    AND    S.SITE_CD = #{siteCd}
+		    AND    S.FRONT_GB IN ('A', #{frontGb}) /*프론트구분*/
+		    AND    S.APPLY_GB = 'A' /*적용구분(P:대기,A:적용,F:종료)*/
+		    AND    S.USE_YN = 'Y' /*사용하는소셜*/
+		    AND    SG.DEL_YN = 'N' /*삭제안된상품*/
+		    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		    AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
+		)
+		, TAB_GOODS_IMG AS (
+		    /* 상품의 이미지 */
+		    SELECT GOODS_CD
+		         , MAX(SYS_IMG_NM)  AS SYS_IMG_NM
+		         , MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
+		    FROM (
+		          SELECT G.GOODS_CD
+		               , CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END   AS SYS_IMG_NM
+		               , CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
+		          FROM   TAB_GOODS G
+		               , TB_GOODS_IMG GI
+		          WHERE  G.GOODS_CD = GI.GOODS_CD
+		          AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		          ) Z
+		     GROUP BY GOODS_CD
+		)
+		, TAB_STOCK AS (
+		    SELECT G.GOODS_CD
+		         , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY_SUM
+		    FROM   TAB_GOODS G
+		         , VW_STOCK S
+		    WHERE  G.GOODS_CD = S.GOODS_CD
+		    AND    G.GOODS_TYPE = 'G056_N'
+		    AND    S.DISP_YN = 'Y' /*노출하는상품만*/
+		    GROUP  BY G.GOODS_CD
+		    UNION ALL 
+		    SELECT G.GOODS_CD
+		         , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY_SUM
+		    FROM   TAB_GOODS G
+		         , VW_STOCK_COMPOSE S
+		    WHERE  G.GOODS_CD = S.GOODS_CD
+		    AND    G.GOODS_TYPE != 'G056_N'
+		    AND    S.DISP_YN = 'Y' /*노출하는상품만*/
+		    GROUP  BY G.GOODS_CD
+		)
+		SELECT G.BRAND_GROUP_NM
+		     , G.GOODS_CD
+		     , FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
+		     , G.GOODS_TNM
+		     , G.MAIN_COLOR_CD
+		     , G.LIST_PRICE
+		     , G.CURR_PRICE    /*현재판매가*/
+		     , G.DC_RATE
+		     , GI.SYS_IMG_NM
+		     , GI.SYS_IMG_NM2
+		     , S.STOCK_QTY_SUM
+		     <choose>
+		         <when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+		     , IF(W.GOODS_CD IS NULL,'','likeit')                                                           AS LIKE_IT       /*위시리스트담긴상품*/
+		         </when>
+		         <otherwise>
+		     , ''                                                                                           AS LIKE_IT       /*위시리스트담긴상품*/
+		         </otherwise>
+		     </choose>
+		FROM   TAB_GOODS G
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
+		LEFT OUTER JOIN TAB_STOCK S ON G.GOODS_CD = S.GOODS_CD
+		<if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+		LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
+		                             AND W.CUST_NO = #{custNo}
+		</if>
 	</select>
 </mapper>

+ 15 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml

@@ -46,6 +46,7 @@
 			         , G.GOODS_CD                                               /*상품코드*/
 			         , G.GOODS_NM                                               /*상품명*/
 			         , G.GOODS_GB                                               /*상품구분*/
+			         , G.GOODS_TYPE 											/*상품타입*/
 			         , G.FOREIGN_BUY_YN                                         /*해외구매대행여부*/
 			         , G.PARALLEL_IMPORT_YN                                     /*병행수입여부*/
 			         , G.ORDER_MADE_YN                                          /*주문제작여부*/
@@ -53,9 +54,19 @@
 			         , G.MAIN_COLOR_CD                                          /*대표색상코드*/
 			         , G.LIST_PRICE                                             /*정상가(최초판매가)*/
 			         , G.CURR_PRICE                                             /*현재판매가*/
+			         , G.MIN_ORD_QTY                                            /*최소주문수량*/  				
+			         , S.OPT_CD
 			         , GS.STOCK_QTY
 			    FROM   TB_WISHlIST W
-			         , TB_GOODS G
+			         , TB_GOODS G LEFT OUTER JOIN (SELECT GOODS_CD
+		                                                   , SUM(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
+		                                                                                       ELSE CURR_STOCK_QTY END) AS STOCK_QTY
+		                                                    , MIN(SOLDOUT_YN) AS SOLDOUT_YN
+		                                                    , MIN(CASE WHEN SOLDOUT_YN = 'N' THEN OPT_CD 
+		                                                                                       ELSE 'XXX' END) AS OPT_CD 
+		                                                  FROM VW_STOCK
+		                                                  WHERE DISP_YN = 'Y'
+		                                                  GROUP BY GOODS_CD) S ON G.GOODS_CD = S.GOODS_CD
 			         , TB_GOODS_STOCK GS
 			         , TB_BRAND B
 			         , TB_BRAND_GROUP BG
@@ -85,6 +96,9 @@
 			       PG.BRAND_GROUP_NM
 			     , PG.GOODS_CD
 			     , PG.STOCK_QTY
+			     , PG.MIN_ORD_QTY
+			     , PG.GOODS_TYPE
+			     , PG.OPT_CD
 			     , FN_GET_GOODS_NM(PG.GOODS_NM,PG.GOODS_GB,PG.FOREIGN_BUY_YN,PG.PARALLEL_IMPORT_YN,PG.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
 			     , PG.GOODS_NM
 			     , PG.GOODS_TNM

+ 184 - 89
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -126,8 +126,10 @@
 								<div class="cmt_thumb">
 									<div class="form_field">
 										<div class="imgUpload">
-											<label for="fileAdd" class="fileAdd" >업로드</label>
+											<label for="fileAdd" class="fileAdd" onclick="fnFileAdd()">업로드</label>
 											<input type="file" id="fileAdd" name="files[]" />
+											<input type="hidden" id="orgFileNm" name="orgFileNm">
+											<input type="hidden" id="sysFileNm" name="sysFileNm">
 										</div>
 									</div>
 								</div>
@@ -135,51 +137,7 @@
 							</form>
 						</div>
 						<div class="cmt_group" id="replyList">
-					   <!-- <div class="cmt_list_tit">
-								<strong>댓글</strong><span class="cnt">(9,999)</span>
-							</div>
-							데이터 있을 시
-							<ul class="cmt_list">
-								<li>
-									<div class="cmt_top">
-										<span class="writer">DI2****</span>
-										<span class="date">2020.12.30</span>
-									</div>
-									<div class="cmt_cont">
-										<p>
-											애용하는 회원으로서 스타일24의 리뉴얼은 저의 일처럼 기쁘네요 ^^ 깔끔하고 세련된 느낌으로 단장해서 사이트 들어왔을 때 기분이 좋답니다! 사이트 리뉴얼 겸 겨울옷을  사려고 한창 둘러보았어요. <br/>
-											따뜻한 느낌 풀풀 내는아이템들로 찜꽁 해놓았답니다! 이왕 이벤트도 당첨되어서 포인트도 얻고, 또 구매도 하고 싶네요ㅋㅋㅋ <br/>
-											리뉴얼 하신거  축하드려요!!!  당첨되길 바랍니다.^^ 
-										</p>
-									</div>
-								</li>
-								<li>
-									<div class="cmt_top">
-										<span class="writer">ety****</span>
-										<span class="date">2020.12.30</span>
-									</div>
-									<div class="cmt_cont">
-										<div class="img_wrap clear">
-											<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img01.jpg" alt="썸네일"></span>
-											<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img02.jpg" alt="썸네일"></span>
-											<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img03.jpg" alt="썸네일"></span>
-											<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img04.jpg" alt="썸네일"></span>
-										</div>
-										<p>모처럼 스타일24를 다시 애용해야 겠어요! 축하축하 ^^</p>
-										<button class="btn btn_default btn_del"><span>삭제</span></button>
-									</div>
-								</li>
-							</ul> -->
-							<!-- 데이터 있을 시 -->
-							<!-- 데이터 없을 시 -->
-							<div class="nodata" style="display:none;">
-								<div class="txt_box">
-									<p>
-										등록된 댓글이 없습니다.
-									</p>
-								</div>
-							</div>
-							<!-- //데이터 없을 시 -->
+
 						</div>
 						<div class="paging_wrap">
 							<ul class="pageNav" id="paging">
@@ -287,6 +245,30 @@
 	<input type="hidden" name="planSq" th:value="${planInfo.planSq}"/>
 </form>
 
+<!-- 댓글 이미지 팝업 -->
+	<div class="modal fade thumb_img_pop" id="thumbImgPop" tabindex="-1" role="dialog" aria-labelledby="thumbImgLabel" aria-hidden="true">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+				<div class="modal-header sr-only">
+                    <h5 class="modal-title" id="thumbImgLabel">이미지 상세보기</h5>
+                </div>
+                <div class="modal-body">
+                    <div class="pop_cont">
+ 						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<!-- 이미지 슬라이드 영역 -->
+							</div>
+						</div>
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>						
+						<div class="swiper-pagination"></div>
+                    </div>
+                </div>
+            </div>
+        </div>        
+    </div>
+	<!-- //댓글 이미지 팝업 -->	    
+
 <script th:inline="javascript">
 
 let review = [[${reviewInfo}]];
@@ -315,13 +297,23 @@ if(review.length>0){
 	$.each(review, function(idx, item)  {
 		html += '		<div class="reviw_box">'
 		html += '			<div class="best_review">';
-		html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">';
+		if(item.reviewSysImg!= null){
+			html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">';
+		}else{
+			html += '				<a href="javascript:void();" id="btn_pdBestReview_pop">';
+		}
+		
 		html += '					<div class="pic">';
-		if (item.fileGb == 'M') { 
-			html += '								<span class="thumb mov" style="background-image: url('+ imgUrl +'/'+item.reviewSysImg +');"></span>';	
+		if(item.reviewSysImg!= null){
+			if (item.fileGb == 'M') { 
+				html += '								<span class="thumb mov" style="background-image: url('+ imgUrl+item.reviewSysImg +');"></span>';	
+			}else{
+				html += '								<span class="thumb" style="background-image: url('+ imgUrl +item.reviewSysImg +');"></span>';			
+			}
 		}else{
-			html += '								<span class="thumb" style="background-image: url('+ imgUrl +'/'+item.reviewSysImg +');"></span>';			
+			html += '								<span class="thumb" style="background-image: url('+ goodsView+'/'+item.sysImgNm +');"></span>';	
 		}
+		
 		html += '                   </div>';
 		html += '                  <div class="star_score">';
 		html += '                      <span class="star">';
@@ -645,22 +637,26 @@ if(coupon.length>0){
 	});
 	html += '		</ul>';
 	html += '	</div>';
-	html += '	<div class="announce_txt">';
-	html += '		<div class="note_txt">';
-	html += '			<img src="/images/pc/ico_content_find.png" alt="유의사항">';
-	html += '			<p>유의사항</p>';
-	html += '		</div>';
-	html += '		<div class="announce_list">';
-	html += coupon[0].note;
-/* 	html += '			<ul>';
-	html += '				<li>쿠폰 발급 기간 :'+ plan.dispStdt +'~'+ plan.dispEddt +'</li>';
-	html += '				<li>본 쿠폰은 해당 기획전 상품에만 적용 가능합니다.</li>';
-	html += '				<li>본 쿠폰은 해당 기획전 다운로드 버튼을 통해 발급받으실 수 있습니다.</li>';
-	html += '			</ul>'; */
-	html += '		</div>';
-	html += '	</div>';
-	html += '</div>';
 	html += '</div>';
+	html += '<div class="content dp_announce line">                                                 ';
+	html += '    <div class="cont_head">                                                       ';
+	html += '        <div>                                                                     ';
+	html += '            <h4>유의사항</h4>                                                         ';
+	html += '        </div>                                                                    ';
+	html += '    </div>                                                                        ';
+	html += '    <div class="cont_body">                                                       ';
+	html += '        <div class="announce_txt">                                                ';
+	html += '            <div class="note_txt">                                                ';
+	html += '                <img src="/images/pc/ico_content_find.png" alt="유의사항">            ';
+	html += '                <p>유의사항</p>                                                       ';
+	html += '            </div>                                                                ';
+	html += '            <div class="announce_list">                                           ';
+	html += coupon[0].note;
+	html += '            </div>                                                                '; 
+	html += '        </div>                                                                    '; 
+	html += '    </div>                                                                        '; 
+	html += '</div>                                                                            ';  
+	
 		
 	$("#G082_20").append(html);
 }
@@ -747,42 +743,103 @@ var fnTextConfirm = function() {
 	}
 }
 
+// 파일 업로드 확인
+var fnFileAdd = function() {
+	//로그인 확인
+	if (!cfCheckLogin()) {
+		mcxDialog.alert("로그인 후 참여 가능합니다.");
+		$("#replyText").val('');
+		return false;
+	}
+}
+
 var ajaxReplyList = function () {
 	 $.getJSON('/planning/reply/list?planSq='+plan.planSq, function(result, status) {
-		 console.log(result);
+		 $("#replyList").html('');
 		 if (status == 'success') {
-			 $("#replyList").html('');
 			 var html = '';
 			 html += '<div class="cmt_list_tit">';
 			 html += '	<strong>댓글</strong><span class="cnt">('+result.replyList.length.addComma()+')</span>';
 			 html += '</div>';
-			 html += '<ul class="cmt_list">';
-			 $.each(result.replyList, function (idx, item) {
-				 html += '	<li>';
-				 html += '		<div class="cmt_top">';
-				 html += '			<span class="writer">'+item.maskingCustId+'</span>';
-				 html += '			<span class="date">'+item.entryDt+'</span>';
-				 html += '		</div>';
-				 html += '		<div class="cmt_cont">';
-				 html += '			<div class="img_wrap clear">';
-				 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img01.jpg" alt="썸네일"></span>';
-				 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img02.jpg" alt="썸네일"></span>';
-				 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img03.jpg" alt="썸네일"></span>';
-				 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img04.jpg" alt="썸네일"></span>';
-				 html += '			</div>';
-				 html += '			<p>'+item.entryVal1+'</p>';
-				 if (item.entryCustNo == result.custNo) {
-					 html += '			<button class="btn btn_default btn_del"><span>삭제</span></button>';
-				}
-				 html += '		</div>';
-				 html += '	</li>';
-			 });
-			 html += '</ul>';
+			 if (result.replyList.length>0) {
+				 html += '<ul class="cmt_list">';
+				 $.each(result.replyList, function (idx, item) {
+					 html += '	<li>';
+					 html += '		<div class="cmt_top">';
+					 html += '			<span class="writer">'+item.maskingCustId+'</span>';
+					 html += '			<span class="date">'+item.entryDt+'</span>';
+					 html += '		</div>';
+					 html += '		<div class="cmt_cont">';
+					 html += '			<div class="img_wrap clear">';
+					 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img01.jpg" alt="썸네일"></span>';
+					 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img02.jpg" alt="썸네일"></span>';
+					 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img03.jpg" alt="썸네일"></span>';
+					 html += '				<span class="pics"><img class="picsThumbs" src="/images/pc/thumb/ev_list_img04.jpg" alt="썸네일"></span>';
+					 html += '			</div>';
+					 html += '			<p>'+item.entryVal1+'</p>';
+					 if (item.entryCustNo == result.custNo) {
+						 html += '			<button class="btn btn_default btn_del"><span>삭제</span></button>';
+					}
+					 html += '		</div>';
+					 html += '	</li>';
+				 });
+				 html += '</ul>';
+			}else{
+				html += '<div class="nodata" id="replyNoData"> ';
+				html += '	<div class="txt_box">             ';
+				html += '		<p>                           ';
+				html += '			등록된 댓글이 없습니다.             ';
+				html += '		</p>                          ';
+				html += '	</div>                            ';
+				html += '</div>                                ';
+			}
+			 
 		 }
 		 $("#replyList").append(html);
 	 });
 }
 
+$('#fileAdd').on('change', function() { fnChooseFile(this); });
+
+var fnChooseFile = function(obj) {
+	// multiple 속성이 있으면 files에는 다수의 객체가 할당됨
+	var file = obj.files[0];
+
+	if (!gagajf.isNull(file.name)) {
+		var extension = "\.(jpg|jpeg|png)$";
+		if (!(new RegExp(extension, "i")).test(file.name)) {
+			mcxDialog.alertC('이미지는 [jpg, jpeg, png] 파일만 가능합니다.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$(obj).parent('.imgUpload').finId('.removes').trigger('click');
+				}
+			});
+			return false;
+		}
+	}
+	
+	if (!gagajf.isNull(file.size) && Number(file.size) > 10 * 1000000) {
+		mcxDialog.alertC('이미지는 최대 10MB 이하 파일만 가능합니다.', {
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				$(obj).parent('.imgUpload').find('.removes').trigger('click');
+			}
+		});
+		return false;
+	}
+	
+	// 파일 업로드
+	gagajf.ajaxFileUpload('/common/file/upload?subDir=/reply'
+			, file
+			, function(result) {
+				// 업로드한 파일명 설정
+				$('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
+				$('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
+			}
+	);
+}
+
+
 $(document).ready( function() {
 	ajaxReplyList();
 	//공유 버튼 토글 
@@ -917,6 +974,44 @@ $(document).ready( function() {
 			$('#cmt_cnt').html("500");
 		}
 	});
+	
+	//팝업 - 댓글 이미지 슬라이드
+	$(document).on('click','.cmt_cont .img_wrap .pics',function(e){
+		$("#thumbImgPop .swiper-wrapper").empty();
+
+		var popSlideIndex = $(this).index();
+		contactPopSwiper.slideTo(popSlideIndex);
+		contactPopSwiper.update();
+
+		var contactImglength = $('.cmt_cont .img_wrap .pics').length;
+		var popImgHtml = "";
+		for (i = 1; i <= contactImglength; i++) {
+			var contactImg = $(this).find('img');
+			var contactImgSrc = $('.cmt_cont .img_wrap .pics:nth-child('+i+') img').attr('src');
+			popImgHtml += "<div class='swiper-slide'><div class='pop_img' style='background-image:url("+ contactImgSrc +")'></div></div>";
+		}
+
+		$("#thumbImgPop .swiper-wrapper").append(popImgHtml);
+		$('#thumbImgPop').modal("show");
+		
+		return false;
+	});        
+	
+	 /* SLIDE - 댓글 이미지 팝업 */
+	var contactPopSwiper = new Swiper('.thumb_img_pop .swiper-container', {
+		navigation: {
+			nextEl: '.thumb_img_pop .swiper-button-next',
+			prevEl: '.thumb_img_pop .swiper-button-prev',
+		},
+		pagination: {
+			el: '.thumb_img_pop .swiper-pagination',
+			clickable: true,
+		},
+		observer:true,
+		observeParents: true,
+	});				
+
+
 
 });
 </script>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -130,7 +130,7 @@
 						$.each(result, function(idx, item) {
 						    tag += '  <div class="exhi_item">\n';
 						    tag += '       <div class="exhi_item_img">\n';
-						    tag += '           <a onclick="cfnGoToPlanDetail(\'' + item.planSq + '\')">\n'; 
+						    tag += '           <a href= "javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\')">\n'; 
                             if (item.newYn == 'Y') {
 						    	tag += '				<div class="shape ranker"><span>NEW</span></div>\n';
 						    }

+ 5 - 11
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -40,9 +40,9 @@
                     <div class="list_content">
                         <div class="itemsGrp rowtype"> <!-- itemsGrp rank hot deal --> <!-- rowtype 추가시 가로형태로 출력 -->
                         <th:block th:each="SocialData, SocialStat : ${socialGoods}">
-                            <div class="item_prod" th:class="${SocialData.stockQtySum == 0 ? 'item_prod sold_out' : 'item_prod'}" > 
+                            <div class="item_prod" th:class="${SocialData.stockQtySum == 0 ? 'item_prod sold_out' : 'item_prod'}">
                                 <div class="item_state"> <!-- item_state AD soldout -->
-                                    <button type="button" th:class="${SocialData.wishYn == 'Y'}? 'itemLike active' : 'itemLike'" onclick="cfnPutWishList(this);" th:attr="goodsCd=${SocialData.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''">관심상품 추가</button>
+                                    <button type="button" th:class="${SocialData.likeIt == 'likeit'}? 'itemLike active' : 'itemLike'" onclick="cfnPutWishList(this);" th:attr="goodsCd=${SocialData.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''">관심상품 추가</button>
                                     <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${SocialData.goodsCd}]])">
                                         <div class="itemPic">
                                             <img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + SocialData.sysImgNm}">
@@ -52,18 +52,12 @@
                                         <div class="itemName" th:text="${SocialData.goodsNm}"></div>
                                         <!-- <div class="itemComment">#주문 폭주 상품</div> -->
                                         <p class="itemPrice">
-                                             [[${#numbers.formatInteger(SocialData.currAprice,0,'COMMA')} + 원]]
+                                             [[${#numbers.formatInteger(SocialData.currPrice,0,'COMMA')} + 원]]
                                             <span class="itemPrice_original" th:text="${#numbers.formatInteger(SocialData.listPrice,0,'COMMA')} + '원'"></span>
-											<span class=" itemPercent" th:text="${#numbers.formatDecimal(SocialData.dcArate,1,0)} + '%'"></span>
+											<span class=" itemPercent" th:text="${#numbers.formatDecimal(SocialData.dcRate,1,0)} + '%'"></span>
                                         </p>
-                                       <!--  <div class="itemcolorchip">
-                                            <span class="chip_color35" value="ABM">BEIGE</span>
-                                            <span class="chip_color54" value="BDS">BLACK</span>
-                                            <span class="chip_color40" value="YBR">WHITE</span>
-                                        </div>
-                                         -->
                                         <div class="shopBagBtn">
-                                            <button class="btn btn_defalt" onclick="cfnAddCart()">
+                                            <button class="btn btn_defalt" onclick="AddCart(this)">
                                                 <span>쇼핑백 담기</span>
                                             </button>
                                         </div>