Przeglądaj źródła

마이페이지 리뷰 중간 커밋

sowon4187 5 lat temu
rodzic
commit
a59021af64

+ 38 - 2
src/main/java/com/style24/front/biz/dao/TsfReviewDao.java

@@ -87,6 +87,42 @@ public interface TsfReviewDao {
 	 * @since 2021. 3. 25
 	 */
 	void saveMypageReview(Review review);
-
-
+	
+	/**
+	 * 마이페이지 작성한 리뷰 건수
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	int getAlreadyReviewCount(Review review);
+	
+	/**
+	 * 마이페이지 작성한 리뷰 목록
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	Collection<Review> getAlreadyReviewList(Review review);
+	
+	/**
+	 * 마이페이지 작성한 리뷰 이미지 목록 
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	Collection<Review> getReviewAttach(Review review);
+	
+	/**
+	 * 마이페이지 어드민이 댓글 단 리뷰 건수
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	Review getAdminConfirmCount(Review review);
+	
+	
 }

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

@@ -103,4 +103,50 @@ public class TsfReviewService {
 		reviewDao.saveMypageReview(review);
 	}
 	
+	/**
+	 * 마이페이지 작성한 리뷰 건수
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	public int getAlreadyReviewCount(Review review) {
+		return reviewDao.getAlreadyReviewCount(review);
+	}
+	
+	/**
+	 * 마이페이지 작성한 리뷰 목록
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	public Collection<Review> getAlreadyReviewList(Review review){
+		return reviewDao.getAlreadyReviewList(review);
+	}
+	
+	/**
+	 * 마이페이지 작성한 리뷰 이미지 목록
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	public Collection<Review> getReviewAttach(Review review){
+		return reviewDao.getReviewAttach(review);
+	}
+	
+	/**
+	 * 마이페이지 어드민이 댓글 단 리뷰 건수
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 26
+	 */
+	public Review getAdminConfirmCount(Review review) {
+		return reviewDao.getAdminConfirmCount(review);
+	}
+	
+	
+	
 }

+ 49 - 8
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -844,26 +844,37 @@ public class TsfMypageController extends TsfBaseController {
 		review.setSiteCd(TscConstants.Site.STYLE24.value());
 		// 작성가능한 리뷰 카운트
 		mav.addObject("completeReviewCount", reviewService.getCompleteReviewCount(review));
-		// 작성가능한 리뷰 목록
-		//mav.addObject("completeReviewList", reviewService.getCompleteReviewList(review));
+		
+		// 작성한 리뷰 카운트
+		mav.addObject("alreadyReviewCount", reviewService.getAlreadyReviewCount(review));
+		
+		// 관리자 댓글확인 카운트
+		mav.addObject("adminCount", reviewService.getAdminConfirmCount(review));
+		
+		// 리뷰 이미지/동영상
+		mav.addObject("alreadyReviewAttach", reviewService.getReviewAttach(review));
+		
 		mav.setViewName(super.getDeviceViewName("mypage/MypageReviewForm"));
 
 		return mav;
 	}
 	
 	/**
-	 * 마이페이지 리뷰 목록
+	 * 마이페이지 작성가능한 리뷰 목록
 	 * @param review
 	 * @return
 	 * @author sowon
 	 * @since 2021. 03. 25
 	 */
-	@PostMapping("/review/list")
+	@PostMapping("/complete/review/list")
 	@ResponseBody
-	public GagaMap getMypageReviewList(@RequestBody Review review) {
+	public GagaMap getMypageCompleteReviewList(@RequestBody Review review) {
 
 		review.setSiteCd(TscConstants.Site.STYLE24.value());
 
+		if (TsfSession.isLogin()) {
+			review.setCustNo(TsfSession.getInfo().getCustNo());
+		}
 		GagaMap result = new GagaMap();
 
 		TscPageRequest pageable = new TscPageRequest((review.getPageNo() > 0 ? review.getPageNo() - 1 : 0), review.getPageSize(), review.getPageUnit());
@@ -872,14 +883,44 @@ public class TsfMypageController extends TsfBaseController {
 		log.info("pageable: {}", pageable);
 		log.info("totalCount {}", pageable.getTotalCount());
 		
+		result.set("paging", review);
+		result.set("completeReviewCount", reviewService.getCompleteReviewCount(review));
+		result.set("dataList1", reviewService.getCompleteReviewList(review));
 
+		return result;
+	}
+	
+	/**
+	 * 마이페이지 작성한 리뷰 목록
+	 * @param review
+	 * @return
+	 * @author sowon
+	 * @since 2021. 03. 26
+	 */
+	@PostMapping("/already/review/list")
+	@ResponseBody
+	public GagaMap getMypageAlreadyReviewList(@RequestBody Review review) {
+
+		review.setSiteCd(TscConstants.Site.STYLE24.value());
+
+		GagaMap result = new GagaMap();
 		if (TsfSession.isLogin()) {
 			review.setCustNo(TsfSession.getInfo().getCustNo());
 		}
 
-		result.set("paging", review);
-		result.set("completeReviewCount", reviewService.getCompleteReviewCount(review));
-		result.set("dataList", reviewService.getCompleteReviewList(review));
+		TscPageRequest pageable2 = new TscPageRequest((review.getPageNo2() > 0 ? review.getPageNo2() - 1 : 0), review.getPageSize2(), review.getPageUnit2());
+		pageable2.setTotalCount(reviewService.getAlreadyReviewCount(review));
+		
+		review.setPageable2(pageable2);
+		log.info("pageable2: {}", pageable2);
+		log.info("totalCount2 {}", pageable2.getTotalCount());
+		
+
+	
+		result.set("paging2", review);
+		result.set("alreadyReviewCount", reviewService.getAlreadyReviewCount(review));
+		result.set("dataList2", reviewService.getAlreadyReviewList(review));
+		
 
 		return result;
 	}

+ 12 - 0
src/main/java/com/style24/persistence/domain/Goods.java

@@ -121,21 +121,33 @@ public class Goods extends TscBaseDomain {
 	private int scoreSize1;
 	private int scoreSize2;
 	private int scoreSize3;
+	private String scoreSize;
 	private int scoreColor1;
 	private int scoreColor2;
 	private int scoreColor3;
+	private String scoreColor;
 	private int scoreFit1;
 	private int scoreFit2;
 	private int scoreFit3;
+	private String scoreFit;
 	private int scoreThick1;
 	private int scoreThick2;
 	private int scoreThick3;
+	private String scoreThick;
 	private int scoreWeight1;
 	private int scoreWeight2;
 	private int scoreWeight3;
+	private String scoreWeight;
 	private int scoreBall1;
 	private int scoreBall2;
 	private int scoreBall3;
+	private String scoreBall;
+	private String reviewContent;
+	private String admRplDt;
+	private String admRpl;
+	private int height;				// 키
+	private int weight;				// 몸무게
+	private Integer reviewSq;
 	private String goodsStatNm;
 
 	private String sizeGb;		// 사이즈구분(T:상의, B:하의, S:신발)

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

@@ -73,6 +73,8 @@ public class Review extends TscBaseDomain {
 	private int reviewWeightEd;	// 상품평 검색조건 몸무게 구간종료	50
 	
 	private String reviewSysImg;	// 리뷰대표이미지
+	private String sysFileNm;		//시스템 파일명
+	private String orgFileNm;		// 원본 파일명
 	private String goodsImageYn;	// 이미지 여부
 	private int rankno;				// 리뷰 순서
 	private Integer planSq;			// 기획전 번호
@@ -80,7 +82,8 @@ public class Review extends TscBaseDomain {
 	private String goodsNm;			// 상품이름
 	private int currPrice;		// 현재가
 	private String fileGb;			// 첨부파일 종류
-	private int cnt;				// 리뷰 카운트
+	private int cnt;				// 작성가능한 리뷰 카운트
+	private int count;				// 작성한 리뷰 카운트
 	private String siteCd;
 	
 	// Masking
@@ -95,10 +98,16 @@ public class Review extends TscBaseDomain {
 	// Pagination
 	@JsonInclude(JsonInclude.Include.NON_EMPTY)
 	private TscPageRequest pageable;
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private TscPageRequest pageable2;
 
 	private int pageNo = 1;							// 페이지번호
 	private int pageSize = 10;						// 페이지목록수
 	private int pageUnit = 10;						// 페이지번호수
 	
+	private int pageNo2 = 1;							// 페이지번호
+	private int pageSize2 = 10;						// 페이지목록수
+	private int pageUnit2 = 10;						// 페이지번호수
+	
 	
 }

+ 195 - 5
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -308,7 +308,7 @@
 			      ,I.SIZE_GB 
 			      ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL 90 DAY),NOW()) AS REMAIN_DT -- 남은시간
 			FROM TB_ORDER O INNER JOIN TB_ORDER_DETAIL OD ON O.ORD_NO = OD.ORD_NO 
-								 			 	AND OD.ORD_DTL_STAT = 'G013_70' -- 구매 확정인것만
+								 			 	 AND OD.ORD_DTL_STAT = 'G013_70' -- 구매 확정인것만
 			                INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_DTL_NO = ODI.ORD_DTL_NO 
 			                  					 AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 			                  	                 AND ODI.ORD_DTL_STAT = 'G013_70'
@@ -317,8 +317,8 @@
 			                LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD 
 			WHERE 1=1
 				AND O.PAY_DT <![CDATA[>]]>  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -90 DAY), '%Y%M%D%H%I%S') <!--  60 일이내것만 -->
-				AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N')
-				AND O.CUST_NO = #{custNo}
+				AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y')
+				AND O.CUST_NO =#{custNo}
 				AND O.DISP_YN = 'Y'
 				AND O.SITE_CD = #{siteCd}
 				<if test="ordNo!=null and ordNo != ''">
@@ -382,7 +382,7 @@
 			      ,B.BRAND_ENM 
 			      ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL 90 DAY),NOW()) AS DT -- 남은시간
 			FROM TB_ORDER O INNER JOIN TB_ORDER_DETAIL OD ON O.ORD_NO = OD.ORD_NO 
-								 			 AND OD.ORD_DTL_STAT = 'G013_70'--  구매 확정인것만
+								 				 AND OD.ORD_DTL_STAT = 'G013_70'--  구매 확정인것만
 			                INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_DTL_NO = ODI.ORD_DTL_NO 
 			                  					 AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 			                  	                 AND ODI.ORD_DTL_STAT = 'G013_70'
@@ -390,7 +390,7 @@
 			                INNER JOIN TB_BRAND B ON B.BRAND_CD = G.BRAND_CD
 			WHERE 1=1
 				AND O.PAY_DT <![CDATA[>]]>  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -90 DAY), '%Y%M%D%H%I%S') <!--  60 일이내것만 -->
-				AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N')
+				AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y')
 				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 				AND O.SITE_CD = #{siteCd}
@@ -482,4 +482,194 @@
 			               ,UPD_DT         =  now()     
 			                           
 	</select>
+	
+	<select id="getAlreadyReviewCount" parameterType="Review" resultType="int">
+		/* TsfReivew.getAlreadyReviewCount */
+		SELECT COUNT(*) AS COUNT
+		FROM TB_REVIEW R
+		WHERE 1=1
+		 AND CUST_NO = 100011
+		 AND DEL_YN = 'N'
+		 AND DISP_YN = 'Y'
+	</select>
+	
+	<select id="getAlreadyReviewList" parameterType="Review" resultType="Goods">
+		/* TsfReivew.getAlreadyReviewList */
+		SELECT F.*
+			  , (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
+		FROM
+		(
+			SELECT O.ORD_NO 
+			      ,O.ORD_NM
+			      ,DATE_FORMAT(O.PAY_DT, '%Y-%m-%d') AS PAY_DT 
+			      ,O.CUST_NO 
+			      ,OD.ORD_DTL_NO
+			      ,OD.ORD_EXCH_GB 
+			      ,OD.GOODS_CD 
+			      ,OD.REAL_ORD_AMT 
+			      ,OD.SAVE_PNT_AMT 
+			      ,OD.GFCD_USE_AMT 
+			      ,ODI.ORD_DTL_ITEM_SQ 
+			      ,ODI.ITEM_CD 
+			      ,ODI.OPT_CD 
+			      ,ODI.OPT_CD1
+			      ,ODI.OPT_CD2
+			      ,ODI.ITEM_QTY 
+			      ,ODI.ITEM_PRICE
+			      ,G.GOODS_NM 
+			      ,G.MAIN_COLOR_CD
+			      ,B.BRAND_ENM 
+			      ,I.ITEMKIND_NM 
+			      ,I.ITEMKIND_CD 
+			      ,I.SIZE_GB 
+			      ,R.REVIEW_SQ
+			      ,R.REVIEW_GB
+			      ,R.REVIEW_CONTENT
+			      ,R.SCORE
+			      ,R.HEIGHT
+			      ,R.WEIGHT
+			      ,(CASE R.SCORE_SIZE   WHEN 1 THEN '작음' 
+	      								WHEN 2 THEN '딱맞음'
+	      								WHEN 3 THEN '큼'
+	      													END) AS SCORE_SIZE
+			      ,(CASE R.SCORE_COLOR  WHEN 1 THEN '밝음' 
+			      						WHEN 2 THEN '똑같음'
+			      						WHEN 3 THEN '어두움'   
+			      						 					END) AS SCORE_COLOR
+			      ,(CASE R.SCORE_FIT    WHEN 1 THEN '슬림' 
+			      						WHEN 2 THEN '레귤러' 
+			      						WHEN 3 THEN '오버' 
+			      											END) AS SCORE_FIT
+			      ,(CASE R.SCORE_THICK  WHEN 1 THEN '얇음' 
+			      						WHEN 2 THEN '적당함' 
+			      						WHEN 3 THEN '도톰함'
+			      											END) AS SCORE_THICK
+			      ,(CASE R.SCORE_WEIGHT WHEN 1 THEN '가벼움' 
+			      						WHEN 2 THEN '적당함'
+			      						WHEN 3 THEN '무거움'
+			      											END) AS SCORE_WEIGHT
+			      ,(CASE R.SCORE_BALL   WHEN 1 THEN '작음'
+			      						WHEN 2 THEN '딱맞음'
+		                                WHEN 3 THEN '큼' 
+		                                					END) AS SCORE_BALL
+			      ,R.GIVE_DUE_PNT
+			      ,R.PNT_GIVE_STAT
+			      ,R.BEST_YN
+			      ,R.GIVE_DUE_BPNT
+			      ,R.BPNT_GIVE_YN
+			      ,R.DISP_YN
+			      ,R.DEL_YN
+			      ,R.CONFIRM_YN
+			      ,R.CONFIRM_UNO
+			      ,R.CONFIRM_DT
+			      ,R.REG_NO
+			      ,DATE_FORMAT(R.REG_DT , '%Y-%m-%d') AS REG_DT
+			      ,R.UPD_NO
+			      ,DATE_FORMAT(R.UPD_DT , '%Y-%m-%d') AS UPD_DT
+			      ,R.ADM_RPL
+			      ,R.ADM_RPL_REG_NO
+			      ,DATE_FORMAT(R.ADM_RPL_DT , '%Y-%m-%d %H:%i:%s') AS ADM_RPL_DT
+			      ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL 90 DAY),NOW()) AS REMAIN_DT -- 남은시간
+			FROM TB_ORDER O INNER JOIN TB_ORDER_DETAIL OD ON O.ORD_NO = OD.ORD_NO 
+			                INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_DTL_NO = ODI.ORD_DTL_NO 
+			                  					 AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+			                INNER JOIN TB_GOODS G ON G.GOODS_CD = OD.GOODS_CD 
+			                INNER JOIN TB_BRAND B ON B.BRAND_CD = G.BRAND_CD
+			                INNER JOIN TB_REVIEW R ON R.ORD_NO = O.ORD_NO 
+			                              		AND R.ORD_NO = O.ORD_NO
+			                              		AND R.ORD_DTL_NO = OD.ORD_DTL_NO 
+			                              		AND R.DEL_YN = 'N'
+			                              		AND R.DISP_YN = 'Y'
+			                LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD 
+			WHERE 1=1
+				AND O.CUST_NO = 100011
+				AND O.DISP_YN = 'Y'
+				AND O.SITE_CD = #{siteCd}
+			GROUP BY O.ORD_NO 
+			      ,O.ORD_NM 
+			      ,O.PAY_DT 
+			      ,O.CUST_NO 
+			      ,OD.ORD_DTL_NO
+			      ,OD.ORD_EXCH_GB 
+			      ,OD.GOODS_CD 
+			      ,OD.REAL_ORD_AMT 
+			      ,OD.SAVE_PNT_AMT 
+			      ,OD.GFCD_USE_AMT 
+			      ,ODI.ORD_DTL_ITEM_SQ 
+			      ,ODI.ITEM_CD 
+			      ,ODI.OPT_CD 
+			      ,ODI.OPT_CD1
+			      ,ODI.OPT_CD2
+			      ,ODI.ITEM_QTY 
+			      ,ODI.ITEM_PRICE
+			      ,G.GOODS_NM 
+			      ,G.MAIN_COLOR_CD
+			      ,B.BRAND_ENM 
+		)F
+		ORDER BY F.PAY_DT DESC
+	</select>
+	
+	<select id="getReviewAttach" parameterType="Review" resultType="Review">
+		/* TsfReivew.getReviewAttach */
+		SELECT R.REVIEW_SQ
+			 , R.GOODS_CD
+			 , R.REVIEW_GB
+			 , R.CUST_NO
+			 , R.ORD_NO
+			 , R.ORD_DTL_NO
+			 , R.REVIEW_TITLE
+			 , R.REVIEW_CONTENT
+			 , R.SCORE
+			 , R.HEIGHT
+			 , R.WEIGHT
+			 , R.SCORE_SIZE
+			 , R.SCORE_COLOR
+			 , R.SCORE_FIT
+			 , R.SCORE_THICK
+			 , R.SCORE_WEIGHT
+			 , R.SCORE_BALL
+			 , R.GIVE_DUE_PNT
+			 , R.PNT_GIVE_STAT
+			 , R.BEST_YN
+			 , R.GIVE_DUE_BPNT
+			 , R.BPNT_GIVE_YN
+			 , R.DISP_YN
+			 , R.DEL_YN
+			 , R.CONFIRM_YN
+			 , R.CONFIRM_UNO
+			 , R.CONFIRM_DT
+			 , R.REG_NO
+			 , R.REG_DT
+			 , R.UPD_NO
+			 , R.UPD_DT
+			 , R.ADM_RPL
+			 , R.ADM_RPL_REG_NO
+			 , R.ADM_RPL_DT
+			 , RA.RV_ATC_SQ
+			 , RA.REVIEW_SQ
+			 , RA.FILE_GB
+			 , RA.ORG_FILE_NM
+			 , RA.SYS_FILE_NM
+			 , RA.DEL_YN
+		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 
+		 AND R.CUST_NO = 100011
+		 AND R.DEL_YN = 'N'
+		 AND R.DISP_YN = 'Y'
+		 AND RA.DEL_YN = 'N'
+	</select>
+	
+	<select id="getAdminConfirmCount" parameterType="Review" resultType="Review">
+		/* TsfReivew.getAlreadyReviewCount */
+		SELECT COUNT(*) AS COUNT
+		     , R.REVIEW_SQ 
+		FROM TB_REVIEW R
+		WHERE 1=1
+		 AND CUST_NO = 100011
+		 AND DEL_YN = 'N'
+		 AND DISP_YN = 'Y' 
+		 AND ADM_RPL IS NOT NULL
+		ORDER BY  R.ADM_RPL_DT DESC, R.REVIEW_SQ LIMIT 1
+	</select>
 </mapper>

+ 0 - 21
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -341,27 +341,6 @@
 															<div class="imgUpload">
 																<label for="fileAdd" class="fileAdd">첫번째업로드</label>
 																<input type="file" id="fileAdd" name="files[]">
-																<input type="hidden" name="file1OrgFileNm"/>
-																<input type="hidden" name="file1SysFileNm"/>
-																<input type="hidden" name="file2OrgFileNm"/>
-																<input type="hidden" name="file2SysFileNm"/>
-																<input type="hidden" name="file3OrgFileNm"/>
-																<input type="hidden" name="file3SysFileNm"/>
-																<input type="hidden" name="file4OrgFileNm"/>
-																<input type="hidden" name="file4SysFileNm"/>
-																<input type="hidden" name="file5OrgFileNm"/>
-																<input type="hidden" name="file5SysFileNm"/>
-																<input type="hidden" name="file6OrgFileNm"/>
-																<input type="hidden" name="file6SysFileNm"/>
-																<input type="hidden" name="file7OrgFileNm"/>
-																<input type="hidden" name="file7SysFileNm"/>
-																<input type="hidden" name="file8OrgFileNm"/>
-																<input type="hidden" name="file8SysFileNm"/>
-																<input type="hidden" name="file9OrgFileNm"/>
-																<input type="hidden" name="file9SysFileNm"/>
-																<input type="hidden" name="file10OrgFileNm"/>
-																<input type="hidden" name="file10SysFileNm"/>
-																
 															</div>
 														</div>
 														<!-- //이미지첨부 -->

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

@@ -49,54 +49,81 @@
 								<div>
 									<ul>
 										<li id="completeReview"><a href="javascript:void(0);" >작성 가능한 리뷰<span th:text="'('+${#numbers.formatInteger(completeReviewCount,0,'COMMA')}+')'"></span></a></li>
-										<li id="alreadyReview"><a href="javascript:void(0);" >내가 쓴 리뷰<span>(2,405)</span></a></li>
+										<li id="alreadyReview"><a href="javascript:void(0);" >내가 쓴 리뷰<span th:text="'('+${#numbers.formatInteger(alreadyReviewCount,0,'COMMA')}+')'"></span></a></li>
 									</ul>
 								</div>
 							</div>
-							<div class="area_list" id="completeList">
-			
-								<!-- //주문번호 기준 상품 내역 -->	
-								<!-- 데이터 없을 시 -->
-																											
+							<div class="check_notice" th:if="${adminCount.count>0}">
+								<p>
+									관리자가 댓글을 남긴 상품평이 있습니다.
+									<a href="javascript:void(0);" th:onclick="fnMove([[${adminCount.reviewSq}]])">
+										바로 확인
+									</a>
+								</p>
 							</div>
-									<div class="nodata">
-									<div class="txt_box">
-										<p>
-											작성 가능한 리뷰가 없습니다.<br>
-										</p>
-									</div>
-								</div>
-								<!-- //데이터 없을 시 -->		
-						</div>
-						<div class="sec_foot">
-							<div class="ui_row">
-								<ul class="pageNav" id="paging">
-								
-								</ul>
+							<div class="area_list" id="reviewList"></div>
+							<div class="sec_foot" id="comNav">
+								<div class="ui_row">
+									<ul class="pageNav" id="paging">
+									
+									</ul>
+								</div>																					
 							</div>
+							<div class="sec_foot" id="alrNav">
+								<div class="ui_row">
+									<ul class="pageNav" id="paging2">
+									
+									</ul>
+								</div>																					
+							</div>
+							<div class="nodata">
+								<div class="txt_box">
+									<p>
+										작성 가능한 리뷰가 없습니다.<br>
+									</p>
+								</div>
+							</div> 
+						
 						</div>
-						<form id="searchForm" name="searchForm" th:action="@{'/mypage/review/list'}" th:method="post">
-							<input type="hidden" name="pageNo" value="1" />
-							<input type="hidden" name="pageSize" value="10" />
-						</form>
+						
+						
 					</div>
 					<!-- // CONT-BODY -->					
 				</div>
 			</div>
+			<form id="searchForm1" name="searchForm1" th:action="@{'/mypage/complete/review/list'}" th:method="post">
+				<input type="hidden" name="pageNo" value="1" />
+				<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" />
+			</form>
 
 	<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() {
 		$("#alreadyReview").removeClass("active");
 		$("#completeReview").addClass("active");
-		
+		$(".check_notice").hide();
+		$("#alrNav").hide();
+		$("#comNav").show();
+		gagaPaging.init('searchForm1', fnSearchCallback1, 'paging', 10);
+		gagaPaging.load(1);
 	})
 	
 	$("#alreadyReview").click(function() {
 		$("#completeReview").removeClass("active");
 		$("#alreadyReview").addClass("active");
-		
+		$(".check_notice").show();
+		$("#comNav").hide();
+		$("#alrNav").show();
+		gagaPaging.init('searchForm2', fnSearchCallback2, 'paging2', 10);
+		gagaPaging.load(1);
 	})
 	
 	$(document).ready(function() {
@@ -106,26 +133,20 @@
 
 		// 마이페이지 location 설정
 		fnSetMypageLocation('리뷰', '_PAGE_MYPAGE_REVIEW');
-		
-		// Initialize a pagination
-		gagaPaging.init('searchForm', fnSearchCallback, 'paging', 10);
-		
-		// Load data
-		gagaPaging.load(1);
-		
+				
 		// 작성가능한 리뷰표시
 		$("#completeReview").trigger('click');
-
 	
 	});
 	
 	// 주문 목록 조회 콜백
-	var fnSearchCallback = function(result) {
-		$('.nodata').css("display","none");
-		let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
-		$('#completeList').html('');
-		if (result.dataList != null && result.dataList.length > 0) {
-			$.each(result.dataList, function(idx, item) {
+	var fnSearchCallback1 = function(result) {
+		$('.nodata').hide();
+		
+		$('#reviewList').html('');
+		
+		if (result.dataList1 != null && result.dataList1.length > 0) {
+			$.each(result.dataList1, function(idx, item) {
 				let html = '';
 				html += '<div class="part_goods">                                                                                                  ';
 				html += '	<div class="goods_cont">                                                                                              ';
@@ -135,7 +156,7 @@
 				html += '					<div class="gd_item">	                                                                              ';
 				html += '						<a href="">                                                                                       ';
 				html += '							<span class="thumb">                                                                          ';
-				html += '								<img th:src="' + imageUrl + '/' + item.sysImgNm + '"  width="100%" alt="">  ';
+				html += '								<img src="' + imageUrl + '/' + item.sysImgNm + '"  width="100%" alt="">  ';
 				html += '							</span>                                                                                       ';
 				html += '							<p>                                                                                           ';
 				html += '								<span class="buy_date"><em>'+item.payDt+'</em>&nbsp;구매</span>             ';
@@ -165,25 +186,190 @@
 				html += '		</div>                                                                                                            ';
 				html += '	</div>                                                                                                                ';
 				html += '</div>                                                                                                                    ';
-				$('#completeList').append(html);
+				$('#reviewList').append(html);
 			})
 		}else{
-			$('.nodata').css("display","block");
+			$('.nodata').show();
 		}
-
 		// Create pagination
 		gagaPaging.createPagination(result.paging.pageable);
 	}
 	
+	// 주문 목록 조회 콜백
+	var fnSearchCallback2 = function(result) {
+		$('.nodata').hide();
+		
+		$('#reviewList').html('');
+		
+		if (result.dataList2 != null && result.dataList2.length > 0) {
+			$.each(result.dataList2, function(idx, item) {
+				let html = '';
+				html+='<div class="part_goods">';
+				html+='		<div class="goods_cont">';
+				html+='			<div class="goods_info">';
+				html+='				<div class="order_desc">';
+				html+='					<div class="goods_box">';
+				html+='						<div class="gd_item">	';
+				html+='							<a href="">';
+				html+='								<span class="thumb">';
+				html+='									<img src="' + imageUrl + '/' + item.sysImgNm + '" width="100%" alt="">';
+				html+='								</span>';
+				html+='								<p>';
+				html+='									<span class="buy_date"><em>'+item.payDt+'</em>&nbsp;구매</span>';
+				html+='								</p>';
+				html+='								<p>';
+				html+='									<span class="brand">'+item.brandEnm+'</span>';
+				html+='								</p>';
+				html+='								<p>';
+				html+='									<span class="name">'+item.goodsNm+'</span>																';
+				html+='								</p>';
+				html+='							</a>';
+				html+='						</div>';
+				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+='							</div>';
+				html+='						</div>';
+				html+='					</div>';
+				html+='					<div class="button_box">';
+				if (item.admRpl == null || item.admRpl == '') {
+					html+='						<p><button type="button" class="btn btn_default btn_sm"><span>리뷰 수정</span></button></p>';
+				}
+				html+='						<p><button type="button" class="btn btn_default btn_sm"><span>리뷰 삭제</span></button></p>';
+				html+='					</div>';
+				html+='				</div>';
+				html+='				<div class="order_review">';
+				html+='					<div class="review">';
+				html+='						<div class="info_box">';
+				html+='							<div class="star_score">';
+				html+='								<span class="star">';
+				html+='									<em class="progbar" style="width:'+(item.score*20)+'%;"></em>';
+				html+='								</span>';
+				html+='							</div>';
+				html+='							<div class="writer">';
+				html+='								<span class="wr_date">'+item.regDt+'</span>';
+				html+='							</div>';
+				html+='						</div>';
+				html+='						<div class="response_box">';
+				html+='							<div>';
+				html+='								<dl>';
+				html+='									<div>';
+				html+='										<dt>구매옵션</dt>';
+				html+='										<dd>'+item.optCd1+' / '+item.optCd2+'</dd>';
+				html+='									</div>';
+				html+='								</dl>';
+				html+='							</div>';
+				html+='							<div>';
+				html+='								<dl>';
+				html+='									<div>';
+				html+='										<dt>키/몸무게</dt>';
+				html+='										<dd>'+item.weight+'cm/'+item.height+'kg</dd>';
+				html+='									</div>';
+				if (item.sizeGb == 'T' || item.sizeGb == 'B' || item.sizeGb == 'S') {
+					html+='									<div>';
+					html+='										<dt>사이즈</dt>';
+					html+='										<dd>'+item.scoreSize+'</dd>';
+					html+='									</div>';
+					html+='									<div>';
+					html+='										<dt>컬러</dt>';
+					html+='										<dd>'+item.scoreColor+'</dd>';
+					html+='									</div>';
+				}
+				if (item.sizeGb == 'T' || item.sizeGb == 'B') {
+					html+='									<div>';
+					html+='										<dt>핏</dt>';
+					html+='										<dd>'+item.scoreFit+'</dd>';
+					html+='									</div>';
+					html+='									<div>';
+					html+='										<dt>두께감</dt>';
+					html+='										<dd>'+item.scoreThick+'</dd>';
+					html+='									</div>';
+				}
+				if (item.sizeGb == 'S') {
+					html+='									<div>';
+					html+='										<dt>무게감</dt>';
+					html+='										<dd>'+item.scoreWeight+'</dd>';
+					html+='									</div>';
+					html+='									<div>';
+					html+='										<dt>볼넓이</dt>';
+					html+='										<dd>'+item.scoreBall+'</dd>';
+					html+='									</div>';
+				}
+				html+='								</dl>';
+				html+='							</div>';
+				html+='						</div>';
+				if (attachList != null && attachList.length >0) {
+					for (var i = 0; i < attachList.length; i++) {
+						if (attachList[i].reviewSq == item.reviewSq) {
+							html+='						<div class="photo_box">';
+							html+='							<div class="photo_list">';
+							html+='								<ul>';
+							html+='									<li>';
+							html+='										<a href="">';
+							html+='											<div class="pic">';
+							if (attachList[i].fileGb == 'M') {
+								html+='												<span class="thumb mov" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+							}else{
+								html+='												<span class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+							}
+							html+='											</div>';
+							html+='										</a>';
+							html+='									</li>';
+							html+='								</ul>';
+							html+='							</div>';
+							html+='						</div>';
+						}
+					}
+					
+				}
+				html+='						<div class="txt_review_box" id="admin_'+item.reviewSq+'">';
+				html+='							<p>'+item.reviewContent+'</p>';
+				html+='						</div>';
+				
+				if (item.admRpl != null && item.admRpl != '') {
+					html+='						<div class="reply_box" >';
+					html+='							<div class="reply">';
+					html+='								<div class="reply_writer">';
+					html+='									<span class="wr_name">관리자</span>';
+					html+='									<span class="wr_date">'+item.admRplDt+'</span>';
+					html+='								</div>';
+					html+='								<div class="reply_txt">';
+					html+='									<p>'+item.admRpl+'</p>';
+					html+='								</div>';
+					html+='							</div>';
+					html+='						</div>';
+				}
+				
+				html+='					</div>';
+				html+='				</div>';
+				html+='			</div>';
+				html+='		</div>';
+				html+='</div>	';
+	
+				
+				$('#reviewList').append(html);
+			})
+		}else{
+			$('.nodata').show();
+		}
+		// Create pagination
+		gagaPaging.createPagination(result.paging2.pageable2);
+		
+	}
+	
 	var fnReviewCreate = function(obj1,obj2,obj3) {
 		let ordNo = obj1;
 		let ordDtlNo = obj2;
 		let goodsCd = obj3;
 		
-
-		
 		cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd);
-		
+	}
+	
+	var fnMove = function(obj) {
+	  	 var offset = $("#admin_" + obj).offset();
+	  	 console.log(offset);
+        $('html, body').animate({scrollTop : offset.top}, 400);
 	}
 	</script>
 	</th:block>