jsh77b преди 4 години
родител
ревизия
eb401598b6

+ 10 - 1
src/main/java/com/style24/front/biz/dao/TsfReviewDao.java

@@ -198,7 +198,16 @@ public interface TsfReviewDao {
 	void saveReviewAttach(ReviewAttach reviewAttach);
 	
 	/**
-	 * 리뷰 포인트 지급 확인
+	 * 2021.08.11 포인트 지급 이번달 1일부터 31일 사이의 포인트지급 카운트
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 8. 11
+	 */
+	int getReviewPointGiveMonthCount(Review review);
+	
+	/**
+	 * 2021.08.11 포인트 지급은 한개의 상품만 가능
 	 * @param review
 	 * @return 
 	 * @author sowon

+ 47 - 31
src/main/java/com/style24/front/biz/service/TsfReviewService.java

@@ -170,12 +170,16 @@ public class TsfReviewService {
 	 * @since 2021. 3. 25
 	 */
 	@Transactional("shopTxnManager")
-	public void saveMypageReview(Review review) {
+	public String saveMypageReview(Review review) {
+		
+		String resultStr = "SUCESS";
+		
 		review.setDispYn("Y");
 		review.setDelYn("N");
 		review.setConfirmYn("Y");
 		review.setRegNo(TsfSession.getInfo().getCustNo());
 		review.setUpdNo(TsfSession.getInfo().getCustNo());
+		
 		if (review.getKufKeyArr() == null && review.getOrgFileNmArr() == null) {
 			review.setPntGiveStat("G043_30");
 			review.setReviewGb("R");
@@ -241,41 +245,53 @@ public class TsfReviewService {
 			}
 		}
 		
-		int count = reviewDao.getReviewPointGiveCount(review);
-		// 포인트 지급해 준 적 없을때 만 지급
-		if (count ==  0) {
-			int textReviewPnt = envsetService.getTextReviewPoint(TscConstants.Site.STYLE24.value());
-			int photoReviewPnt = envsetService.getPhotoReviewPoint(TscConstants.Site.STYLE24.value());
+		// 2021.08.11 
+		// @ 1달에 10번만 포인트 지급
+		int monthCount = reviewDao.getReviewPointGiveMonthCount(review);
+		if (monthCount < 10) {
 			
-			Point point = new Point();
-			point.setCustNo(TsfSession.getInfo().getCustNo());
-			point.setOccurGb(TscConstants.PointOccurGb.REVIEW_POINT.value());
-			point.setOccurDtlDesc("상품평포인트 지급");
-			point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_COMPLETE.value());
-			point.setOrdNo(review.getOrdNo());
-			point.setOrdDtlNo(review.getOrdDtlNo());
-			if (review.getKufKeyArr() == null && review.getOrgFileNmArr() == null) {
-				// 상품평만 적었을 경우
-				point.setGvPntAmt(textReviewPnt);
-				point.setRmPntAmt(textReviewPnt);
-				reviewDao.createReviewPoint(point);
-				point.setPntAmt(textReviewPnt);
-				point.setReviewSq(review.getReviewSq());
-				reviewDao.createReviewPointHst(point);
-			}else if(review.getKufKeyArr() == null && review.getOrgFileNmArr() != null) {
-				// 상품평 + 사진
+			// @ 한가지상품을 여러번 주문을 했어도 포인트 지급은 한번으로 수정
+			int goodsCount = reviewDao.getReviewPointGiveCount(review);
+			if (goodsCount < 1) {
+				int textReviewPnt = envsetService.getTextReviewPoint(TscConstants.Site.STYLE24.value());
+				int photoReviewPnt = envsetService.getPhotoReviewPoint(TscConstants.Site.STYLE24.value());
+				
+				Point point = new Point();
 				point.setCustNo(TsfSession.getInfo().getCustNo());
-				point.setGvPntAmt(photoReviewPnt);
-				point.setRmPntAmt(photoReviewPnt);
-				reviewDao.createReviewPoint(point);
-				point.setPntAmt(photoReviewPnt);
-				point.setReviewSq(review.getReviewSq());
-				reviewDao.createReviewPointHst(point);
+				point.setOccurGb(TscConstants.PointOccurGb.REVIEW_POINT.value());
+				point.setOccurDtlDesc("상품평포인트 지급");
+				point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_COMPLETE.value());
+				point.setOrdNo(review.getOrdNo());
+				point.setOrdDtlNo(review.getOrdDtlNo());
+				
+				if (review.getKufKeyArr() == null && review.getOrgFileNmArr() == null) {
+					// 상품평만 적었을 경우
+					point.setGvPntAmt(textReviewPnt);
+					point.setRmPntAmt(textReviewPnt);
+					reviewDao.createReviewPoint(point);
+					point.setPntAmt(textReviewPnt);
+					point.setReviewSq(review.getReviewSq());
+					reviewDao.createReviewPointHst(point);
+				} else if(review.getKufKeyArr() == null && review.getOrgFileNmArr() != null) {
+					// 상품평 + 사진
+					point.setCustNo(TsfSession.getInfo().getCustNo());
+					point.setGvPntAmt(photoReviewPnt);
+					point.setRmPntAmt(photoReviewPnt);
+					reviewDao.createReviewPoint(point);
+					point.setPntAmt(photoReviewPnt);
+					point.setReviewSq(review.getReviewSq());
+					reviewDao.createReviewPointHst(point);
+				}
+				
+				reviewDao.updateMypageReviewConfimYn(review);
+			} else {
+				resultStr = "FAIL";
 			}
+		} else {
+			resultStr = "FAIL";
 		}
 		
-		reviewDao.updateMypageReviewConfimYn(review);
-		
+		return resultStr;
 	}
 		
 	/**

+ 5 - 3
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -1848,9 +1848,11 @@ public class TsfMypageController extends TsfBaseController {
 		GagaMap result = new GagaMap();
 		review.setCustNo(TsfSession.getInfo().getCustNo());
 
-		reviewService.saveMypageReview(review);
-		result.set("status", "200");
-
+		String resultStr = reviewService.saveMypageReview(review);
+		
+		result.set("status"		, "200");
+		result.set("resultStr"	, resultStr);
+		
 		return result;
 	}
 	

+ 25 - 9
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -1217,18 +1217,34 @@
 		)
 	</insert>
 	
-	<!-- 포인트 지급 전 확인 -->
+	<!-- 2021.08.11 포인트 지급 이번달 1일부터 31일 사이의 포인트지급 카운트 -->
+	<select id="getReviewPointGiveMonthCount" parameterType="Review" resultType="int">
+		/* TsfReivew.getReviewPointGiveMonthCount */	
+		SELECT COUNT(*) AS COUNT
+		FROM   TB_REVIEW RV
+		WHERE  1=1 
+		AND    RV.PNT_GIVE_STAT = 'G043_30'
+		AND    RV.CUST_NO = #{custNo}
+		AND    RV.REG_DT BETWEEN LAST_DAY(NOW() - INTERVAL -1 MONTH) AND LAST_DAY(NOW())	
+	</select>
+		
+	<!-- 2021.08.11 포인트 지급은 한개의 상품만 가능 -->
 	<select id="getReviewPointGiveCount" parameterType="Review" resultType="int">
 		/* TsfReivew.getReviewPointGiveCount */	
 		SELECT COUNT(*) AS COUNT
-		FROM TB_REVIEW 
-		WHERE CUST_NO = #{custNo}
-		-- AND DEL_YN = 'Y'
-		AND PNT_GIVE_STAT = 'G043_30'
-		AND ORD_NO        = #{ordNo}
-		AND ORD_DTL_NO    = #{ordDtlNo}
-		AND GOODS_CD      = #{goodsCd}
-		AND REVIEW_SQ    != #{reviewSq}
+		FROM   TB_REVIEW RV
+		WHERE  1=1 
+		AND    RV.PNT_GIVE_STAT = 'G043_30'
+		AND    RV.CUST_NO = #{custNo}
+		AND    EXISTS (
+		    SELECT 1
+		    FROM   TB_ORDER_DETAIL OD
+		    WHERE  1=1
+		    AND    OD.ORD_NO = #{ordNo}
+		    AND    OD.ORD_DTL_NO = #{ordDtlNo}
+		    AND    OD.GOODS_CD = RV.GOODS_CD
+		)
+		AND    RV.REVIEW_SQ    != #{reviewSq}
 	</select>
 	
 	<insert id="createReviewPoint" parameterType="Point" useGeneratedKeys="true" keyProperty="custPntSq">

+ 22 - 11
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html

@@ -103,7 +103,7 @@
 												<th>몸무게</th>
 												<td>
 													<div class="form_field rev_height">
-														<input type="number" pattern="\d*" type="tel" class="form_control" oninput='handleOnInput(this, 3)' id="weight" name="weight" data-valid-type="numeric" placeholder="몸무게를 숫자만 입력해주세요."><span>kg</span>
+														<input type="number" pattern="\d*" class="form_control" oninput='handleOnInput(this, 3)' id="weight" name="weight" data-valid-type="numeric" placeholder="몸무게를 숫자만 입력해주세요."><span>kg</span>
 													</div>
 												</td>
 											</tr>
@@ -436,19 +436,30 @@ var reviewUpdate = function() {
      	gagajf.ajaxFormSubmit("/mypage/review/update", '#reviewForm', fnUpdateCallback);
      }
  });
-	
 }
+
 var fnSaveCallback = function (result) {
+	// 2021.08.11
 	if(result.status == "200"){
-		if (document.getElementsByName("kufKeyArr").length>0 || document.getElementsByName("orgFileNmArr").length>0) {
-			mcxDialog.confirm("상품리뷰를 등록 하였습니다. 350P 적립 예정입니다.", {
-				sureBtnText: "확인",
-				sureBtnClick: function() { 
-					cfnGoToPage(_PAGE_MYPAGE_REVIEW);
-				}
-			});
-		}else{
-			mcxDialog.confirm("상품리뷰를 등록 하였습니다. 150P 적립 예정입니다.", {
+		if (result.resultStr == "SUCESS") {
+			if (document.getElementsByName("kufKeyArr").length>0 || document.getElementsByName("orgFileNmArr").length>0) {
+				mcxDialog.confirm("상품리뷰를 등록 하였습니다. 350P 적립 예정입니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() { 
+						cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+					}
+				});
+			}else{
+				mcxDialog.confirm("상품리뷰를 등록 하였습니다. 150P 적립 예정입니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() { 
+						cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+					}
+				});
+			}
+		}
+		else {
+			mcxDialog.confirm("상품리뷰를 등록 하였습니다.", {
 				sureBtnText: "확인",
 				sureBtnClick: function() { 
 					cfnGoToPage(_PAGE_MYPAGE_REVIEW);

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

@@ -248,7 +248,7 @@
 						html += '					<span class="wr_date">'+item.admRplDt+'</span>\n';
 						html += '				</div>\n';
 						html += '				<div class="reply_txt">\n';
-						html += '					<p>'+item.admRpl.escapeHtml()+'</p>\n';
+						html += '					<p style="white-space:pre;">'+item.admRpl.escapeHtml()+'</p>\n';
 						html += '				</div>\n';
 						html += '			</div>\n';
 						html += '		</div>\n';

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

@@ -489,10 +489,6 @@ var reviewCreate = function () {
         	gagajf.ajaxFormSubmit($('#reviewForm').prop('action'), '#reviewForm', fnSaveCallback, true);
         }
     });
-	
-	
-	
-	
 }
 
 // 리뷰 수정
@@ -520,19 +516,30 @@ var reviewUpdate = function() {
         	gagajf.ajaxFormSubmit("/mypage/review/update", '#reviewForm', fnUpdateCallback);
         }
     });
-	
 }
+
 var fnSaveCallback = function (result) {
+	// 2021.08.11
 	if(result.status == "200"){
-		if (document.getElementsByName("kufKeyArr").length>0 || document.getElementsByName("orgFileNmArr").length>0) {
-			mcxDialog.confirm("상품리뷰를 등록 하였습니다. 350P 적립 예정입니다.", {
-				sureBtnText: "확인",
-				sureBtnClick: function() { 
-					cfnGoToPage(_PAGE_MYPAGE_REVIEW);
-				}
-			});
-		}else{
-			mcxDialog.confirm("상품리뷰를 등록 하였습니다. 150P 적립 예정입니다.", {
+		if (result.resultStr == "SUCESS") {
+			if (document.getElementsByName("kufKeyArr").length>0 || document.getElementsByName("orgFileNmArr").length>0) {
+				mcxDialog.confirm("상품리뷰를 등록 하였습니다. 350P 적립 예정입니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() { 
+						cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+					}
+				});
+			}else{
+				mcxDialog.confirm("상품리뷰를 등록 하였습니다. 150P 적립 예정입니다.", {
+					sureBtnText: "확인",
+					sureBtnClick: function() { 
+						cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+					}
+				});
+			}
+		}
+		else {
+			mcxDialog.confirm("상품리뷰를 등록 하였습니다.", {
 				sureBtnText: "확인",
 				sureBtnClick: function() { 
 					cfnGoToPage(_PAGE_MYPAGE_REVIEW);

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

@@ -348,7 +348,7 @@
 					html+='									<span class="wr_date">'+item.admRplDt+'</span>\n';
 					html+='								</div>\n';
 					html+='								<div class="reply_txt">\n';
-					html+='									<p>'+item.admRpl.escapeHtml()+'</p>\n';
+					html+='									<p style="white-space:pre;">'+item.admRpl.escapeHtml()+'</p>\n';
 					html+='								</div>\n';
 					html+='							</div>\n';
 					html+='						</div>\n';