Procházet zdrojové kódy

마이페이지 리뷰 수정 등록

sowon4187 před 5 roky
rodič
revize
0a60f6b155

+ 11 - 0
src/main/java/com/style24/front/biz/dao/TsfReviewDao.java

@@ -160,5 +160,16 @@ public interface TsfReviewDao {
 	 */
 	void reviewAttachDelete(Review review);
 	
+	/**
+	 * 마이페이지 댓글 삭제건이 있는지 확인
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 28
+	 */
+	Review reviewDeleteConfirm(Review review);
+	
+	
+	
 	
 }

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

@@ -194,6 +194,16 @@ public class TsfReviewService {
 		reviewDao.reviewAttachDelete(review);
 	}
 	
+	/**
+	 * 마이페이지 댓글 삭제건이 있는지 확인
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 3. 28
+	 */
+	public Review reviewDeleteConfirm(Review review) {
+		return reviewDao.reviewDeleteConfirm(review);
+	}
 	
 	
 	

+ 9 - 2
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -996,8 +996,9 @@ public class TsfMypageController extends TsfBaseController {
 	 * @author sowon	
 	 * @since 2021. 03. 25
 	 */
-	@GetMapping("/review/create/form/{ordNo}/{ordDtlNo}/{goodsCd}")
-	public ModelAndView mypageReviewCreateForm(@PathVariable(value = "ordNo") Integer ordNo,@PathVariable(value = "ordDtlNo") Integer ordDtlNo,@PathVariable(value = "goodsCd") String goodsCd) {
+	@GetMapping("/review/create/form/{ordNo}/{ordDtlNo}/{goodsCd}/{reviewStat}")
+	public ModelAndView mypageReviewCreateForm(@PathVariable(value = "ordNo") Integer ordNo,@PathVariable(value = "ordDtlNo") Integer ordDtlNo
+			,@PathVariable(value = "goodsCd") String goodsCd, @PathVariable(value = "reviewStat") String reviewStat) {
 		Review review = new Review();
 		ModelAndView mav = new ModelAndView();
 		
@@ -1006,7 +1007,9 @@ public class TsfMypageController extends TsfBaseController {
 		review.setOrdNo(ordNo);
 		review.setOrdDtlNo(ordDtlNo);
 		review.setGoodsCd(goodsCd);
+		review.setReviewStat(reviewStat);
 		
+		mav.addObject("reviewStat", reviewStat);
 		mav.addObject("reviewInfo", reviewService.getReviewGoodsInfo(review));
 		
 		mav.setViewName(super.getDeviceViewName("mypage/MypageReviewCreateForm"));
@@ -1026,6 +1029,10 @@ public class TsfMypageController extends TsfBaseController {
 	public GagaMap mypageReviewSave(@RequestBody Review review) {
 
 		GagaMap result = new GagaMap();
+		if(reviewService.reviewDeleteConfirm(review).getCount() > 0) {
+			review.setReviewSq(reviewService.reviewDeleteConfirm(review).getReviewSq());
+		}
+		
 		reviewService.saveMypageReview(review);
 		result.set("status", "200");
 

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

@@ -85,6 +85,7 @@ public class Review extends TscBaseDomain {
 	private int cnt;				// 작성가능한 리뷰 카운트
 	private int count;				// 작성한 리뷰 카운트
 	private String siteCd;
+	private String reviewStat;		// 리뷰상태(수정or등록)
 	
 	// Masking
 	public String getMaskingCustId() {

+ 79 - 49
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -341,28 +341,19 @@
 			      ,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'
+			                  	                 AND ODI.ORD_DTL_STAT = 'G013_70'
 			                INNER JOIN TB_GOODS G ON G.GOODS_CD = OD.GOODS_CD 
 			                INNER JOIN TB_BRAND B ON B.BRAND_CD = G.BRAND_CD
 			                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 DISP_YN = 'Y')
-				AND O.CUST_NO =100011
+				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 				AND O.SITE_CD = #{siteCd}
-				<!-- <if test="ordNo!=null and ordNo != ''">
-				AND O.ORD_NO = #{ordNo}
-				</if>
-				<if test="ordDtlNo!=null and ordDtlNo != ''">
-				AND OD.ORD_DTL_NO = #{ordDtlNo}
-				</if>
-				<if test="goodsCd!=null and goodsCd!=''">
-				AND G.GOODS_CD = #{goodsCd}
-				</if> -->
 			GROUP BY O.ORD_NO 
 			      ,O.ORD_NM 
 			      ,O.PAY_DT 
@@ -389,7 +380,7 @@
 	
 	<!-- 마이페이지 리뷰작성 상품데이타 -->
 	<select id="getReviewGoodsInfo" parameterType="Review" resultType="Goods">
-		/* TsfReivew.getCompleteReviewList */
+		/* TsfReivew.getReviewGoodsInfo */
 		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
@@ -417,19 +408,63 @@
 			      ,I.ITEMKIND_NM 
 			      ,I.ITEMKIND_CD 
 			      ,I.SIZE_GB 
+			      <if test="reviewStat == 'u'.toString()">
+			      ,R.REVIEW_SQ        
+			      ,R.REVIEW_GB        
+				  ,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       
+				  </if>
 			      ,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'
+			                  	                AND ODI.ORD_DTL_STAT = 'G013_70'
 			                INNER JOIN TB_GOODS G ON G.GOODS_CD = OD.GOODS_CD 
 			                INNER JOIN TB_BRAND B ON B.BRAND_CD = G.BRAND_CD
-			                LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD 
+			                LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
+			               <if test="reviewStat == 'u'.toString()">
+			                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
+			               </if> 
 			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 DISP_YN = 'Y')
-				AND O.CUST_NO =100011
+				<choose>
+					<when test="reviewStat == 'u'.toString()">
+					AND O.ORD_NO IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y')
+					</when>
+					<otherwise>
+					AND O.ORD_NO NOT IN (SELECT R.ORD_NO FROM TB_REVIEW R WHERE R.DEL_YN = 'N' AND DISP_YN = 'Y')
+					</otherwise>
+				</choose>
+				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 				AND O.SITE_CD = #{siteCd}
 				<if test="ordNo!=null and ordNo != ''">
@@ -441,26 +476,6 @@
 				<if test="goodsCd!=null and goodsCd!=''">
 				AND G.GOODS_CD = #{goodsCd}
 				</if>
-			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>
@@ -502,7 +517,7 @@
 			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 DISP_YN = 'Y')
-				AND O.CUST_NO = 100011
+				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 				AND O.SITE_CD = #{siteCd}
 			GROUP BY O.ORD_NO 
@@ -532,7 +547,8 @@
 	<select id="saveMypageReview" parameterType="Review" resultType="Review">
 		/* TsfReivew.saveMypageReview */
 		INSERT INTO TB_REVIEW (
-						GOODS_CD
+		                REVIEW_SQ
+					  ,	GOODS_CD
 					  , CUST_NO
 					  , ORD_NO
 					  , ORD_DTL_NO
@@ -555,8 +571,9 @@
 					  , UPD_DT
 					)
 					VALUES (
-					     	#{goodsCd}
-						  , 100011
+					        #{reviewSq}
+					      ,	#{goodsCd}
+						  , #{custNo}
 						  , #{ordNo}
 						  , #{ordDtlNo}
 						  , #{reviewTitle}
@@ -578,8 +595,7 @@
 						  , now()
 					)
 					ON DUPLICATE KEY UPDATE
-					
-			                REVIEW_TITLE   =  #{reviewTitle}
+						   DEL_YN = 'N'
 			               ,REVIEW_CONTENT =  #{reviewContent} 
 			               ,SCORE          =  #{score}           
 			               ,HEIGHT         =  #{height}          
@@ -599,7 +615,7 @@
 		SELECT COUNT(*) AS COUNT
 		FROM TB_REVIEW R
 		WHERE 1=1
-		 AND CUST_NO = 100011
+		 AND CUST_NO = #{custNo}
 		 AND DEL_YN = 'N'
 		 AND DISP_YN = 'Y'
 	</select>
@@ -693,7 +709,7 @@
 			                              		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.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 				AND O.SITE_CD = #{siteCd}
 			GROUP BY O.ORD_NO 
@@ -765,7 +781,7 @@
 		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.CUST_NO = #{custNo}
 		 AND R.DEL_YN = 'N'
 		 AND R.DISP_YN = 'Y'
 		 AND RA.DEL_YN = 'N'
@@ -777,7 +793,7 @@
 		     , R.REVIEW_SQ 
 		FROM TB_REVIEW R
 		WHERE 1=1
-		 AND CUST_NO = 100011
+		 AND CUST_NO = #{custNo}
 		 AND DEL_YN = 'N'
 		 AND DISP_YN = 'Y' 
 		 AND ADM_RPL IS NOT NULL
@@ -785,18 +801,32 @@
 	</select>
 	
 	<update id="reviewDelete" parameterType="Review">
+		/* TsfReivew.reviewDelete */
 		UPDATE TB_REVIEW R
 		SET R.DEL_YN = 'Y'
 		WHERE 1=1
  		AND R.REVIEW_SQ = #{reviewSq}
  		AND R.ADM_RPL IS NULL
- 		AND R.CUST_NO = 100011
+ 		AND R.CUST_NO = #{custNo}
 	</update>
 	
 	<update id="reviewAttachDelete" parameterType="Review">
+	   /* TsfReivew.reviewAttachDelete */
 		UPDATE TB_REVIEW_ATTACH RA
 		SET RA.DEL_YN = 'Y'
 		WHERE 1=1
  		AND RA.REVIEW_SQ = #{reviewSq}
 	</update>
+	
+	<select id="reviewDeleteConfirm" parameterType="Review" resultType="Review">
+		/* TsfReivew.reviewDeleteConfirm */
+		SELECT IFNULL(R.REVIEW_SQ,0) AS REVIEW_SQ, COUNT(*) AS COUNT
+		FROM TB_REVIEW R
+		WHERE 1=1
+		  AND R.ORD_NO = #{ordNo}
+		  AND R.ORD_DTL_NO =#{ordDtlNo}
+		  AND R.DEL_YN ='Y'
+		  AND R.GOODS_CD = #{goodsCd}
+		  AND R.CUST_NO = #{custNo}
+	</select>
 </mapper>

+ 120 - 19
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -42,12 +42,13 @@
 									<li>리뷰 작성시 욕설, 비방, 선정적인 내용등이 있을 경우 통보 없이 관리자에 의해 삭제 될 수 있습니다.</li>
 								</ul>
 							</div>
-							<!-- <th:block th:each="review, status : ${completeReviewList}" > -->
 							<form class="form_wrap" id="reviewForm" th:action="@{'/mypage/review/save'}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
 								<input type="hidden" name="ordNo" th:value="${reviewInfo.ordNo}">
 								<input type="hidden" name="ordDtlNo" th:value="${reviewInfo.ordDtlNo}">
 								<input type="hidden" name="goodsCd" th:value="${reviewInfo.goodsCd}">
 								<input type="hidden" name="custNo" th:value="${reviewInfo.custNo}">
+								<input type="hidden" name="reviewStat" th:value="${reviewStat}">
+								<input type="hidden" name="reviewSq" th:if="${reviewStat == 'u'}" th:value="${reviewInfo.reviewSq}">
 								<h4 class="subH3">리뷰쓰기</h4>
 								<div class="part_goods">
 									<div class="goods_cont">
@@ -152,7 +153,7 @@
 									</table>
 								</div>
 								
-								<!-- <th:block th:if="${review.sizeGb == 'T' or review.sizeGb == 'B' or review.sizeGb == 'S'}"> --> 
+								<th:block th:if="${reviewInfo.sizeGb == 'T' or reviewInfo.sizeGb == 'B' or reviewInfo.sizeGb == 'S'}">
 								<h4 class="subH3">상품 평가</h4>
 								<div class="tbl type1">
 									<table>
@@ -160,7 +161,7 @@
 											<col width="170">
 											<col width="*">
 										</colgroup>  
-										<!-- <th:block th:if="${review.sizeGb == 'T' or review.sizeGb == 'B' or review.sizeGb == 'S'}"> --> 
+										<th:block th:if="${reviewInfo.sizeGb == 'T' or reviewInfo.sizeGb == 'B' or reviewInfo.sizeGb == 'S'}"> 
 										<tr>
 											<th>
 												사이즈
@@ -207,8 +208,8 @@
 												</div>
 											</td>
 										</tr>
-										<!-- </th:block>
-										<th:block th:if="${review.sizeGb == 'T' or review.sizeGb == 'B'}"> --> 
+										</th:block>
+										<th:block th:if="${reviewInfo.sizeGb == 'T' or reviewInfo.sizeGb == 'B'}"> 
 										<tr>
 											<th>
@@ -255,8 +256,8 @@
 												</div>
 											</td>
 										</tr>
-										<!-- </th:block>
-										<th:block th:if="${review.sizeGb == 'S'}">  -->
+										</th:block>
+										<th:block th:if="${reviewInfo.sizeGb == 'S'}"> 
 										<tr>
 											<th>
 												무게감
@@ -303,10 +304,10 @@
 												</div>
 											</td>
 										</tr>
-										<!-- </th:block> -->
+										</th:block>
 									</table>
 								</div>
-								<!-- </th:block> -->
+								</th:block>
 								<h4 class="subH3">고객님의 리뷰가 다른 고객들에게 도움이 될 수 있어요!</h4>
 								<div class="tbl type1">
 									<table>
@@ -322,7 +323,7 @@
 												<div class="input_txt_review">
 													<div class="form_field">
 														<div class="input_wrap">
-															<textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" placeholder="·&nbsp;리뷰 내용은 최소 10자 이상 입력해 주세요.&#13;&#10;·&nbsp;상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다.&#13;&#10;·&nbsp;리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;"></textarea>
+															<textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" placeholder="·&nbsp;리뷰 내용은 최소 10자 이상 입력해 주세요.&#13;&#10;·&nbsp;상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다.&#13;&#10;·&nbsp;리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;" ></textarea>
 															<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/500</p>			
 														</div> 
 													</div>
@@ -360,10 +361,10 @@
 
 								<div class="btn_footer_area">
 									<button type="button" class="btn btn_default btn_md" onclick="reviewCancel()"><span>취소</span></button>
-									<button type="button" id="btn_review_registration" class="btn btn_dark btn_md" onclick="reviewCreate()"><span>리뷰 등록</span></button>
+									<button type="button" id="btn_review_registration" class="btn btn_dark btn_md" th:if="${reviewStat == 'c'}" onclick="reviewCreate()"><span>리뷰 등록</span></button>
+									<button type="button" id="btn_review_registration" class="btn btn_dark btn_md" th:if="${reviewStat == 'u'}" onclick="reviewUpdate()"><span>리뷰 수정</span></button>
 								</div>		
 							</form>	
-							<!-- </th:block>	 -->					
 						</div>
 					</div>
 					<!-- // CONT-BODY -->					
@@ -372,7 +373,8 @@
 
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
-let reviewList = [[${completeReviewList}]];
+let reviewList = [[${reviewInfo}]];
+let reviewStat = [[${reviewStat}]];
 // 별점 class="on"
 var $starEls = $('#star button#starBtn');
 var rate = 0;
@@ -406,11 +408,14 @@ var reviewCancel = function() {
         	cfnGoToPage(_PAGE_MYPAGE_REVIEW);
         }
     });
+}
+var reviewValidation = function() {
+	
+
 }
 
 // 리뷰 등록
 var reviewCreate = function () {
-	
 	if($("#score").val()=='' || $("#score").val()==null){
 		mcxDialog.alert('별점을 선택하세요.');
 		return;
@@ -427,7 +432,7 @@ var reviewCreate = function () {
 	}
 	
 	
-	if(reviewList[0].sizeGb == 'T' || reviewList[0].sizeGb == 'B' || reviewList[0].sizeGb == 'S'){
+	if(reviewList.sizeGb == 'T' || reviewList.sizeGb == 'B' || reviewList.sizeGb == 'S'){
 		if($('#reviewForm input:radio[name=scoreSize]').prop('checked') == false){
 			mcxDialog.alert('상품 사이즈를 평가해주세요.');
 			return;
@@ -439,7 +444,7 @@ var reviewCreate = function () {
 		}
 	}
 	
-	if(reviewList[0].sizeGb == 'T' || reviewList[0].sizeGb == 'B'){
+	if(reviewList.sizeGb == 'T' || reviewList.sizeGb == 'B'){
 		if($('#reviewForm input:radio[name=scoreFit]').prop('checked') == false){
 			mcxDialog.alert('상품 핏을 평가해주세요.');
 			return;
@@ -450,7 +455,7 @@ var reviewCreate = function () {
 		}	
 	}
 	
-	if(reviewList[0].sizeGb == 'S' ){
+	if(reviewList.sizeGb == 'S' ){
 		if($('#reviewForm input:radio[name=scoreWeight]').prop('checked') == false){
 			mcxDialog.alert('상품 무게감을 평가해주세요.');
 			return;
@@ -467,6 +472,7 @@ var reviewCreate = function () {
 		return;
 	}
 	
+	
 	mcxDialog.confirm('리뷰를 등록하시겠습니까"?', {
         cancelBtnText: "취소",
         sureBtnText: "확인",
@@ -475,12 +481,53 @@ var reviewCreate = function () {
         }
     });
 	
+	
+	
+	
+}
+
+// 리뷰 수정
+var reviewUpdate = function() {
+	
+	if($("#reviewForm input[name=height]").val() == '' || $("#reviewForm input[name=height]").val() == null){
+		mcxDialog.alert('키를 입력하세요.');
+		return;
+	}
+	
+	if($("#reviewForm input[name=weight]").val() == '' || $("#reviewForm input[name=weight]").val() == null){
+		mcxDialog.alert('몸무게를 입력하세요.');
+		return;
+	}
+
+	if($('#reviewContent').val().length<10){
+		mcxDialog.alert("리뷰 내용을 10자 이상 입력해주세요.");
+		return;
+	}
+	
+	mcxDialog.confirm('리뷰를 수정하시겠습니까"?', {
+        cancelBtnText: "취소",
+        sureBtnText: "확인",
+        sureBtnClick: function(){
+        	gagajf.ajaxFormSubmit($('#reviewForm').prop('action'), '#reviewForm', fnUpdateCallback);
+        }
+    });
+	
 }
 var fnSaveCallback = function (result) {
 	if(result.status == "200"){
-		mcxDialog.alert("상품 리뷰를 등록하였습니다.");
 		//포인트 예정금액 고지해야함
 		cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+		
+		//mcxDialog.alert("상품 리뷰를 등록하였습니다.");
+	}
+}
+
+var fnUpdateCallback = function (result) {
+	if(result.status == "200"){
+		//포인트 예정금액 고지해야함
+		cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+		$("#alreadyReview").trigger('click');
+		//mcxDialog.alert("상품 리뷰를 수정하였습니다.");
 	}
 }
 
@@ -526,7 +573,61 @@ var fnChooseFile = function(obj) {
 }
 
 $(document).ready(function() {
-	
+	 if(reviewStat=='u'){
+		 var reviewScore = reviewList.score -1;
+		 $("#score").val(reviewScore);
+		 rating(reviewScore);
+		$("#reviewForm input[name=height]").val(reviewList.height);
+		$("#reviewForm input[name=weight]").val(reviewList.weight);
+		$("#reviewForm textarea[name=reviewContent]").val(reviewList.reviewContent);
+		if(reviewList.scoreSize == "1"){
+			$('#reviewForm input:radio[name=scoreSize]:radio[value="1"]').prop('checked', true);
+		}else if(reviewList.scoreSize == "2"){
+			$('#reviewForm input:radio[name=scoreSize]:radio[value="2"]').prop('checked', true);
+		}else if(reviewList.scoreSize == "3"){
+			$('#reviewForm input:radio[name=scoreSize]:radio[value="3"]').prop('checked', true);
+		}
+		
+		if(reviewList.scoreColor == "1"){
+			$('#reviewForm input:radio[name=scoreColor]:radio[value="1"]').prop('checked', true);
+		}else if(reviewList.scoreColor == "2"){
+			$('#reviewForm input:radio[name=scoreColor]:radio[value="2"]').prop('checked', true);
+		}else if(reviewList.scoreColor == "3"){
+			$('#reviewForm input:radio[name=scoreColor]:radio[value="3"]').prop('checked', true);
+		}
+		
+		if(reviewList.scoreFit == "1"){
+			$('#reviewForm input:radio[name=scoreFit]:radio[value="1"]').prop('checked', true);
+		}else if(reviewList.scoreFit == "2"){
+			$('#reviewForm input:radio[name=scoreFit]:radio[value="2"]').prop('checked', true);
+		}else if(reviewList.scoreFit == "3"){
+			$('#reviewForm input:radio[name=scoreFit]:radio[value="3"]').prop('checked', true);
+		}
+		
+		if(reviewList.scoreThick == "1"){
+			$('#reviewForm input:radio[name=scoreThick]:radio[value="1"]').prop('checked', true);
+		}else if(reviewList.scoreThick == "2"){
+			$('#reviewForm input:radio[name=scoreThick]:radio[value="2"]').prop('checked', true);
+		}else if(reviewList.scoreThick == "3"){
+			$('#reviewForm input:radio[name=scoreThick]:radio[value="3"]').prop('checked', true);
+		}
+		
+		if(reviewList.scoreWeight == "1"){
+			$('#reviewForm input:radio[name=scoreWeight]:radio[value="1"]').prop('checked', true);
+		}else if(reviewList.scoreWeight == "2"){
+			$('#reviewForm input:radio[name=scoreWeight]:radio[value="2"]').prop('checked', true);
+		}else if(reviewList.scoreWeight == "3"){
+			$('#reviewForm input:radio[name=scoreWeight]:radio[value="3"]').prop('checked', true);
+		}
+		
+		if(reviewList.scoreBall == "1"){
+			$('#reviewForm input:radio[name=scoreBall]:radio[value="1"]').prop('checked', true);
+		}else if(reviewList.scoreBall == "2"){
+			$('#reviewForm input:radio[name=scoreBall]:radio[value="2"]').prop('checked', true);
+		}else if(reviewList.scoreBall == "3"){
+			$('#reviewForm input:radio[name=scoreBall]:radio[value="3"]').prop('checked', true);
+		}
+	} 
 	// 마이페이지 LNB 설정
 	fnSetMypageLnbList(7);
 

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

@@ -76,13 +76,20 @@
 									</ul>
 								</div>																					
 							</div>
-							<div class="nodata">
+							<div class="nodata" id="nodata1">
 								<div class="txt_box">
 									<p>
 										작성 가능한 리뷰가 없습니다.<br>
 									</p>
 								</div>
-							</div> 
+							</div>
+							<div class="nodata" id="nodata2">
+								<div class="txt_box">
+									<p>
+										작성한 리뷰가 없습니다.<br>
+									</p>
+								</div>
+							</div>  
 						
 						</div>
 						
@@ -141,7 +148,8 @@
 	
 	// 주문 목록 조회 콜백
 	var fnSearchCallback1 = function(result) {
-		$('.nodata').hide();
+		$('#nodata1').hide();
+		$('#nodata2').hide();
 		
 		$('#reviewList').html('');
 		
@@ -189,7 +197,7 @@
 				$('#reviewList').append(html);
 			})
 		}else{
-			$('.nodata').show();
+			$('#nodata1').show();
 		}
 		// Create pagination
 		gagaPaging.createPagination(result.paging.pageable);
@@ -197,7 +205,8 @@
 	
 	// 주문 목록 조회 콜백
 	var fnSearchCallback2 = function(result) {
-		$('.nodata').hide();
+		$('#nodata1').hide();
+		$('#nodata2').hide();
 		
 		$('#reviewList').html('');
 		
@@ -234,7 +243,7 @@
 				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" onclick="fnReviewUpdate('+item.ordNo+','+item.ordDtlNo+','+item.goodsCd+','+item.reviewSq+')"><span>리뷰 수정</span></button></p>';
 				}
 				html+='						<p><button type="button" class="btn btn_default btn_sm" onclick="fnDeleteReview('+item.reviewSq+')"><span>리뷰 삭제</span></button></p>';
 				html+='					</div>';
@@ -351,7 +360,7 @@
 				$('#reviewList').append(html);
 			})
 		}else{
-			$('.nodata').show();
+			$('#nodata2').show();
 		}
 		// Create pagination
 		gagaPaging.createPagination(result.paging2.pageable2);
@@ -362,8 +371,9 @@
 		let ordNo = obj1;
 		let ordDtlNo = obj2;
 		let goodsCd = obj3;
+		let reviewStat = 'c';
 		
-		cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd);
+		cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd+'/'+reviewStat);
 	}
 	
 	// 스크롤 이동
@@ -385,14 +395,23 @@
 			sureBtnClick : function() {
 
 				gagajf.ajaxJsonSubmit('/mypage/review/delete', jsonData, function() {
-					if (result.status == '200') {
-						mcxDialog.alert("삭제되었습니다.");
-					}
+					
+					mcxDialog.alert("삭제되었습니다.");
+					
 					$("#alreadyReview").trigger('click');	
 				});
 			}
 		});
 	}
+	
+	// 리뷰 수정
+	var fnReviewUpdate = function(obj1,obj2,obj3) {
+		let ordNo = obj1;
+		let ordDtlNo = obj2;
+		let goodsCd = obj3;
+		let reviewStat = 'u';
+		cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd+'/'+reviewStat);
+	}
 	</script>
 	</th:block>