Преглед на файлове

pc 상품상세 리뷰 상세보시 수정

eskim преди 5 години
родител
ревизия
48342a1b1d

+ 36 - 33
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -215,7 +215,9 @@ public class TsfGoodsController extends TsfBaseController {
 				// 상품 옵션1(색상) 정보
 				mav.addObject("goodsOption1List", goodsService.getGoodsOption1List(paramsGoods));
 				// 상품 옵션2(사이즈) 정보
-				if (StringUtils.isEmpty(paramsGoods.getMastrGoodsCd())) paramsGoods.setMastrGoodsCd(goods.getGoodsCd());
+				if (StringUtils.isEmpty(paramsGoods.getMastrGoodsCd())) {
+					paramsGoods.setMastrGoodsCd(goods.getGoodsCd());
+				}
 				mav.addObject("goodsOption2List", goodsService.getGoodsOption2List(paramsGoods));
 //				} else {
 //					mav.addObject("goodsOptionList", goodsService.getGoodsOptionList(paramsGoods));
@@ -241,11 +243,10 @@ public class TsfGoodsController extends TsfBaseController {
 			// 다다익선
 			paramsGoods.setMaxRownum(1);
 			mav.addObject("tmtbList", goodsService.getTmtbList(paramsGoods));
-			
+
 			// 사은품
 			paramsGoods.setMaxRownum(1);
 			mav.addObject("freeGoodsList", goodsService.getFreeGoodsList(paramsGoods));
-			
 
 			// 베스트 상품평
 			Review review = new Review();
@@ -256,14 +257,14 @@ public class TsfGoodsController extends TsfBaseController {
 				review.setRownum(1);
 			}
 			mav.addObject("bestReviewList", reviewService.getReviewList(review));
-			
+
 			if (!"P".equals(goods.getFrontGb())) {
 				paramsGoods.setMaxRownum(20);
-				mav.addObject("goodsList", goodsService.getTmtbGoodsList(paramsGoods));	
+				mav.addObject("goodsList", goodsService.getTmtbGoodsList(paramsGoods));
 			}
-			
+
 		}
-		
+
 		// 상품 문의건수
 		Counsel counsel = new Counsel();
 		counsel.setRelGoodsCd(goods.getGoodsCd());
@@ -288,10 +289,9 @@ public class TsfGoodsController extends TsfBaseController {
 		boolean isSslServer = Boolean.parseBoolean(hasSsl);
 		//log.info("isSslServer: [{}]", isSslServer);
 		setTodayGoodsCd(paramsGoods);
-		
+
 		mav.addObject("params", paramsGoods);
 		mav.addObject("afLinkCd", afLinkCd);	// 파라미터 제휴코드
-		
 
 		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {
 			if ("Y".equals(mobileYn)) {
@@ -670,7 +670,9 @@ public class TsfGoodsController extends TsfBaseController {
 
 		// 자사 일반상품- 옵션2(사이즈) 정보
 		paramsGoods.setOptCd1(colorCd);
-		if (StringUtils.isEmpty(paramsGoods.getMastrGoodsCd())) paramsGoods.setMastrGoodsCd(goods.getGoodsCd());
+		if (StringUtils.isEmpty(paramsGoods.getMastrGoodsCd())) {
+			paramsGoods.setMastrGoodsCd(goods.getGoodsCd());
+		}
 		mav.addObject("goodsOption2List", goodsService.getGoodsOption2List(paramsGoods));
 
 		mav.setViewName(super.getDeviceViewName("goods/GoodsInstockAlarmForm"));
@@ -841,13 +843,12 @@ public class TsfGoodsController extends TsfBaseController {
 	 */
 	@PostMapping("/review/detail/layer")
 	public ModelAndView goodsReviewDetailForm(Review review) {
-		//log.info("goodsReviewDetailForm {}", review);
+		log.info("goodsReviewDetailForm {}", review);
 		ModelAndView mav = new ModelAndView();
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		Goods paramsGoods = new Goods();
 		paramsGoods.setGoodsCd(review.getGoodsCd());
 		setGoods(paramsGoods);
-		// Goods goods = goodsService.getGoodsInfo(paramsGoods);
 
 		// 상품 기본정보
 		mav.addObject("params", paramsGoods);
@@ -859,7 +860,7 @@ public class TsfGoodsController extends TsfBaseController {
 		mav.setViewName(super.getDeviceViewName("goods/GoodsReviewDetailForm"));
 		return mav;
 	}
-	
+
 	/**
 	 * 상품상세 -  상품평 상세 레이어
 	 * @return
@@ -869,7 +870,7 @@ public class TsfGoodsController extends TsfBaseController {
 	@PostMapping("/review/detail/list")
 	@ResponseBody
 	public GagaMap getReviewDetailList(@RequestBody Review review) {
-
+		log.info("getReviewDetailList {}", review);
 		GagaMap result = new GagaMap();
 		result.set("reviewList", reviewService.getReviewList(review));
 		return result;
@@ -911,7 +912,7 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		setGoods(goods);
 		goods.setMaxRownum(15);
-		String [] arrGoodsCd= {"10813855",
+		String[] arrGoodsCd = {"10813855",
 			"L171TJ561P",
 			"B172SH710P",
 			"B192DO995P",
@@ -930,7 +931,7 @@ public class TsfGoodsController extends TsfBaseController {
 			"L171TJ501P",
 			"10814432",
 			"B192SH730P"};
-		
+
 		StringBuilder sql = new StringBuilder();
 		if (arrGoodsCd.length > 0) {
 			int idx = 1;
@@ -943,8 +944,8 @@ public class TsfGoodsController extends TsfBaseController {
 				}
 			}
 			goods.setGoodsSql(sql.toString());
-		}	
-		
+		}
+
 		goods.setArrGoodsCd(arrGoodsCd);
 		mav.addObject("goodsList", goodsService.getRecommendGoodsList(goods));
 		//log.info("goodsTogetherForm = goods{}", goods);
@@ -968,8 +969,8 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		setGoods(goods);
 		goods.setMaxRownum(15);
-		
-		String [] arrGoodsCd= {"10813855",
+
+		String[] arrGoodsCd = {"10813855",
 			"L171TJ561P",
 			"B172SH710P",
 			"B192DO995P",
@@ -988,7 +989,7 @@ public class TsfGoodsController extends TsfBaseController {
 			"L171TJ501P",
 			"10814432",
 			"B192SH730P"};
-		
+
 		StringBuilder sql = new StringBuilder();
 		if (arrGoodsCd.length > 0) {
 			int idx = 1;
@@ -1001,10 +1002,10 @@ public class TsfGoodsController extends TsfBaseController {
 				}
 			}
 			goods.setGoodsSql(sql.toString());
-		}	
-		
+		}
+
 		goods.setArrGoodsCd(arrGoodsCd);
-		
+
 		mav.addObject("goodsList", goodsService.getRecommendGoodsList(goods));
 		//log.info("goodsRecommendForm = goods{}", goods);
 		mav.addObject("params", goods);
@@ -1027,8 +1028,8 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		setGoods(goods);
 		goods.setMaxRownum(15);
-		
-		String [] arrGoodsCd= {"10813855",
+
+		String[] arrGoodsCd = {"10813855",
 			"L171TJ561P",
 			"B172SH710P",
 			"B192DO995P",
@@ -1047,7 +1048,7 @@ public class TsfGoodsController extends TsfBaseController {
 			"L171TJ501P",
 			"10814432",
 			"B192SH730P"};
-		
+
 		StringBuilder sql = new StringBuilder();
 		if (arrGoodsCd.length > 0) {
 			int idx = 1;
@@ -1060,10 +1061,10 @@ public class TsfGoodsController extends TsfBaseController {
 				}
 			}
 			goods.setGoodsSql(sql.toString());
-		}	
-		
+		}
+
 		goods.setArrGoodsCd(arrGoodsCd);
-		
+
 		mav.addObject("goodsList", goodsService.getRecommendGoodsList(goods));
 		//log.info("goodsLikeForm = goods{}", goods);
 		mav.addObject("params", goods);
@@ -1149,7 +1150,9 @@ public class TsfGoodsController extends TsfBaseController {
 
 		//log.info("goods = {}", goods);
 		GagaMap result = new GagaMap();
-		if (StringUtils.isEmpty(goods.getMastrGoodsCd())) goods.setMastrGoodsCd(goods.getGoodsCd());
+		if (StringUtils.isEmpty(goods.getMastrGoodsCd())) {
+			goods.setMastrGoodsCd(goods.getGoodsCd());
+		}
 		result.set("dataList", goodsService.getGoodsOption2List(goods));
 
 		return result;
@@ -1411,7 +1414,7 @@ public class TsfGoodsController extends TsfBaseController {
 		wishList = wishListService.getWishListGoodsList(wish);
 		return wishList;
 	}
-	
+
 	/**
 	 * ep 쿠폰 목록
 	 *
@@ -1426,7 +1429,7 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		Goods paramsGoods = new Goods();
 		setGoods(paramsGoods);
-		
+
 		// 순서중요 setGoods 이후에 설정
 		paramsGoods.setAfLinkCd(paramMap.get("afLinkCd"));
 		paramsGoods.setGoodsCd(paramMap.get("goodsCd"));

+ 3 - 2
src/main/java/com/style24/persistence/domain/Goods.java

@@ -149,7 +149,7 @@ public class Goods extends TscBaseDomain {
 	private Integer reviewSq;
 	private String goodsStatNm;
 	private String regDtMonth;
-	
+
 	private int goodsQnaCnt;	// 상품문의건수
 
 	private String sizeGb;		// 사이즈구분(T:상의, B:하의, S:신발)
@@ -159,10 +159,11 @@ public class Goods extends TscBaseDomain {
 
 	private String skuModelNo;		// SKUModelNo(WMS)
 	private String compsGoodsCd;	// 세트 구성품 상품번호
-	private String mastrGoodsCd; 	
+	private String mastrGoodsCd;
 	private String optCd;			// 옵션코드
 	private String optCd1;			// 옵션코드1
 	private String optCd2;			// 옵션코드2
+	private String optCd1Nm;
 	private int qty;				// 세트 상품 구성 수량
 	private String itemCd;			// 단품코드
 

+ 16 - 15
src/main/java/com/style24/persistence/domain/Review.java

@@ -50,9 +50,9 @@ public class Review extends TscBaseDomain {
 	private String admRpl;			// 관리자댓글
 	private int admRplRegNo;		// 댓글등록자번호
 	private String admRplDt;		// 관리자댓글등록일시
-	private String frontGb;			
+	private String frontGb;
 	private String custGb;
-	
+
 	private String custId;			// 고객ID
 	private String sysImgNm;		// 상품대표이미지
 	private String sizeGb;			// 사이즈구분(T:상의, B:하의, S:신발)
@@ -67,7 +67,7 @@ public class Review extends TscBaseDomain {
 	private String selfGoodsYn;		// 자사상품여부
 	private int iscore;				// 구매평점(상품상세용)
 	private int rownum;
-	
+
 	private String reviewScore;		// 상품평 검색조건 평점
 	private String reviewOption;	// 상품평 검색조건 옵션
 	private String reviewHeight;	// 상품평 검색조건 키	0-150
@@ -76,7 +76,7 @@ public class Review extends TscBaseDomain {
 	private String reviewWeight;	// 상품평 검색조건 몸무게	0-50
 	private int reviewWeightSt;	// 상품평 검색조건 몸무게 구간시작	0
 	private int reviewWeightEd;	// 상품평 검색조건 몸무게 구간종료	50
-	
+
 	private String reviewSysImg;	// 리뷰대표이미지
 	private String sysFileNm;		//시스템 파일명
 	private String orgFileNm;		// 원본 파일명
@@ -97,11 +97,12 @@ public class Review extends TscBaseDomain {
 	private String brandEnm;
 	private String optCd1;
 	private String optCd2;
+	private String optCd1Nm;
 	private String remainDt;
 	private String itemNm;
-	private String colorNm;	
-	
-	
+	private String colorNm;
+	private int prevReviewSq;
+	private int nextReviewSq;
 
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] orgFileNmArr;
@@ -119,17 +120,18 @@ public class Review extends TscBaseDomain {
 	private String[] optCd2Arr;		// 옵션코드
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] itemQtyArr;	// 구성상품번호
+
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	
+
 	// Masking
 	public String getMaskingCustId() {
-		return (this.custId != null) ?  MaskingUtils.id(this.custId) : this.custId;
+		return (this.custId != null) ? MaskingUtils.id(this.custId) : this.custId;
 	}
-	
+
 	Collection<ReviewAttach> reviewAttachList;	//상품평 첨부파일목록
-	
+
 	Collection<Goods> goodsOptionList;			//상품평 상품 옵션목록
-	
+
 	// Pagination
 	@JsonInclude(JsonInclude.Include.NON_EMPTY)
 	private TscPageRequest pageable;
@@ -139,10 +141,9 @@ public class Review extends TscBaseDomain {
 	private int pageNo = 1;							// 페이지번호
 	private int pageSize = 5;						// 페이지목록수
 	private int pageUnit = 10;						// 페이지번호수
-	
+
 	private int pageNo2 = 1;							// 페이지번호
 	private int pageSize2 = 5;						// 페이지목록수
 	private int pageUnit2 = 10;						// 페이지번호수
-	
-	
+
 }

+ 36 - 22
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -146,42 +146,42 @@
 		     , C.CUST_ID 
 		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
 		     , (SELECT TI.SIZE_GB FROM TB_ITEMKIND TI WHERE TI.ITEMKIND_CD = G.ITEMKIND_CD) AS SIZE_GB
-		     , (SELECT MAX(REVIEW_SQ) 
-		        FROM TB_REVIEW R
-		        WHERE REVIEW_SQ <![CDATA[<]]> #{reviewSq} 
-		        AND GOODS_CD = R.GOODS_CD 
-		        AND DEL_YN = 'N'
+		     , (SELECT MAX(RP.REVIEW_SQ) 
+		        FROM TB_REVIEW RP
+		        WHERE RP.REVIEW_SQ <![CDATA[<]]> #{reviewSq} 
+		        AND RP.GOODS_CD = R.GOODS_CD 
+		        AND RP.DEL_YN = 'N'
 		        <if test='bestYn != null and bestYn == "Y"'>
-		        AND BEST_YN = 'Y'
+		        AND RP.BEST_YN = 'Y'
 		        </if>
 		        <if test='photoYn != null and photoYn == "Y"'>
 		        AND EXISTS (SELECT 1 
-		                    FROM TB_REVIEW_ATTACH 
-		                    WHERE DEL_YN = 'N' 
-		                    AND REVIEW_SQ = R.REVIEW_SQ
-		                    AND (FILE_GB  = 'I'
+		                    FROM TB_REVIEW_ATTACH RPA
+		                    WHERE RPA.DEL_YN = 'N' 
+		                    AND RPA.REVIEW_SQ = RP.REVIEW_SQ
+		                    AND (RPA.FILE_GB  = 'I'
 		                         OR
-		                         FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		                         RPA.FILE_GB = 'M' AND RP.CONFIRM_YN = 'Y'  AND  RPA.KMC_KEY IS NOT NULL
 		                        )
 		                    )
 		        </if>
 		        ) AS PREV_REVIEW_SQ
-		     , (SELECT MIN(REVIEW_SQ) 
-		        FROM TB_REVIEW 
-		        WHERE REVIEW_SQ > #{reviewSq}
-		        AND GOODS_CD = R.GOODS_CD 
-		        AND DEL_YN = 'N'
+		     , (SELECT MIN(RN.REVIEW_SQ) 
+		        FROM TB_REVIEW RN
+		        WHERE RN.REVIEW_SQ > #{reviewSq}
+		        AND RN.GOODS_CD = R.GOODS_CD 
+		        AND RN.DEL_YN = 'N'
 		        <if test='bestYn != null and bestYn == "Y"'>
-		        AND BEST_YN = 'Y'
+		        AND RN.BEST_YN = 'Y'
 		        </if>
 		        <if test='photoYn != null and photoYn == "Y"'>
 		        AND EXISTS (SELECT 1 
-		                    FROM TB_REVIEW_ATTACH 
-		                    WHERE DEL_YN = 'N' 
-		                    AND REVIEW_SQ = R.REVIEW_SQ
-		                    AND (FILE_GB  = 'I'
+		                    FROM TB_REVIEW_ATTACH RNA
+		                    WHERE RNA.DEL_YN = 'N' 
+		                    AND RNA.REVIEW_SQ = RN.REVIEW_SQ
+		                    AND (RNA.FILE_GB  = 'I'
 		                         OR
-		                         FILE_GB = 'M' AND R.CONFIRM_YN = 'Y'
+		                         RNA.FILE_GB = 'M' AND RN.CONFIRM_YN = 'Y'  AND  RNA.KMC_KEY IS NOT NULL
 		                        )
 		                    )
 		        </if>
@@ -289,6 +289,7 @@
 		     , ODI.ITEM_CD 
 		     , ODI.OPT_CD1 
 		     , ODI.OPT_CD2
+		     , IFNULL(C.COLOR_KNM, ODI.OPT_CD1) AS OPT_CD1_NM
 		FROM TB_REVIEW R 
 		INNER JOIN TB_ORDER_DETAIL OD ON R.ORD_NO = OD.ORD_NO 
 		                              AND R.ORD_DTL_NO  = OD.ORD_DTL_NO
@@ -296,6 +297,8 @@
 		INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_NO = ODI.ORD_NO 
 		                                    AND OD.ORD_DTL_NO  = ODI.ORD_DTL_NO
 		INNER JOIN TB_GOODS G ON ODI.ITEM_CD = G.GOODS_CD
+		LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
+		                           AND C.USE_YN = 'Y'
 		WHERE R.REVIEW_SQ = #{reviewSq} 
 		AND R.GOODS_CD = #{goodsCd}
 	</select>
@@ -341,6 +344,7 @@
 		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
 		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
 		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
+		     , GROUP_CONCAT(Z.OPT_CD1_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1_NM
 		     , Z.ORD_NO
 		     , Z.ORD_DT
 		     , Z.PAY_DT
@@ -392,6 +396,7 @@
 		             , ODI.ORD_DTL_ITEM_SQ
 					 , ODI.OPT_CD1
 					 , ODI.OPT_CD2
+					 , IFNULL(C.COLOR_KNM, ODI.OPT_CD1) AS OPT_CD1_NM
 					 , G.LIST_PRICE
 		             , G.GOODS_TYPE
 		             , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
@@ -444,6 +449,8 @@
 									GROUP BY OCD.ORD_DTL_NO
 								  ) OCD
 				    ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+				LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
+		                                   AND C.USE_YN = 'Y'
 				  WHERE 1=1
 				AND O.PAY_DT >  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -90 DAY), '%Y%M%D%H%I%S') 
 				AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y')
@@ -467,6 +474,7 @@
 		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
 		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
 		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
+		     , GROUP_CONCAT(Z.OPT_CD1_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1_NM
 		     , Z.ORD_NO
 		     , Z.ORD_DT
 		     , Z.PAY_DT
@@ -549,6 +557,7 @@
 		             , ODI.ORD_DTL_ITEM_SQ
 					 , ODI.OPT_CD1
 					 , ODI.OPT_CD2
+					 , IFNULL(C.COLOR_KNM, ODI.OPT_CD1) AS OPT_CD1_NM
 					 , G.LIST_PRICE
 		             , G.GOODS_TYPE
 		             , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
@@ -638,6 +647,8 @@
 									GROUP BY OCD.ORD_DTL_NO
 								  ) OCD
 				    ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+				LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
+		                                   AND C.USE_YN = 'Y'
 				  WHERE 1=1
 				AND O.PAY_DT >  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -90 DAY), '%Y%M%D%H%I%S') 
 				<choose>
@@ -838,6 +849,7 @@
 			      ,ODI.OPT_CD 
 			      ,ODI.OPT_CD1
 			      ,ODI.OPT_CD2
+			      ,IFNULL(C.COLOR_KNM, ODI.OPT_CD1) AS OPT_CD1_NM
 			      ,ODI.ITEM_QTY 
 			      ,ODI.ITEM_PRICE
 			      ,G.GOODS_NM 
@@ -906,6 +918,8 @@
 			                              		AND R.DEL_YN = 'N'
 			                              		AND R.DISP_YN = 'Y'
 			                LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD 
+			                LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
+		                                               AND C.USE_YN = 'Y'
 			WHERE 1=1
 				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'

+ 92 - 22
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html

@@ -26,17 +26,6 @@
 			</th:block>
 		</div>
 		<div class="modal-body" id="reviewBody">
-			<div class="pop_cont">
-				<div class="swiper-container detail">
-					<div class="swiper-wrapper">
-						<div class="swiper-slide" id="reviewBody">
-							<!-- 리뷰내용 -->
-						</div>
-					</div>
-				</div>
-				<div class="swiper-button-next" id="reviewBodyNext"></div>
-				<div class="swiper-button-prev" id="reviewBodyPrev"></div>
-			</div>
 		</div>
 	</div>
 </div>
@@ -68,6 +57,11 @@
 			let fileGbClass = '';
 			$.each(result.reviewList, function(idx, review) {
 				let tag = '';
+				tag +='<div class="pop_cont">\n';
+				tag +='<div class="swiper-container detail">\n';
+				tag +='<div class="swiper-wrapper">\n';
+				tag +='<div class="swiper-slide">\n';
+				
 				let reviewClass = 'empty_photo';
 				if (review.reviewAttachList != null && review.reviewAttachList.length > 0){
 					reviewClass = '';
@@ -84,10 +78,10 @@
 				tag +='				<source src="http://snsvideo.11st.co.kr/movie/item/www/675/67518524_06_1_C1.mp4" type="video/mp4">\n';
 				tag +='			</video>\n';
 						}else{
-				tag +='			<img th:src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';	
+				tag +='			<img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';	
 						}
 				tag +='		</span>\n';
-						break;
+						return false;
 					});	
 				}else{
 				tag +='		<span class="thumb">\n';
@@ -126,7 +120,7 @@
 				tag +='						</div>\n';
 				tag +='					</dl>\n';
 				tag +='				</div>\n';
-				if (!gagajf.isNill(review.sizeGb)){  <!-- 사이즈구분(T:상의, B:하의, S:신발) -->
+				if (!gagajf.isNull(review.sizeGb)){  <!-- 사이즈구분(T:상의, B:하의, S:신발) -->
 				tag +='				<div>\n'; 
 				tag +='					<dl > \n';
 				tag +='						<div>\n';
@@ -166,19 +160,19 @@
 				tag +='			</div>\n';
 				tag +='			<div class="writer_box">\n';
 				tag += '			<div class="writer">\n';
-				tag += '				<span class="wr_id">'+ item.maskingCustId +'</span>\n';
-				tag += '				<span class="wr_date">' + item.regDt + '</span>\n';
+				tag += '				<span class="wr_id">'+ review.maskingCustId +'</span>\n';
+				tag += '				<span class="wr_date">' + review.regDt + '</span>\n';
 				tag += '			</div>\n'
 				tag +='			</div>\n';
-				if (!gagajf.isNull(item.admRpl)){
+				if (!gagajf.isNull(review.admRpl)){
 				tag += '		<div class="reply_box">\n';
 				tag += '			<div class="reply">\n';
 				tag += '				<div class="reply_writer">\n';
 				tag += '					<span class="wr_name">관리자</span>\n';
-				tag += '					<span class="wr_date">'+item.admRplDt+'</span>\n';
+				tag += '					<span class="wr_date">'+review.admRplDt+'</span>\n';
 				tag += '				</div>\n';
 				tag += '				<div class="reply_txt">\n';
-				tag += '					<p>' + item.admRpl+'</p>\n';
+				tag += '					<p>' + review.admRpl+'</p>\n';
 				tag += '				</div>\n';
 				tag += '			</div>\n';
 				tag += '		</div>\n';	
@@ -197,8 +191,10 @@
 						fileGbClass = '';
 						if (reviewAttach.fileGb == "M") fileGbClass = "mov";
 				tag +='			<li>\n';
-				tag +='				<div class="pic" class="'+activeClass+'"> \n'; <!-- 활성화시 active 클래스 추가 -->
-				tag +='					<span class="thumb" class="'+fileGbClass+'" style="background-image:url('+_uploadGoodsUrl +'/'+review.sysImgNm+');\" ></span>\n';<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+				tag +='				<div class="pic '+activeClass+'"> \n'; <!-- 활성화시 active 클래스 추가 -->
+				tag +='					<span class="thumb" class="'+fileGbClass+'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" >\n';<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+				tag +='					<img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';
+				tag +='					</span>\n';
 				tag +='				</div>\n';
 				tag +='			</li>\n';
 					});
@@ -206,19 +202,93 @@
 				tag +='	</div>\n';
 				}
 				tag +='</div>\n';
+				
+				tag +='</div>\n';
+				tag +='</div>\n';
+				tag +='</div>\n';
+				if (gagajf.isNull(review.nextReviewSq) || review.nextReviewSq <= 0) {
+					tag +='<div class="swiper-button-next swiper-button-disabled" id="reviewBodyNext" ></div>\n';
+				}else{
+					tag +='<div class="swiper-button-next" id="reviewBodyNext" onclick="fnReviewNext('+review.nextReviewSq+')"></div>\n';	
+				}
+				
+				if (gagajf.isNull(review.prevReviewSq) || review.prevReviewSq <= 0) {
+					tag +='<div class="swiper-button-prev swiper-button-disabled" id="reviewBodyPrev"  ></div>\n';
+				}else{
+					tag +='<div class="swiper-button-prev" id="reviewBodyPrev" onclick="fnReviewNext('+review.prevReviewSq+')"></div>\n';	
+				}
+				tag +='</div>\n';
+				
 				$('#reviewBody').append(tag);
+				
+				 $('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
+				        var $this = $(this);
+				        
+				        var thumbCount = $this.find('.thumblist ul li').length;
+				        var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
+				        var thumbMargin = 8 * thumbCount;
+				        var thumbListWidth = thumbUlWidth + thumbMargin;
+
+				        $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
+				        
+				    });
+
 			});
 		}
 		
 	}
 	
+	// 다른 상품평 보기
+	var fnReviewNext = function(reviewSq){
+		if (gagajf.isNull(reviewSq)) return false;
+		
+		$('#reviewDetailForm input[name=reviewSq]').val(reviewSq);
+		fnReviewDetail();
+	}
+	
 	$(document).ready( function() {
 		
 		fnReviewDetail();
+       
+		 //슬라이드 - 상품 베스트 리뷰 자세히보기 영역 
+	    var photoReviewDetailSwiper = new Swiper('.pd_photoreviewdetail_pop .swiper-container.detail', {
+	        effect :'fade',
+	        slidesPerView: 1,
+	        spaceBetween: 0,
+	        simulateTouch:false,
+	        navigation: {
+	            nextEl: '.pd_photoreviewdetail_pop .swiper-button-next',
+	            prevEl: '.pd_photoreviewdetail_pop .swiper-button-prev',
+	        },
+	    });   
+
+	    $('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
+	        var $this = $(this);
+	        
+	        var thumbCount = $this.find('.thumblist ul li').length;
+	        var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
+	        var thumbMargin = 8 * thumbCount;
+	        var thumbListWidth = thumbUlWidth + thumbMargin;
 
+	        $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
+	        
+	    });
+
+	    $(document).on('click','.pd_photoreviewdetail_pop .thumblist ul li',function(e){
+
+	        $(this).parents(".swiper-slide").find(".review > .pic > .thumb").empty();
+	        $(this).parents(".swiper-slide").find(".thumblist ul li .pic").removeClass('active');
+	        $(this).find(".pic").addClass('active');
+
+	        var thumbIndex = $(this).index();
+	        thumbContentHtml = $(this).find('.pic .thumb').html();
+	        $(this).parents(".swiper-slide").find(".review > .pic > .thumb").append(thumbContentHtml);
+
+	        return false;
+	    });
 	});		
 
-	
+	 
 /*]]>*/
 </script>	
  </html>

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

@@ -186,7 +186,7 @@
 						html += '							<span class="option">' + item.itemNmArr[index2] + ' / ' + option + ' / ' + item.optCd2Arr[index2] + '</span>\n';
 					})
 				}else{
-					html += '							<span class="option">'+item.optCd1+'&nbsp;/&nbsp;'+item.optCd2+'</span>     ';
+					html += '							<span class="option">'+item.optCd1Nm+'&nbsp;/&nbsp;'+item.optCd2+'</span>     ';
 				}
 				
 				
@@ -246,7 +246,7 @@
 				html+='						<div class="gd_opt">';
 				html+='							<div class="option_wrap">';
 				html+='								<span class="title sr-only">주문 옵션</span>';
-				html+='								<span class="option">'+item.optCd1+'&nbsp;/&nbsp;'+item.optCd2+'</span>';
+				html+='								<span class="option">'+item.optCd1Nm+'&nbsp;/&nbsp;'+item.optCd2+'</span>';
 				html+='							</div>';
 				html+='						</div>';
 				html+='					</div>';
@@ -274,7 +274,7 @@
 				html+='								<dl>';
 				html+='									<div>';
 				html+='										<dt>구매옵션</dt>';
-				html+='										<dd>'+item.optCd1+' / '+item.optCd2+'</dd>';
+				html+='										<dd>'+item.optCd1Nm+' / '+item.optCd2+'</dd>';
 				html+='									</div>';
 				html+='								</dl>';
 				html+='							</div>';

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

@@ -607,12 +607,12 @@ function cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq) {
 		$('body').append(str);
 	}
 	
-	var params = new Object();
-	params.goodsCd = goodsCd;
-	params.bestYn = bestYn;
-	params.photoYn = photoYn;
-	params.reviewSq = reviewSq;
-	cfOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER, 'layer_review_best' ,params );
+	var params = '?goodsCd=' + goodsCd;
+	params += '&reviewSq=' + reviewSq;
+	params += '&bestYn=' + bestYn;
+	params += '&photoYn=' + photoYn;debugger;
+	
+	cfOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER+params, 'layer_review_best');
 }
 
 /**