Pārlūkot izejas kodu

페이징, 리뷰수정, 핫딜수정

sowon4187 5 gadi atpakaļ
vecāks
revīzija
091069d27a
20 mainītis faili ar 508 papildinājumiem un 209 dzēšanām
  1. 21 0
      src/main/java/com/style24/front/biz/service/TsfReviewService.java
  2. 16 1
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  3. 1 7
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  4. 1 0
      src/main/java/com/style24/persistence/domain/Review.java
  5. 6 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml
  6. 1 2
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html
  7. 1 3
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewDetailFormMob.html
  8. 9 11
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html
  9. 140 138
      src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html
  10. 1 2
      src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html
  11. 4 6
      src/main/webapp/WEB-INF/views/mob/social/SocialMainFormMob.html
  12. 1 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  13. 3 9
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html
  14. 4 6
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html
  15. 11 14
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  16. 63 0
      src/main/webapp/WEB-INF/views/web/planning/PlanningReplyPhotoFormWeb.html
  17. 1 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html
  18. 1 2
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html
  19. 220 0
      src/main/webapp/ux/plugins/gaga/gaga.singlePaging.js
  20. 3 3
      src/main/webapp/ux/style24_link.js

+ 21 - 0
src/main/java/com/style24/front/biz/service/TsfReviewService.java

@@ -277,6 +277,27 @@ public class TsfReviewService {
 		
 	}
 		
+	/**
+	 * 상품 리뷰 목록
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 5. 18
+	 */
+	public Collection<Review> getMypageReviewList(Review review) {
+		Collection<Review> reviewList = reviewDao.getReviewList(review);
+		
+		// 첨부파일
+		for(Review loopReview : reviewList) {
+			loopReview.setRvAtcSq(review.getRvAtcSq());
+			loopReview.setReviewAttachList(reviewDao.getReviewAttachList(loopReview));
+			loopReview.setGoodsOptionList(reviewDao.getReviewGoodsOptionList(loopReview));
+		}
+		//log.info("getReviewList {}", reviewList);
+		
+		return reviewList;
+	}
+	
 	
 	/**
 	 * 마이페이지 리뷰 업데이트

+ 16 - 1
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -1813,12 +1813,27 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("review", review);
 
-		mav.addObject("reviewList", reviewService.getReviewList(review));
+		mav.addObject("reviewList", reviewService.getMypageReviewList(review));
 
 		mav.setViewName(super.getDeviceViewName("mypage/MypageReviewDetailForm"));
 		return mav;
 	}
 	
+	/**
+	 * 상품상세 -  상품평 상세 레이어
+	 * @return
+	 * @author sowon
+	 * @since 2021. 3. 8
+	 */
+	@PostMapping("/review/detail/list")
+	@ResponseBody
+	public GagaMap getReviewDetailList(@RequestBody Review review) {
+		log.info("getReviewDetailList {}", review);
+		GagaMap result = new GagaMap();
+		result.set("reviewList", reviewService.getMypageReviewList(review));
+		return result;
+	}
+	
 	/**
 	 * 마이페이지 어드민 댓글 확인
 	 *

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

@@ -208,13 +208,7 @@ public class TsfPlanningController extends TsfBaseController {
 
 		// 상품2열 전시
 		plan.setTmplType("G082_51");
-		/*
-		 * if (TsfSession.getFrontGb().equals("M")) { TscPageRequest pageable = new
-		 * TscPageRequest((plan.getPageNo2() > 0 ? plan.getPageNo2() - 1 : 0),
-		 * plan.getPageSize2(), plan.getPageUnit2()); int totalCnt =
-		 * planningService.getPlanGoodsDisplayList(plan).size();
-		 * pageable.setTotalCount(totalCnt); plan.setPageable2(pageable); }
-		 */
+
 		mav.addObject("goods2Info", planningService.getPlanGoodsDisplayList(plan));
 
 		// 상품4열 전시

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

@@ -108,6 +108,7 @@ public class Review extends TscBaseDomain {
 	private int reviewExpireDay;
 	private String kmcKey;
 	private String kufKey;
+	private Integer rvAtcSq;
 	
 	private Integer custPntSq;		// 고객포인트일련번호
 	private int gvPntAmt;			// 지급포인트금액

+ 6 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -287,7 +287,7 @@
 		     , A.KMC_KEY
 		     , A.KUF_KEY
 		     , A.DEL_YN 
-		     , RANK() OVER(ORDER BY a.FILE_GB DESC) AS NUMB
+		     , RANK() OVER(ORDER BY A.FILE_GB DESC) AS NUMB
 		FROM  TB_REVIEW R
 		INNER JOIN TB_REVIEW_ATTACH A ON R.REVIEW_SQ = A.REVIEW_SQ
 		                              AND A.DEL_YN = 'N'
@@ -298,6 +298,10 @@
 		     OR
 		     FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'  AND  NULLIF(KMC_KEY,'') IS NOT NULL
 		    )
+		<if test="rvAtcSq != null and rvAtcSq != ''">
+		ORDER BY FIELD(A.RV_ATC_SQ, #{rvAtcSq})DESC
+		        ,RV_ATC_SQ ASC 
+		</if>
 	</select>
 	
 	<!-- 상품평 상품 옵션 목록 -->
@@ -1205,6 +1209,7 @@
 			 , RA.KUF_KEY
 			 , RA.FILE_GB
 			 , RA.DEL_YN
+			 , RANK() OVER(ORDER BY RA.FILE_GB DESC) AS NUMB
 		FROM TB_REVIEW R LEFT JOIN TB_REVIEW_ATTACH RA ON R.REVIEW_SQ = RA.REVIEW_SQ 
 		WHERE 1=1
 		 AND R.REVIEW_SQ = RA.REVIEW_SQ 

+ 1 - 2
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html

@@ -298,7 +298,6 @@
 let reviewList = [[${reviewInfo}]];
 let reviewStat = [[${reviewStat}]];
 let reviewAttach = [[${alreadyReviewAttach}]];
-let reviewUrl =[[${@environment.getProperty('upload.image.view')}]];
 
 //별점 class="on"
 var $starEls = $('#star_grade button#starBtn');
@@ -550,7 +549,7 @@ $(function(){
 				if(reviewAttach[i].reviewSq == reviewList.reviewSq){
 					if(reviewAttach[i].fileGb == "I"){
 						$("<span class=\"pics\">" +
-								"<img class=\"picsThumbs\" src=\"" + reviewUrl + '/' + reviewAttach[i].sysFileNm + "\" />" +
+								"<img class=\"picsThumbs\" src=\"" + _uploadImageUrl + '/' + reviewAttach[i].sysFileNm + "\" />" +
 								"<input type='hidden' name='orgFileNmArr' value='"+reviewAttach[i].orgFileNm+"'>" +
 								"<input type='hidden' name='sysFileNmArr' value='"+reviewAttach[i].sysFileNm+"'>" +
 								"<br/><span class=\"removes\">Removes image</span>" +

+ 1 - 3
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewDetailFormMob.html

@@ -38,9 +38,7 @@
 								<div class="swiper-slide">
 									<div class="thumb " th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}">
 										<th:block th:if="${reviewAttach.fileGb == 'M'}">
-											<video poster="http://cdn.011st.com/11dims/resize/1999x1999/quality/75/11src/review/10201202/3121412332/2e66698576d64c5c9977a6fe6606008d.jpg" muted="muted" preload="metadata" controls="controls">
-												<source src="http://snsvideo.11st.co.kr/movie/item/www/675/67518524_06_1_C1.mp4" type="video/mp4">
-											</video>
+											<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+reviewAttach.kmcKey +'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" frameborder="0" allowfullscreen></iframe>
 										</th:block>
 										<th:block th:unless="${reviewAttach.fileGb == 'M'}">
 											<img th:src="${imgUrl+'/'+reviewAttach.sysFileNm}" alt="">

+ 9 - 11
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html

@@ -83,15 +83,13 @@
 	<input type="hidden" name="pageSize" value="10" />
 </form>
 <form id="searchForm2" name="searchForm2" th:action="@{'/mypage/already/review/list'}" th:method="post">
-	<input type="hidden" name="pageNo2" value="1" />
-	<input type="hidden" name="pageSize2" value="10" />
+	<input type="hidden" name="pageNo" value="1" />
+	<input type="hidden" name="pageSize" value="10" />
 </form>
 
 <script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 <script th:inline="javascript">
 /*<![CDATA[*/
-	let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
-	let reviewUrl =[[${@environment.getProperty('upload.image.view')}]];
 	let attachList = [[${alreadyReviewAttach}]];
 	// 작성가능한 리뷰 클릭 시 
 	
@@ -105,7 +103,7 @@
 	
 	var fnGetAlreadyCallback = function (result) {
 			if (result.dataList2 != null && result.dataList2.length > 0) {
-				if (result.paging2.pageable2.pageNo == 1){
+				if (result.paging2.pageable.pageNo == 1){
 					$('#reviewList').html('');
 				}	
 				var html = '';
@@ -115,7 +113,7 @@
 					html += '			<div class="goods_detail">';
 					html += '				<a href="javascript:void(0)" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" >';
 					html += '					<div class="thumb_box">';
-					html += '						<img src="' + imageUrl + '/' + item.sysImgNm + '?RS=405" alt="tmp_pdClickother1">';
+					html += '						<img src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '?RS=405" alt="tmp_pdClickother1">';
 					html += '					</div>';
 					html += '					<div class="info_box">';
 					html += '						<div class="od_name">';
@@ -176,9 +174,9 @@
 								html += '						<a>';
 								html += '							<div class="pic">';
 								if (attachList[i].fileGb == 'M') {
-									html += '								<span class="thumb mov" onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');"  style="background-image:url(' + _kollusMediaUrl + '/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
+									html += '								<span class="thumb mov" onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList[i].rvAtcSq+'\');"  style="background-image:url(' + _kollusMediaUrl + '/poster/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
 								}else{
-									html += '								<span class="thumb" onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+									html += '								<span class="thumb" onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList[i].rvAtcSq+'\');" style="background-image:url(' + _uploadImageUrl + '/' + attachList[i].sysFileNm + ');"></span>';
 								}
 								
 								html += '							</div>';
@@ -252,10 +250,10 @@
 				});
 				
 				$('#reviewList').append(html);
-				if (result.paging2.pageable2.totalPage > result.paging2.pageable2.pageNo) {
+				if (result.paging2.pageable.totalPage > result.paging2.pageable.pageNo) {
 					$('#btnMore').parent().hide();
 					$('#btnMore2').parent().show();
-					$('#searchForm2 input[name=pageNo2]').val(result.paging2.pageable2.pageNo + 1);
+					$('#searchForm2 input[name=pageNo]').val(result.paging2.pageable.pageNo + 1);
 				}else{
 					$('#btnMore2').parent().hide();
 					$('#btnMore').parent().hide();
@@ -288,7 +286,7 @@
 				html += '			<div class="goods_detail">';
 				html += '				<a href="javascript:void(0)" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')">';
 				html += '					<div class="thumb_box">';
-				html += '						<img src="' + imageUrl + '/' + item.sysImgNm + '" alt="tmp_pdClickother1">';
+				html += '						<img src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '" alt="tmp_pdClickother1">';
 				html += '					</div>';
 				html += '					<div class="info_box">';
 				html += '						<div class="od_name">';

+ 140 - 138
src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html

@@ -127,11 +127,11 @@
 									</ul>
 								</div> -->
 								<!-- 임시 -->
-								<div class="paging_wrap">
+								<!-- <div class="paging_wrap">
 									<ul class="pageNav" id="paging">
 
 									</ul>
-								</div>
+								</div> -->
 								<!-- 임시 -->
 							</div>
 						</div>
@@ -224,7 +224,7 @@
 	<input type="hidden" name="planSq" th:value="${planInfo.planSq}" />
 	<input type="hidden" name="pageSize" value="10" />
 </form>
-<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script src="/ux/plugins/gaga/gaga.singlePaging.js"></script>
 <script th:inline="javascript">
 let review = [[${reviewInfo}]];
 let coupon = [[${couponInfo}]];
@@ -239,9 +239,6 @@ let replyCount = [[${replyCount}]];
 let replyAttachList = [[${replyAttachList}]];
 let planCornerGoodsList = [[${planCornerGoodsList}]];
 let planCornerList = [[${planCornerList}]];
-let _mall = [[${@environment.getProperty('domain.front')}]];
-let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
-let imgUrl=[[${@environment.getProperty('upload.image.view')}]];
 
 var ajaxReplyList = function () {
 	gagaPaging.init('searchForm', fnSearchCallback, 'paging', 10);
@@ -272,7 +269,7 @@ var fnSearchCallback = function (result) {
 						html += '			<div class="img_wrap clear">';
 						for (var i = 0; i < result.replyAttachList.length; i++) {
 							if(result.replyAttachList[i].planEntrySq == item.planEntrySq){
-								html += '				<div class="pics"><img class="picsThumbs" src="'+ imgUrl +'/'+result.replyAttachList[i].sysFileNm +'" onclick="cfPlanReplyDetail(\''+item.planSq+'\',\''+item.planEntrySq+'\',\''+result.replyAttachList[i].planEntryAtSq+'\');"></div>';
+								html += '				<div class="pics"><img class="picsThumbs" src="'+ _uploadImageUrl +'/'+result.replyAttachList[i].sysFileNm +'" onclick="cfPlanReplyDetail(\''+item.planSq+'\',\''+item.planEntrySq+'\',\''+result.replyAttachList[i].planEntryAtSq+'\');"></div>';
 							}
 						}
 						html += '			</div>';
@@ -282,6 +279,11 @@ var fnSearchCallback = function (result) {
 					html += '	</li>';
 			 });
 				html += '</ul>';
+				html += '<div class="paging_wrap">';
+				html += '	<ul class="pageNav" id="paging">';
+				html += '	</ul>';
+				html += '</div>';
+				
 		 }else{
 			 html += '<div class="nodata"> ';
 				html += '	<div class="txt_box">             ';
@@ -413,37 +415,37 @@ if(planCornerList.length>0){
 	
 	var html = '';
 	$.each(planCornerList, function(idx, item)  {
-		html += '<div class="inner" >';
-		html += '	<div class="dp_listItems_wrap type'+(idx+1)+'">											';
-		html += '		<h2 class="dp_subtitle">'+item.cornerNm+'</h2>';
-		html += '		<div class="list_content">';
-		html += '			<div class="itemsGrp">';
+		html += '<div class="inner" >\n';
+		html += '	<div class="dp_listItems_wrap type'+(idx+1)+'">\n											';
+		html += '		<h2 class="dp_subtitle">'+item.cornerNm+'</h2>\n';
+		html += '		<div class="list_content">\n';
+		html += '			<div class="itemsGrp">\n';
 		$.each(planCornerGoodsList, function(idx2, item2)  {
 			if (item2.cornerNm == item.cornerNm) {
-				html += '				<div class="item_prod">';
-				html += '					<div class="item_state">';
+				html += '				<div class="item_prod">\n';
+				html += '					<div class="item_state">\n';
 				html += '						<button type="button" class="itemLike';
 				if(item2.likeIt == 'likeit'){
 					html += ' likeit';
 				}
 				html += ' "';
-				html += 'onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
-				html += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')"  class="itemLink">';
-				html += '							<div class="itemPic">';
-				html += '								<img class="vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
-				html += '							</div>';
-				html += '							<p class="itemBrand">'+item2.brandGroupNm+'</p>';
-				html += '							<div class="itemName">'+item2.goodsNm+'</div>';
-				html += '							<p class="itemPrice">';
+				html += 'onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>\n';
+				html += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')"  class="itemLink">\n';
+				html += '							<div class="itemPic">\n';
+				html += '								<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'">\n';
+				html += '							</div>\n';
+				html += '							<p class="itemBrand">'+item2.brandGroupNm+'</p>\n';
+				html += '							<div class="itemName">'+item2.goodsNm+'</div>\n';
+				html += '							<p class="itemPrice">\n';
 				if (item2.currPrice != item2.listPrice) {
-					html += '								<span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
+					html += '								<span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>\n';
 				}
 				html += item2.currPrice.addComma();
 				if (item2.dcRate != 0) {
-					html += '								<span class="itemPercent">'+item2.dcRate.addComma()+'%</span>';
+					html += '								<span class="itemPercent">'+item2.dcRate.addComma()+'%</span>\n';
 				}
-				html += '							</p>';
-				html += '							<div class="itemcolorchip">';
+				html += '							</p>\n';
+				html += '							<div class="itemcolorchip">\n';
 				if(!gagajf.isNull(item2.colorChips)){
 					var colorArr = item2.colorChips.split(",");
 					var colorCd = '';
@@ -453,38 +455,38 @@ if(planCornerList.length>0){
 						colorCd = colorInfo[0];
 						rgbColor = colorInfo[1];
 						if(rgbColor=='#FFFFFF'){
-							html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
+							html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>\n';
 						}else{
-							html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+							html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>\n';
 						}
 					}
 				}
-				html += '							</div>';
+				html += '							</div>\n';
 				if(!gagajf.isNull(item2.icon)){
 					var iconArr = item2.icon.split(",");
 					var iconGb = '';
 					var iconNm = '';
-					html += '	<p class="itemBadge">';
+					html += '	<p class="itemBadge">\n';
 					for(let i=0; i<iconArr.length; i++){
 						var iconInfo = iconArr[i].split(":");
 						iconGb = iconInfo[0];
 						iconNm = iconInfo[1];
-						html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+						html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>\n';
 					}
-					html += '	</p>';
+					html += '	</p>\n';
 				}
 				if(item2.goodsTnm != null){
-					html += '							<div class="itemComment">'+item2.goodsTnm+'</div>';
+					html += '							<div class="itemComment">'+item2.goodsTnm+'</div>\n';
 				}
-				html += '						</a>';
-				html += '					</div>';
-				html += '				</div>';
+				html += '						</a>\n';
+				html += '					</div>\n';
+				html += '				</div>\n';
 			}
 		});
-		html += '			</div>';
-		html += '		</div>';
-		html += '	</div>';
-		html += '</div>';
+		html += '			</div>\n';
+		html += '		</div>\n';
+		html += '	</div>\n';
+		html += '</div>\n';
 		
 	});
 	
@@ -524,7 +526,7 @@ if(goods1.length>0){
 					html += '					<div class="item_state">\n';
 					html += '						<a href="#none" class="itemLink">\n';
 					html += '							<div class="itemPic">\n';
-					html += '								<img class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'?RS=780" alt="">\n';
+					html += '								<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'?RS=780" alt="">\n';
 					html += '							</div>\n';
 					html += '							<p class="itemBrand">'+item.brandGroupNm+'</p>\n';
 					html += '							<div class="itemName">'+item.goodsNm+'</div>\n';
@@ -574,29 +576,29 @@ var fnGetCompleteCallback = function (result) {
 	if (result.dataList != null && result.dataList.length > 0) {
 		var html = '';
 		$.each(result.dataList, function(idx, item) {
-			html += '		<div class="item_prod">';
-			html += '			<div class="item_state">';
-			html += '				<a onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">';
-			html += '					<div class="itemPic">';
-			html += '						<img class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
-			html += '					</div>';
-			html += '					<p class="itemBrand">'+item.brandGroupNm+'</p>';
-			html += '					<div class="itemName">'+item.goodsNm+'</div>';
-			html += '					<p class="itemPrice">';
+			html += '		<div class="item_prod">\n';
+			html += '			<div class="item_state">\n';
+			html += '				<a onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">\n';
+			html += '					<div class="itemPic">\n';
+			html += '						<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'">\n';
+			html += '					</div>\n';
+			html += '					<p class="itemBrand">'+item.brandGroupNm+'</p>\n';
+			html += '					<div class="itemName">'+item.goodsNm+'</div>\n';
+			html += '					<p class="itemPrice">\n';
 			if (item.currPrice != item.listPrice) {
-				html += '						<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>';
+				html += '						<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>\n';
 			}
 			html += 						item.currPrice.addComma();
 			if (item.currPrice != item.listPrice) {
-				html += '						<span class="itemPercent">'+Math.floor(item.dcRate)+'%</span>';
+				html += '						<span class="itemPercent">'+Math.floor(item.dcRate)+'%</span>\n';
 			}
-			html += '					</p>';
+			html += '					</p>\n';
 			if(item.goodsTnm != null){
-				html += '					<div class="itemComment">'+item.goodsTnm+'</div>';
+				html += '					<div class="itemComment">'+item.goodsTnm+'</div>\n';
 			}
-			html += '				</a>';
-			html += '			</div>';
-			html += '		</div>';
+			html += '				</a>\n';
+			html += '			</div>\n';
+			html += '		</div>\n';
 	});
 		$('#group_'+result.dataList[0].planContSq).append(html);
 		if (result.paging1.pageable2.totalPage > result.paging1.pageable2.pageNo) {
@@ -628,53 +630,53 @@ if(goods4.length>0){
 	
 	for (var i = 0; i < template.length; i++) {
 		if(template[i].tmplType == 'G082_52' && array[0] == template[i].planContSq && typeof array[0] != 'undefined'){
-			html += '<div class="dp_listItems_cont type2">';
+			html += '<div class="dp_listItems_cont type2">\n';
 			if (template[i].linkUrl != null && template[i].linkUrl != '') { /* 링크 변경 예정 */
 				if (template[i].linkOpenGb == "M") { //본창
-					html += '	<h2 class="dp_subtitle"><a href="'+template[i].linkUrl+'" target="_self">'+template[i].title+' </a></h2>';
+					html += '	<h2 class="dp_subtitle"><a href="'+template[i].linkUrl+'" target="_self">'+template[i].title+' </a></h2>\n';
 				}else{
-					html += '	<h2 class="dp_subtitle"><a href="'+template[i].linkUrl+'" target="_blank">'+template[i].title+' </a></h2>';
+					html += '	<h2 class="dp_subtitle"><a href="'+template[i].linkUrl+'" target="_blank">'+template[i].title+' </a></h2>\n';
 				}
 			}else{
-				html += '	<h2 class="dp_subtitle"><a href="javascript:void(0)">'+template[i].title+' </a></h2>';
+				html += '	<h2 class="dp_subtitle"><a href="javascript:void(0)">'+template[i].title+' </a></h2>\n';
 			}
 			
-			html += '	<div class="swiper-container item02">';
-			html += '		<div class="swiper-wrapper">';
+			html += '	<div class="swiper-container item02">\n';
+			html += '		<div class="swiper-wrapper">\n';
 			$.each(goods4, function(idx, item) {
-				html += '			<div class="swiper-slide">';
-				html += '				<div class="item_prod">';
-				html += '					<div class="item_state">';
-				html += '						<a onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">';
-				html += '							<div class="itemPic">';
-				html += '								<img class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
-				html += '							</div>';
-				html += '							<p class="itemBrand">'+item.brandGroupNm+'</p>';
-				html += '							<div class="itemName">'+item.goodsNm+'</div>';
-				html += '							<p class="itemPrice">';
+				html += '			<div class="swiper-slide">\n';
+				html += '				<div class="item_prod">\n';
+				html += '					<div class="item_state">\n';
+				html += '						<a onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">\n';
+				html += '							<div class="itemPic">\n';
+				html += '								<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'">\n';
+				html += '							</div>\n';
+				html += '							<p class="itemBrand">'+item.brandGroupNm+'</p>\n';
+				html += '							<div class="itemName">'+item.goodsNm+'</div>\n';
+				html += '							<p class="itemPrice">\n';
 				if (item.currPrice != item.listPrice) {
-					html += '								<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>';
+					html += '								<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>\n';
 				}
 				
 				html += 								item.currPrice.addComma();
 				if (item.currPrice != item.listPrice) {
-					html += '								<span class="itemPercent">'+Math.floor(item.dcRate)+'%</span>';
+					html += '								<span class="itemPercent">'+Math.floor(item.dcRate)+'%</span>\n';
 				}
-				html += '							</p>';
+				html += '							</p>\n';
 				if(item.goodsTnm != null){
-					html += '							<div class="itemComment">'+item.goodsTnm+'</div>';
+					html += '							<div class="itemComment">'+item.goodsTnm+'</div>\n';
 				}
 				
-				html += '						</a>';
-				html += '					</div>';
-				html += '				</div>';
-				html += '			</div>';
+				html += '						</a>\n';
+				html += '					</div>\n';
+				html += '				</div>\n';
+				html += '			</div>\n';
 			})
 			
-			html += '		</div>';
-			html += '		<div class="swiper-pagination"></div>';
-			html += '	</div>';
-			html += '</div>';
+			html += '		</div>\n';
+			html += '		<div class="swiper-pagination"></div>\n';
+			html += '	</div>\n';
+			html += '</div>\n';
 			$("#G082_52" +array[0]).append(html);
 		}
 		if($("#G082_52" +template[i].planContSq).length){
@@ -706,12 +708,12 @@ if(review.length>0){
 		html += '										<div class="pic">\n';
 		if(item.reviewSysImg!= null){
 			if (item.fileGb == 'M') { 
-				html += '											<span class="thumb mov" style="background-image:url('+ imgUrl+item.reviewSysImg +');"></span>\n';
+				html += '											<span class="thumb mov" style="background-image:url('+ _uploadImageUrl+item.reviewSysImg +');"></span>\n';
 			}else{
-				html += '											<span class="thumb" style="background-image:url('+ imgUrl +item.reviewSysImg +');"></span>\n';
+				html += '											<span class="thumb" style="background-image:url('+ _uploadImageUrl +item.reviewSysImg +');"></span>\n';
 			}
 		}else{
-			html += '											<span class="thumb" style="background-image:url('+ goodsView+'/'+item.sysImgNm +');"></span>\n';
+			html += '											<span class="thumb" style="background-image:url('+ _uploadGoodsUrl+'/'+item.sysImgNm +');"></span>\n';
 		}
 		html += '										</div>\n';
 		html += '										<div class="info">\n';
@@ -741,7 +743,7 @@ if(review.length>0){
 		html += '									<div class="item_state">\n';
 		html += '										<a href="javascript:void(0)" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">\n';
 		html += '											<div class="itemPic">\n';
-		html += '												<img alt="" class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">\n';
+		html += '												<img alt="" class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'">\n';
 		html += '											</div>\n';
 		html += '											<div class="itemName">'+item.goodsNm+'</div>\n';
 		html += '											<p class="itemPrice">\n';
@@ -768,25 +770,25 @@ if(review.length>0){
 if(image.length>0){
 	var html = '';
 	
-	html += '<div class="promotion_visual type2">';
-	html += '	<div class="big_banner_slide">';
-	html += '		<div class="swiper-container">';
-	html += '			<div class="swiper-wrapper">';
+	html += '<div class="promotion_visual type2">\n';
+	html += '	<div class="big_banner_slide">\n';
+	html += '		<div class="swiper-container">\n';
+	html += '			<div class="swiper-wrapper">\n';
 	$.each(image, function(idx, item)  {
-		html += '				<div class="swiper-slide">';
+		html += '				<div class="swiper-slide">\n';
 		if (item.linkOpenGb == 'M') {
-			html += '					<a href="'+item.linkUrl+'" target="_self"><img src="'+ imgUrl + item.itemVal +'?RS=1206" ></a>';
+			html += '					<a href="'+item.linkUrl+'" target="_self"><img src="'+ _uploadImageUrl + item.itemVal +'?RS=1206" ></a>\n';
 		}else{
-			html += '					<a href="'+item.linkUrl+'" target="_blank"><img src="'+ imgUrl + item.itemVal +'?RS=1206" ></a>';
+			html += '					<a href="'+item.linkUrl+'" target="_blank"><img src="'+ _uploadImageUrl + item.itemVal +'?RS=1206" ></a>\n';
 		}
-		html += '				</div>';
+		html += '				</div>\n';
 	});
 	
-	html += '			</div>';
-	html += '			<div class="swiper-pagination"></div>';
-	html += '		</div>';
-	html += '	</div>';
-	html += '</div>';
+	html += '			</div>\n';
+	html += '			<div class="swiper-pagination"></div>\n';
+	html += '		</div>\n';
+	html += '	</div>\n';
+	html += '</div>\n';
 	
 	$("#G082_30").append(html);
 }
@@ -794,52 +796,52 @@ if(image.length>0){
 if(coupon.length>0){
 	var html = '';
 	 
-	html += '<div class="dp_coupon">';
-	html += '	<h2 class="dp_subtitle">'+coupon[0].title+'</h2>';
-	html += '	<div class="coupon_list">';
-	html += '		<ul class="clear">';
+	html += '<div class="dp_coupon">\n';
+	html += '	<h2 class="dp_subtitle">'+coupon[0].title+'</h2>\n';
+	html += '	<div class="coupon_list">\n';
+	html += '		<ul class="clear">\n';
 	$.each(coupon, function(idx, item) {
 		if (item.couponStat == '쿠폰받기') {
-			html += '			<li> ';
+			html += '			<li>\n';
 		}else{
-			html += '			<li class="off"> ';
+			html += '			<li class="off">\n';
 		}
 		
-		html += '				<div class="cp_top">';
-		html += '					<div class="cp_detail">';
-		html += '						<p class="tit">'+item.cpnNm+'</p>';
-		html += '						<strong class="sale_t won_t"><span>'+item.dcVal.addComma()+'</span>'+item.dcWay+'</strong>';
-		html += '						<p class="cp_cont">'+item.useCondition+'</p>';
-		html += '						<span class="cp_cnt">'+item.issueCondition+'</span>';
-		html += '					</div>';
-		html += '					<span class="cp_shape"></span>';
-		html += '				</div>';
-		html += '				<div class="cp_date" id="dp_coupon1">';
+		html += '				<div class="cp_top">\n';
+		html += '					<div class="cp_detail">\n';
+		html += '						<p class="tit">'+item.cpnNm+'</p>\n';
+		html += '						<strong class="sale_t won_t"><span>'+item.dcVal.addComma()+'</span>'+item.dcWay+'</strong>\n';
+		html += '						<p class="cp_cont">'+item.useCondition+'</p>\n';
+		html += '						<span class="cp_cnt">'+item.issueCondition+'</span>\n';
+		html += '					</div>\n';
+		html += '					<span class="cp_shape"></span>\n';
+		html += '				</div>\n';
+		html += '				<div class="cp_date" id="dp_coupon1">\n';
 		if (item.couponStat == '쿠폰받기') {
-			html += '					<button type="button" id="coupon_'+item.cpnId+'" onclick="fnPlanCouponDown('+item.cpnId+')"><span>쿠폰 받기</span></button>';
+			html += '					<button type="button" id="coupon_'+item.cpnId+'" onclick="fnPlanCouponDown('+item.cpnId+')"><span>쿠폰 받기</span></button>\n';
 		}else{
-			html += '					<button type="button" id="coupon_'+item.cpnId+'" onclick="fnPlanCouponDown('+item.cpnId+')"><span>받기 완료</span></button>';
+			html += '					<button type="button" id="coupon_'+item.cpnId+'" onclick="fnPlanCouponDown('+item.cpnId+')"><span>받기 완료</span></button>\n';
 		}
-		html += '				</div>';
-		html += '				<div class="cp_info">';
-		html += '					<button type="button" id="modalBasic" class="btn_couponInfo_pop" onclick="usePlanInfoCoupon('+item.cpnId+')"><span>사용안내</span></button>';
-		html += '				</div>';
-		html += '			</li>';
+		html += '				</div>\n';
+		html += '				<div class="cp_info">\n';
+		html += '					<button type="button" id="modalBasic" class="btn_couponInfo_pop" onclick="usePlanInfoCoupon('+item.cpnId+')"><span>사용안내</span></button>\n';
+		html += '				</div>\n';
+		html += '			</li>\n';
 	});
-	html += '		</ul>';
-	html += '	</div>';
-	html += '	<div class="announce_txt">';
-	html += '		<div class="note_txt">';
-	html += '			<img src="/images/mo/ico_content_find.png" alt="유의사항">';
-	html += '			<p>유의사항</p>';
-	html += '		</div>';
-	html += '		<div class="announce_list">';
-	html += '			<ul>';
+	html += '		</ul>\n';
+	html += '	</div>\n';
+	html += '	<div class="announce_txt">\n';
+	html += '		<div class="note_txt">\n';
+	html += '			<img src="/images/mo/ico_content_find.png" alt="유의사항">\n';
+	html += '			<p>유의사항</p>\n';
+	html += '		</div>\n';
+	html += '		<div class="announce_list">\n';
+	html += '			<ul>\n';
 	html += coupon[0].note;
-	html += '			</ul>';
-	html += '		</div>';
-	html += '	</div>';
-	html += '</div>';
+	html += '			</ul>\n';
+	html += '		</div>\n';
+	html += '	</div>\n';
+	html += '</div>\n';
 		
 	$("#G082_20").append(html);
 }

+ 1 - 2
src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html

@@ -167,7 +167,6 @@
 <script th:inline="javascript">
 let custAddr = [[${custAddr}]];
 let customerInfo = [[${customerInfo}]];
-let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
 let planCornerList = [[${planCornerList}]];
 let planCornerGoodsList = [[${planCornerGoodsList}]];
 if(planCornerList.length>0){
@@ -189,7 +188,7 @@ if(planCornerList.length>0){
 			
 			html += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
 			html += '							<div class="itemPic">';
-			html += '								<img class="vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+			html += '								<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'">';
 			html += '							</div>';
 			html += '							<p class="itemBrand">'+item2.brandGroupNm+'</p>';
 			html += '							<div class="itemName">'+item2.goodsNm+'</div>';

+ 4 - 6
src/main/webapp/WEB-INF/views/mob/social/SocialMainFormMob.html

@@ -61,10 +61,8 @@
 </form>
 <script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
 <script src="/ux/plugins/jquery/jquery.history.min.js"></script>
-<!-- <script src="/ux/plugins/gaga/gaga.infinite.scrollLayer.js"></script> -->
 <script th:inline="javascript">
 let socialInfo = [[${socialInfo}]];
-let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
 
 
 var socialAddCart = function (obj) {
@@ -93,12 +91,12 @@ var socialAddCart = function (obj) {
 let fnGetSocialList = function(result) {
 	var html = '';
 	$.each(result.dataList, function(idx, item) {
-		html += '<div class="item_prod">';
 		if (item.stockQtySum == 0) {
-			html += '    <div class="item_state sold_out"> ';
+		html += '<div class="item_prod sold_out">';
 		}else{
-			html += '    <div class="item_state"> ';
+			html += '<div class="item_prod">';
 		}
+		html += '    <div class="item_state"> ';
 		if (item.likeIt == 'likeit') {
 			html += '        <button type="button" class="itemLike likeit " onclick="cfnMoPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
 		}else{
@@ -107,7 +105,7 @@ let fnGetSocialList = function(result) {
 		html += '		<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+item.goodsCd+'\')" >';
 		html += '			<div class="shape ranker"><span>특가</span></div>';
 		html += '			<div class="itemPic">';
-		html += '				<img class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
+		html += '				<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'">';
 		html += '			</div>';
 		html += '			<p class="itemBrand">'+item.brandGroupNm+'</p>';
 		html += '			<div class="itemName">'+item.goodsNm+'</div>';

+ 1 - 2
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -382,7 +382,6 @@
 let reviewList = [[${reviewInfo}]];
 let reviewStat = [[${reviewStat}]];
 let reviewAttach = [[${alreadyReviewAttach}]];
-let reviewUrl =[[${@environment.getProperty('upload.image.view')}]];
 
 // 별점 class="on"
 var $starEls = $('#star button#starBtn');
@@ -698,7 +697,7 @@ $(document).ready(function() {
 				if(reviewAttach[i].reviewSq == reviewList.reviewSq){
 					if(reviewAttach[i].fileGb == "I"){
 						$("<span class=\"pics\">" +
-								"<img class=\"picsThumbs\" src=\"" + reviewUrl + '/' + reviewAttach[i].sysFileNm + "\" />" +
+								"<img class=\"picsThumbs\" src=\"" + _uploadImageUrl + '/' + reviewAttach[i].sysFileNm + "\" />" +
 								"<input type='hidden' name='orgFileNmArr' value='"+reviewAttach[i].orgFileNm+"'>" +
 								"<input type='hidden' name='sysFileNmArr' value='"+reviewAttach[i].sysFileNm+"'>" +
 								"<br/><span class=\"removes\">Removes image</span>" +

+ 3 - 9
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html

@@ -28,6 +28,7 @@
 <!-- <input type="hidden" name="bestYn" th:value="${review.bestYn}" /> -->
 <input type="hidden" name="photoYn" th:value="${review.photoYn}" />
 <input type="hidden" name="reviewSq" th:value="${review.reviewSq}" />
+<input type="hidden" name="rvAtcSq" th:value="${review.rvAtcSq}" />
 </form>
 <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_review_best')" class="close-modal">Close</a> 
 <script th:inline="javascript">
@@ -40,8 +41,8 @@
 		params.reviewSq = $('#reviewDetailForm input[name=reviewSq]').val();
 		//params.bestYn =$('#reviewDetailForm input[name=bestYn]').val();
 		params.photoYn = $('#reviewDetailForm input[name=photoYn]').val();
-		
-		gagajf.ajaxSubmit("/goods/review/detail/list", "json", fnReviewDetailCallback, params);
+		params.rvAtcSq = $('#reviewDetailForm input[name=rvAtcSq]').val();
+		gagajf.ajaxSubmit("/mypage/review/detail/list", "json", fnReviewDetailCallback, params);
 	}
 
 	var fnReviewDetailCallback = function(result) {
@@ -233,13 +234,6 @@
 		
 	}
 	
-	// 다른 상품평 보기
-	var fnReviewNext = function(reviewSq){
-		if (gagajf.isNull(reviewSq)) return false;
-		
-		$('#reviewDetailForm input[name=reviewSq]').val(reviewSq);
-		fnReviewDetail();
-	}
 	
 	$(document).ready( function() {
 		

+ 4 - 6
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html

@@ -109,8 +109,6 @@
 
 	<script src="/ux/plugins/gaga/gaga.paging.js"></script>
 	<script th:inline="javascript">
-	let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
-	let reviewUrl =[[${@environment.getProperty('upload.image.view')}]];
 	let attachList = [[${alreadyReviewAttach}]];
 	// 작성가능한 리뷰 클릭 시 
 	$("#completeReview").click(function() {
@@ -152,7 +150,7 @@
 				html += '					<div class="gd_item">	                                                                              ';
 				html += '						<a href="javascript:void(0)" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')">                                                                                       ';
 				html += '							<span class="thumb">                                                                          ';
-				html += '								<img src="' + imageUrl + '/' + item.sysImgNm + '?RS=550"  width="100%" alt="">  ';
+				html += '								<img src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '?RS=550"  width="100%" alt="">  ';
 				html += '							</span>                                                                                       ';
 				html += '							<p>                                                                                           ';
 				html += '								<span class="buy_date"><em>'+item.payDt+'</em>&nbsp;구매</span>             ';
@@ -215,7 +213,7 @@
 				html+='						<div class="gd_item">	';
 				html+='							<a href="javascript:void(0)" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" >';
 				html+='								<span class="thumb">';
-				html+='									<img src="' + imageUrl + '/' + item.sysImgNm + '?RS=550" width="100%" alt="">';
+				html+='									<img src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '?RS=550" width="100%" alt="">';
 				html+='								</span>';
 				html+='								<p>';
 				html+='									<span class="buy_date"><em>'+item.payDt+'</em>&nbsp;구매</span>';
@@ -318,9 +316,9 @@
 						html+='										<a>';
 						html+='											<div class="pic">';
 						if (attachList[i].fileGb == 'M') {
-							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/poster/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList[i].rvAtcSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/poster/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
 						}else{
-							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList[i].rvAtcSq+'\');" class="thumb" style="background-image:url(' + _uploadImageUrl + '/' + attachList[i].sysFileNm + ');"></span>';
 						}
 						html+='											</div>';
 						html+='										</a>';

+ 11 - 14
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -253,9 +253,6 @@ let replyCount = [[${replyCount}]];
 let replyAttachList = [[${replyAttachList}]];
 let planCornerGoodsList = [[${planCornerGoodsList}]];
 let planCornerList = [[${planCornerList}]];
-let _mall = [[${@environment.getProperty('domain.front')}]];
-let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
-let imgUrl=[[${@environment.getProperty('upload.image.view')}]];
 if(planCornerList.length>0){
 	var html = '';
 	
@@ -302,7 +299,7 @@ if(planCornerList.length>0){
 				
 				html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
 				html += '                             <div class="itemPic">';
-				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'">';
 				html += '                             </div>';
 				html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>';
 				html += '                             <div class="itemName">'+item2.goodsNm+'</div>';
@@ -383,18 +380,18 @@ if(review.length>0){
 		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 += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'N\',\''+item.reviewSq+'\');">';
 		}
 		
 		html += '					<div class="pic">';
 		if(item.reviewSysImg!= null){
 			if (item.fileGb == 'M') { 
-				html += '								<span class="thumb mov" style="background-image: url('+ imgUrl+item.reviewSysImg +');"></span>';	
+				html += '								<span class="thumb mov" style="background-image: url('+ _uploadImageUrl+item.reviewSysImg +');"></span>';	
 			}else{
-				html += '								<span class="thumb" style="background-image: url('+ imgUrl +item.reviewSysImg +');"></span>';			
+				html += '								<span class="thumb" style="background-image: url('+ _uploadImageUrl +item.reviewSysImg +');"></span>';			
 			}
 		}else{
-			html += '								<span class="thumb" style="background-image: url('+ goodsView+'/'+item.sysImgNm +');"></span>';	
+			html += '								<span class="thumb" style="background-image: url('+ _uploadGoodsUrl+'/'+item.sysImgNm +');"></span>';	
 		}
 		
 		html += '                   </div>';
@@ -420,7 +417,7 @@ if(review.length>0){
 		html += '                  <div class="item_state">';
 		html += '                      <a href="javascript:void(0)" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">';
 		html += '                          <div class="itemPic">';
-		html += '                            	<img alt="" class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
+		html += '                            	<img alt="" class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'">';
 		html += '                          </div>';
 		html += '                          <div class="itemName">'+item.goodsNm+'</div>';
 		html += '                          <p class="itemPrice">'+item.currPrice.addComma()+'</p>';
@@ -447,9 +444,9 @@ if(image.length>0){
 	for (var i = 0; i < image.length; i++) {
 		html += '                	<div class="swiper-slide">';
 		if (image[i].linkOpenGb == 'M') {
-			html += '                    	<a href="'+image[i].linkUrl+'" target="_self">><img alt="" src="'+ imgUrl + image[i].itemVal +'"></a>';
+			html += '                    	<a href="'+image[i].linkUrl+'" target="_self">><img alt="" src="'+ _uploadImageUrl + image[i].itemVal +'"></a>';
 		}else{
-			html += '                    	<a href="'+image[i].linkUrl+'" target="_blank">><img alt="" src="'+ imgUrl + image[i].itemVal +'"></a>';
+			html += '                    	<a href="'+image[i].linkUrl+'" target="_blank">><img alt="" src="'+ _uploadImageUrl + image[i].itemVal +'"></a>';
 		}
 		
 		html += '                	</div>';
@@ -503,7 +500,7 @@ if(goods1.length>0){
 				html += '            <li>';
 				html += '                <div class="dp_listItems">';
 				html += '                    <div class="dp_listItems_img">';
-				html += '                        <img src="'+ goodsView +'/'+item.sysImgNm +'" alt="">';
+				html += '                        <img src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'" alt="">';
 				html += '                    </div>';
 				html += '                    <div class="dp_listItems_info">';
 				html += '                        <div class="dp_listItems_brand">'+item.brandGroupNm+'</div>';
@@ -648,7 +645,7 @@ if(goods4.length>0){
 					html += '                        <div class="item_state">';
 					html += '                            <a onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')" class="itemLink">';
 					html += '                                <div class="itemPic">';
-					html += '                                    <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
+					html += '                                    <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'">';
 					html += '                                </div>';
 					html += '                                <p class="itemBrand">'+item.brandGroupNm+'</p>';
 					html += '                                <div class="itemName">'+item.goodsNm+'</div>';
@@ -838,7 +835,7 @@ var fnSearchCallback = function (result) {
 				 if (result.replyAttachList.length>0) {
 					for (var i = 0; i < result.replyAttachList.length; i++) {
 						if(result.replyAttachList[i].planEntrySq == item.planEntrySq){
-							html += '				<span class="pics"><img class="picsThumbs" src="'+ imgUrl +'/'+result.replyAttachList[i].sysFileNm +'"></span>';
+							html += '				<span class="pics"><img class="picsThumbs" src="'+ _uploadImageUrl +'/'+result.replyAttachList[i].sysFileNm +'"></span>';
 						}
 					}	
 				 }

+ 63 - 0
src/main/webapp/WEB-INF/views/web/planning/PlanningReplyPhotoFormWeb.html

@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsReviewPhotoFormMob.html
+ * @desc	: 상품평 - 포토/영상 리스트 팝업
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.008   eskim		최초 작성
+ *******************************************************************************
+ -->
+<!-- 댓글 이미지 팝업 -->
+<!-- <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" th:with="frontUrl=${@environment.getProperty('domain.front')}, goodsView=${@environment.getProperty('upload.goods.view')}, planView=${@environment.getProperty('upload.image.view')}">
+				<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">
+								<!-- 이미지 슬라이드 영역 -->
+							<th:block th:each="a, stat : ${replyAttachList}">
+								<div class="swiper-slide">
+									<div class="pop_img" th:style="${'background-image:url('+planView+'/'+a.sysFileNm+');'}">
+									</div>
+								</div>
+							</th:block>
+							</div>
+						</div>
+						<div class="swiper-button-next"></div>
+						<div class="swiper-button-prev"></div>						
+						<div class="swiper-pagination"></div>
+                    </div>
+                </div>
+            </div>
+        </div>        
+<!--     </div> -->
+	<!-- //댓글 이미지 팝업 -->	
+<a href="javascript:void(0);" rel="modal:close"	onclick="cfCloseLayer('layer_review_photo')" class="close-modal">Close</a>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	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>
+</html>

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

@@ -148,7 +148,6 @@
 /*<![CDATA[*/
 let custAddr = [[${custAddr}]];
 let customerInfo = [[${customerInfo}]];
-let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
 let planCornerList = [[${planCornerList}]];
 let planCornerGoodsList = [[${planCornerGoodsList}]];
 // 로그인 확인
@@ -197,7 +196,7 @@ if(planCornerList.length>0){
 				
 				html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
 				html += '                             <div class="itemPic">';
-				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'">';
 				html += '                             </div>';
 				html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>';
 				html += '                             <div class="itemName">'+item2.goodsNm+'</div>';

+ 1 - 2
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -77,7 +77,6 @@
 <script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 <script th:inline="javascript">
 let socialInfo = [[${socialInfo}]];
-let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
 
 
 var socialAddCart = function (obj) {
@@ -122,7 +121,7 @@ let fnGetSocialList = function(result) {
 		
 		html += '        <a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+item.goodsCd+'\')" >';
 		html += '            <div class="itemPic">';
-		html += '                <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'?RS=550">';
+		html += '                <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item.sysImgNm +'?RS=550">';
 		html += '            </div>';
 		html += '            <div class="itemSpecialPrice"><span>특가</span></div>';
 		html += '            <p class="itemBrand">'+item.brandGroupNm+'</p>';

+ 220 - 0
src/main/webapp/ux/plugins/gaga/gaga.singlePaging.js

@@ -0,0 +1,220 @@
+/*
+ * Pagination Common Java Script written by gagamel.
+ *
+ * Copyright (c) 2019 gagamel
+ * Dual licensed under GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2019-07-21 $
+ * 
+ * 사용 예)
+ * 		// HTML 태그는 다음과 같은 구조로 되어 있어야 한다.
+ * 		<div class="tablePaging" id="pagination">
+ * 			<li class="prev"><a href="#"><span class="sr-only">이전</span></a></li>
+ *			<li class="active">01</li>
+ *			<li>/</li>
+ *			<li>10</li>
+ *			<li class="next"><a href="#"><span class="sr-only">다음</span></a></li>
+ * 			...
+ * 		</div>
+ * 
+ * 		// Import할 자바스크립트 파일
+ * 		<script type="text/javascript" src="/ux/plugins/gaga/gaga.singlePaging"></script>
+ * 
+ * 		<script type="text/javascript">
+ * 			// Initialize a pagination
+ * 			gagaPaging.init('searchForm', fnSearchGoodsQnaCallback, 'pagination');
+ * 			
+ *			// Load data
+ * 			gagaPaging.load($('#searchForm input[name=pageNo]').val(), $('#searchForm select[name=pageSize]').val());
+ * 
+ * 			var fnSearchGoodsQnaCallback = function(result) {
+ * 				// Handle Data
+ * 				...
+ * 				
+ * 				// Create pagination
+ * 				gagaPaging.createPagination(result.goodsAsk.pageable);
+ * 			}
+ *		</script>
+ */
+
+var gagaPaging = {
+
+	oFormId : '',
+	oCallbackFn : '',
+	oPaginationId : '',
+	nPageSize : 50,
+	nPageUnit : 10,
+	
+	/**
+	 * Initialize a pagination
+	 * @param formId - Form ID. 검색조건 폼 ID
+	 * @param callbackFn - Callback function. 데이터 조회 후 처리하는 콜백함수
+	 * @param paginationId - Pagination ID. 페이징을 구성하는 div 태그 ID
+	 * @param pageSize - 조회할 데이터 row수. 옵션
+	 * @param pageUnit - 그룹핑 페이지 단위. 옵션
+	 * 사용 예)
+	 * 		// Initialize a pagination
+	 * 		gagaPaging.init('searchForm', fnSearchGoodsQnaCallback, 'pagination');
+	 * 		or
+	 * 		gagaPaging.init('searchForm', fnSearchGoodsQnaCallback, 'pagination', 50);
+	 * 		or
+	 * 		gagaPaging.init('searchForm', fnSearchGoodsQnaCallback, 'pagination', 50, 10);
+	 */
+	init : function(formId, callbackFn, paginationId, pageSize, pageUnit) {
+		oFormId = formId;
+		oCallbackFn = callbackFn;
+		oPaginationId = paginationId;
+		if (typeof(pageSize) != 'undefined') nPageSize = pageSize;
+		if (typeof(pageUnit) != 'undefined') nPageUnit = pageUnit;
+	},
+	
+	/**
+	 * Create a pagination
+	 * @param pageable - page 정보
+	 */
+	createPagination : function(pageable) {
+		// Generate pagination
+		var html;
+		if (gagajf.isNull(pageable.generatedPagination)) {
+			html = gagaPaging.generatedPagination(pageable);
+		} else {
+			html = pageable.generatedPagination;
+		}
+		$('#' + oPaginationId).html(html);
+		// Bind event
+		gagaPaging.bind();
+	},
+	
+	/**
+	 * Bind the pagination's event
+	 * Paging 처리 시 다음과 같이 지정
+	 * 사용 예)
+	 * 		// HTML 태그는 다음과 같은 구조로 되어 있어야 한다.
+	 * 		<div class="tablePaging" id="pagination">
+	 * 			<a href="#pageNo=1">1</a>
+	 * 			<a href="#pageNo=2">2</a>
+	 * 			...
+	 * 		</div>
+	 */
+	bind : function() {
+		$('#' + oPaginationId + ' a').on('click', function(e) {
+			var params = $(this).attr('href');
+			params = params.replace(/^.*#/, '');
+			
+			var pageNo = 1;
+			
+			if (!gagajf.isNull(params)) {
+				pageNo = params.split("=")[1];
+			}
+			
+			gagaPaging.load(pageNo);
+			
+			return false;
+		});
+	},
+	
+	/**
+	 * Load data and call a callback function
+	 * JSON 형태로 보내고 받는 후 콜백함수에서 데이터를 처리한다.
+	 * @param pageNo - 조회할 페이지번호
+	 */
+	load : function(pageNo) {
+		$('#' + oFormId + ' input[name=pageNo]').val(pageNo);
+		$('#' + oFormId + ' input[name=pageSize]').val(nPageSize);
+		
+		// comma(,) 제거
+		gagajf.removeCommaAtNumberFormattedInput('#' + oFormId);
+		var jsonData = JSON.stringify($('#' + oFormId).serializeObject());
+		
+		$.ajax({
+			type : 'POST',
+			url : $('#' + oFormId).prop('action'),
+			data : jsonData,
+			dataType : 'JSON',
+			beforeSend : function(xhr, settings) {
+				// dataType: "json"일 때
+				xhr.setRequestHeader('Accept', 'application/json');
+				xhr.setRequestHeader('Content-Type', 'application/json');
+				
+				// Button disabled & progressBar creation
+				//gagajf.showProgressbar(true);
+			},
+			complete : function() {
+				// Button abled & progressBar remove
+				//gagajf.showProgressbar(false);
+			},
+			success : function(result) {
+				try {
+					if (!gagajf.isNull(result.error.message)) {
+						mcxDialog.alert(result.error.message);
+						return;
+					}
+				} catch(e) {
+					// Do nothing
+				}
+				
+				if (typeof(oCallbackFn) == 'function') {
+					oCallbackFn.call(this, result);
+				}
+			},
+			error : function(result) {
+				mcxDialog.alert('오류로 인해 처리되지 않았습니다.');
+			}
+		});
+	},
+	
+	generatedPagination : function (pageable) {
+		let pageNo = pageable.pageNo;
+		let pageSize = pageable.pageSize;
+		let pageUnit = pageable.pageUnit;
+		let totalCount = pageable.totalCount;
+		let firstCount = (getPageGroup() - 1) * pageable.pageUnit + 1;
+		let loopCount = firstCount + pageUnit;
+		
+		
+		if (loopCount > getTotalPage()) {
+			loopCount = Number(getTotalPage() + 1);
+		}
+		
+		let pageTag = '';
+		if (!(firstCount == 1 && loopCount == 1)) {
+			
+			if (getPageGroup() == 1) {
+				if (pageNo == 1) {
+					pageTag += '<li class="prev disabled"><a href="#"><span class="sr-only">이전</span></a></li>\n';
+				} else {
+					pageTag += '<li class="prev"><a href="#pageNo='+ (pageNo-1) +'"><span class="sr-only">이전</span></a></li>\n';
+				}
+			} else {
+				pageTag += '<li class="prev"><a href="#pageNo='+ (pageNo-1) +'"><span class="sr-only">이전</span></a></li>\n';
+			}
+			
+			pageTag += '<li class="active">' + pageNo + '</li>\n';
+			pageTag += '<li>/</li>\n';
+			pageTag += '<li>' + getTotalPage() + '</li>\n';
+			
+			if(pageNo == Number(getTotalPage())) {
+				pageTag += '<li class="next disabled"><a href="#pageNo=' + getTotalPage() + '" alt="다음페이지"><span class="sr-only">다음</span></a></li>\n';
+			}else {
+				pageTag += '<li class="next"><a href="#pageNo='+ (pageNo+1) +'" alt="다음페이지"><span class="sr-only">다음</span></a></li>\n';
+			}
+			
+		}
+
+		function getPageGroup() {
+			return parseInt((pageNo-1) / pageUnit + 1 );
+		}
+
+		function getTotalPage() {
+			let totalPage = parseInt(totalCount / pageSize);
+			if (totalCount % pageSize > 0) {
+				totalPage++;
+			}
+			return totalPage;
+		}
+
+		return pageTag;
+	}
+
+}
+

+ 3 - 3
src/main/webapp/ux/style24_link.js

@@ -1293,10 +1293,10 @@ var cfnGoToMypageReview = function (ordNo,ordDtlNo,goodsCd) {
 * @access : public
 * @desc   : 상품평- 베스트 리뷰 보기
 * <pre>
-*		cfMypageReviewDetail(goodsCd, photoYn, reviewSq, attachSq);
+*		cfMypageReviewDetail(goodsCd, photoYn, reviewSq, rvAtcSq);
 * </pre>
 */
-function cfMypageReviewDetail(goodsCd, photoYn, reviewSq, attachSq) {
+function cfMypageReviewDetail(goodsCd, photoYn, reviewSq, rvAtcSq) {
 	var str = '<div class="modal fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="pdBestReviewLabel" aria-hidden="true"></div>';
 	if ("P" != _frontGb){
 		str = '<div class="modal pop_full fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
@@ -1309,7 +1309,7 @@ function cfMypageReviewDetail(goodsCd, photoYn, reviewSq, attachSq) {
 	var params = '?goodsCd=' + goodsCd;
 	params += '&reviewSq=' + reviewSq;
 	params += '&photoYn=' + photoYn;
-	if (typeof (attachSq) != 'undefined') params += "&attachSq=" + attachSq;
+	if (typeof (rvAtcSq) != 'undefined') params += "&rvAtcSq=" + rvAtcSq;
 	
 	cfnOpenLayer(_PAGE_MYPAGE_REVIEW_DETAIL_LAYER+params, 'layer_review_best');
 }