Kaynağa Gözat

리뷰오류 수정

sowon4187 5 yıl önce
ebeveyn
işleme
acd7870d7d

+ 128 - 69
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -444,6 +444,9 @@
 				    ON OD.GOODS_CD = G.GOODS_CD
 				 INNER JOIN TB_BRAND B
 				    ON B.BRAND_CD = G.BRAND_CD
+				 LEFT OUTER JOIN TB_REVIEW R
+				    ON R.ORD_NO = OD.ORD_NO
+				   AND R.ORD_DTL_NO = OD.ORD_DTL_NO
 				 LEFT JOIN TB_ITEMKIND I 
 				    ON G.ITEMKIND_CD = I.ITEMKIND_CD 
 				  LEFT OUTER JOIN (SELECT OD.ORD_DTL_NO
@@ -459,7 +462,7 @@
 		                                   AND C.USE_YN = 'Y'
 				  WHERE 1=1
 				AND O.PAY_DT >  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL #{reviewExpireDay} 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')
+				AND R.REVIEW_SQ IS NULL
 				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 			 	AND O.SITE_CD = #{siteCd}
@@ -593,7 +596,7 @@
 		   	         , I.ITEMKIND_CD 
 			         , I.SIZE_GB 
 			         ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL #{reviewExpireDay} DAY),NOW()) AS REMAIN_DT -- 남은시간
-			          <if test="reviewStat == 'u'.toString()">
+			          <!-- <if test="reviewStat == 'u'.toString()"> -->
 			         , R.REVIEW_SQ        
 			         , R.REVIEW_GB        
 				     , R.REVIEW_TITLE     
@@ -624,7 +627,7 @@
 				     , R.ADM_RPL          
 				     , R.ADM_RPL_REG_NO   
 				     , R.ADM_RPL_DT   
-				     </if>
+				    <!--  </if> -->
 				  FROM TB_ORDER O
 				 INNER JOIN TB_ORDER_DETAIL OD
 				    ON O.ORD_NO = OD.ORD_NO
@@ -639,11 +642,11 @@
 				    ON B.BRAND_CD = G.BRAND_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 
+				 <!-- <if test="reviewStat == 'u'.toString()"> -->
+				 LEFT 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>                          
+			      <!-- </if>  -->                         
 				  LEFT OUTER JOIN (SELECT OD.ORD_DTL_NO
 										, SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
 									 FROM TB_ORDER_CHANGE_DETAIL OCD
@@ -659,12 +662,12 @@
 				AND O.PAY_DT >  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -#{reviewExpireDay} DAY), '%Y%M%D%H%I%S') 
 				<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')
+					AND R.REVIEW_SQ IS NOT NULL
 					</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')
+					AND R.REVIEW_SQ IS NULL
 					</otherwise>
-				</choose>
+				</choose> 
 				AND O.CUST_NO = #{custNo}
 				AND O.DISP_YN = 'Y'
 			 	AND O.SITE_CD = 'G000_10'
@@ -698,60 +701,62 @@
 		SELECT  COUNT(*) AS CNT 
 		FROM
 		(
-			SELECT 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 
-			      ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL #{reviewExpireDay} 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 IN ('G013_70','G013_50','G013_60') --  구매 확정인것만
-			                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 IN ('G013_70','G013_50','G013_60')
-			                INNER JOIN TB_GOODS G ON G.GOODS_CD = OD.GOODS_CD 
-			                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  -#{reviewExpireDay} 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 = #{custNo}
-				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 
+		     SELECT 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 
+		           ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL #{reviewExpireDay} 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 IN ('G013_70','G013_50','G013_60') --  구매 확정인것만
+		                     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 IN ('G013_70','G013_50','G013_60')
+		                     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 OUTER JOIN TB_REVIEW R  ON R.ORD_NO = OD.ORD_NO
+		                                          AND R.ORD_DTL_NO = OD.ORD_DTL_NO
+		     WHERE 1=1
+		     	AND O.PAY_DT <![CDATA[>]]>  DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL  -#{reviewExpireDay} DAY), '%Y%M%D%H%I%S') <!--  60 일이내것만 -->
+		     	AND O.CUST_NO = #{custNo}
+		     	AND O.DISP_YN = 'Y'
+		     	AND R.REVIEW_SQ IS NULL
+		     	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>
@@ -824,12 +829,66 @@
 	
 	<select id="getAlreadyReviewCount" parameterType="Review" resultType="int">
 		/* TsfReivew.getAlreadyReviewCount */
-		SELECT COUNT(*) AS COUNT
-		FROM TB_REVIEW R
-		WHERE 1=1
-		 AND CUST_NO = #{custNo}
-		 AND DEL_YN = 'N'
-		 AND DISP_YN = 'Y'
+		SELECT  COUNT(*) AS CNT 
+		FROM
+		(
+			SELECT 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 
+			      ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL 60 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 IN ('G013_70','G013_50','G013_60') --  구매 확정인것만
+			                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 IN ('G013_70','G013_50','G013_60')
+			                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
+			WHERE 1=1
+				AND O.CUST_NO = #{custNo}
+				AND O.DISP_YN = 'Y'
+				AND R.DEL_YN = 'N'
+				AND R.DISP_YN = 'Y'
+			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
 	</select>
 	
 	<select id="getAlreadyReviewList" parameterType="Review" resultType="Goods">

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -54,7 +54,7 @@
 									<th:block th:each="goodsImg, status : ${goodsImgList}">
 										<div class="swiper-slide" th:classappend="${status.first and videoYn == 'N'}? 'on' : ''"  th:with="count=${(videoYn == 'Y')?  (status.count +1): status.count }"
 																th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1.') 
-																		or #strings.contains(goodsImg.sysImgNm,'_L1.')
+					`													or #strings.contains(goodsImg.sysImgNm,'_L1.')
 																		or #strings.contains(goodsImg.sysImgNm,'_L2.'))}">
 											<a th:href="${'#navLocate'+ count}">
 												<span class="thumb">

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

@@ -251,7 +251,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" 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="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>';