Browse Source

Merge branch 'develop' into bin2107

bin2107 5 years ago
parent
commit
150cf8af8c

+ 16 - 0
src/main/java/com/style24/admin/biz/dao/TsaReviewDao.java

@@ -50,6 +50,22 @@ public interface TsaReviewDao {
 	 */
 	void updateReviewUserReply(Review review);
 
+	/**
+	 * 동영상상품평포인트 생성
+	 * @param review - 상품평 정보
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	void createVideoReviewPoint(Review review);
+
+	/**
+	 * 동영상상품평포인트이력 생성
+	 * @param review - 상품평 정보
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	void createVideoReviewPointHistory(Review review);
+
 	/**
 	 * 상품평 동영상 노출 처리
 	 * @param review - 상품평 정보

+ 1 - 0
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -1566,6 +1566,7 @@ public class TsaGoodsService {
 		// 판매기간설정
 		regGoods.setSellStdt(GagaDateUtil.getToday()+"000000");
 		regGoods.setSellEddt("30001231235959");
+		regGoods.setTobeFormYn("Y");
 
 		goodsDao.createGoods(regGoods); // 상품기본 저장
 		goodsDao.createGoodsSmmary(regGoods); // 상품통계 생성

+ 26 - 0
src/main/java/com/style24/admin/biz/service/TsaReviewService.java

@@ -77,6 +77,32 @@ public class TsaReviewService {
 	 */
 	@Transactional("shopTxnManager")
 	public void updateVideoReviewDisplay(Review review) {
+		// 포인트 처리
+		// 동영상(=포토)상품평포인트금액
+		int pntAmt = envsetService.getPhotoReviewPoint(TscConstants.Site.STYLE24.value());
+		review.setGvPntAmt(pntAmt);
+		review.setRegNo(TsaSession.getInfo().getUserNo());
+		review.setUpdNo(TsaSession.getInfo().getUserNo());
+
+		// 동영상상품평포인트 생성
+		reviewDao.createVideoReviewPoint(review);
+
+		// 고객포인트일련번호 설정
+		Integer custPntSq = review.getCustPntSq();
+		if (review.getCustPntSq() == null) {
+			review.setCustPntSq(custPntSq);
+		}
+
+		review.setOccurGb(TscConstants.PointOccurGb.REVIEW_POINT.value());
+		review.setOccurDtlDesc("동영상상품평포인트 지급");
+		review.setPntAmt(pntAmt);
+		review.setPntUploadStat(TscConstants.PntUploadStat.APPLY_COMPLETE.value());
+
+		// 동영상상품평포인트이력 생성
+		reviewDao.createBestReviewPointHistory(review);
+
+		// 동영상상품평 노출 처리
+		review.setGiveDuePnt(pntAmt);
 		reviewDao.updateVideoReviewDisplay(review);
 	}
 

+ 80 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaReview.xml

@@ -162,14 +162,94 @@
 		AND    RPL_CFM_YN = 'N' /*고객이 관리자댓글 확인을 안한넘*/
 	</update>
 	
+	<!-- 동영상상품평포인트 생성-->
+	<insert id="createVideoReviewPoint" parameterType="Review" keyProperty="custPntSq">
+		/* TsaReview.createVideoReviewPoint */
+		INSERT INTO TB_CUST_POINT (
+		       CUST_PNT_SQ
+		     , CUST_NO
+		     , GV_PNT_AMT
+		     , US_PNT_AMT
+		     , RM_PNT_AMT
+		     , EXP_BE_DT
+		     , EXP_CMP_DT
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT NULL                             AS CUST_PNT_SQ
+		     , CUST_NO
+		     , #{gvPntAmt}                      AS GV_PNT_AMT
+		     , 0                                AS US_PNT_AMT
+		     , 0                                AS RM_PNT_AMT
+		     , DATE_ADD(NOW(), INTERVAL 1 YEAR) AS EXP_BE_DT
+		     , NULL                             AS EXP_CMP_DT
+		     , #{regNo}                         AS REG_NO
+		     , NOW()                            AS REG_DT
+		     , #{updNo}                         AS UPD_NO
+		     , NOW()                            AS UPD_DT
+		FROM   TB_REVIEW
+		WHERE  REVIEW_SQ = #{reviewSq}
+		AND    CONFIRM_YN = 'N' /*동영상노출처리안한넘*/
+		AND    PNT_GIVE_STAT = 'G043_10' /*포인트지급예정 상태*/
+	</insert>
+	
+	<!-- 동영상상품평포인트이력 생성-->
+	<insert id="createVideoReviewPointHistory" parameterType="Review">
+		/* TsaReview.createVideoReviewPointHistory */
+		INSERT INTO TB_CUST_POINT_HST (
+		       PNT_HST_SQ
+		     , CUST_NO
+		     , OCCUR_GB
+		     , OCCUR_DTL_DESC
+		     , PNT_AMT
+		     , CUST_PNT_SQ
+		     , ORD_NO
+		     , ORD_DTL_NO
+		     , REVIEW_SQ
+		     , SWITCH_DUE_DT
+		     , PNT_UPLOAD_STAT
+		     , PNT_UPLOAD_DT
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT NULL            AS PNT_HST_SQ
+		     , CUST_NO
+		     , #{occurGb}      AS OCCUR_GB
+		     , #{occurDtlDesc} AS OCCUR_DTL_DESC
+		     , #{pntAmt}       AS PNT_AMT
+		     , #{custPntSq}    AS CUST_PNT_SQ
+		     , ORD_NO
+		     , ORD_DTL_NO
+		     , REVIEW_SQ
+		     , NOW()            AS SWITCH_DUE_DT
+		     , #{pntUploadStat} AS PNT_UPLOAD_STAT
+		     , NOW()            AS PNT_UPLOAD_DT
+		     , #{regNo}         AS REG_NO
+		     , NOW()            AS REG_DT
+		     , #{updNo}         AS UPD_NO
+		     , NOW()            AS UPD_DT
+		FROM   TB_REVIEW
+		WHERE  REVIEW_SQ = #{reviewSq}
+		AND    CONFIRM_YN = 'N' /*동영상노출처리안한넘*/
+		AND    PNT_GIVE_STAT = 'G043_10' /*포인트지급예정 상태*/
+	</insert>
+	
 	<!-- 상품평 동영상 노출 처리 -->
 	<update id="updateVideoReviewDisplay" parameterType="Review">
 		/* TsaReview.updateVideoReviewDisplay */
 		UPDATE TB_REVIEW
 		SET    CONFIRM_YN = 'Y'
+		     , GIVE_DUE_PNT = #{giveDuePnt}
+		     , PNT_GIVE_STAT = 'G043_30' /*포인트지급반영*/
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()
 		WHERE  REVIEW_SQ = #{reviewSq}
+		AND    CONFIRM_YN = 'N' /*동영상노출처리안한넘*/
+		AND    PNT_GIVE_STAT = 'G043_10' /*포인트지급예정 상태*/
 	</update>
 	
 	<!-- 베스트상품평포인트 생성-->

+ 1 - 1
src/main/resources/config/application-tsit.yml

@@ -21,7 +21,7 @@ domain:
     front: //tdfront.style24.com
     image: //tdimage.style24.com
     cdnimage: //tdimage.style24.com
-    uximage: //tdimage.style24.com
+    uximage: //tdadmin.style24.com
 
 upload:
     dext.target.path: /TSIT/servers/files/data/style24/dext

+ 10 - 9
src/main/webapp/WEB-INF/views/goods/GoodsImageForm.html

@@ -257,17 +257,18 @@
 		str = str + '<ul class="notice ">';
 		str = str + '<em><b>* 자사 상품 이미지 파일명</b></em>';
 		str = str + '<li><b>상품메인컷</b> : 상품코드_색상코드_<b>01</b>.jpg<em>(앞)</em>,상품코드_색상코드_<b>02</b>.jpg<em>(뒤)</em></li>';
-		str = str + '<li><b>상품모델컷</b> : 상품코드_색상코드_<b>M1</b>.jpg ~ 상품코드_색상코드_<b>M5</b>.jpg</li>';
-		str = str + '<li><b>상품상세컷</b> : 상품코드_색상코드_<b>D1</b>.jpg ~ 상품코드_색상코드_<b>D5</b>.jpg</li>';
-		str = str + '<li><b>상품소재컷</b> : 상품코드_색상코드_<b>S1</b>.jpg</li>';
+		str = str + '<li><b>상품모델컷</b> : 상품코드_색상코드_<b>C1</b>.jpg ~ 상품코드_색상코드_<b>C5</b>.jpg</li>';
+		str = str + '<li><b>상품상세컷</b> : 상품코드_색상코드_<b>D1</b>.jpg ~ 상품코드_색상코드_<b>D20</b>.jpg</li>';
+		str = str + '<li><b>상품소재컷</b> : 상품코드_색상코드_<b>F1</b>.jpg</li>';
 		str = str + '<li><b>상품라벨컷</b> : 상품코드_색상코드_<b>L1</b>.jpg, (상품코드_색상코드_<b>L2</b>.jpg)</li>';
+		str = str + '<li><b>상품외부몰용</b> : 상품코드_색상코드_<b>X1</b>.jpg</li>';
 		str = str + '<br/>';
-		str = str + '<em><b>* 상품 이미지 파일명</b></em>';
-		str = str + '<li><b>상품메인컷</b> : 상품코드_색상코드_<b>01</b>.jpg<em>(앞)</em>,상품코드_색상코드_<b>02</b>.jpg<em>(뒤)</em></li>';
-		str = str + '<li><b>상품모델컷</b> : 상품코드_색상코드_<b>M1</b>.jpg ~ 상품코드_색상코드_<b>M5</b>.jpg</li>';
-		str = str + '<li><b>상품상세컷</b> : 상품코드_색상코드_<b>D1</b>.jpg ~ 상품코드_색상코드_<b>D5</b>.jpg</li>';
-		str = str + '<li><b>상품소재컷</b> : 상품코드_색상코드_<b>S1</b>.jpg</li>';
-		str = str + '<li><b>상품라벨컷</b> : 상품코드_색상코드_<b>L1</b>.jpg, (상품코드_색상코드_<b>L2</b>.jpg)</li>';
+		str = str + '<em><b>* 입점 상품 이미지 파일명</b></em>';
+		str = str + '<li><b>상품메인컷</b> : 상품코드_<b>01</b>.jpg<em>(앞)</em>,상품코드_<b>02</b>.jpg<em>(뒤)</em></li>';
+		str = str + '<li><b>상품모델컷</b> : 상품코드_<b>C1</b>.jpg ~ 상품코드_<b>C5</b>.jpg</li>';
+		str = str + '<li><b>상품상세컷</b> : 상품코드_<b>D1</b>.jpg ~ 상품코드_<b>D20</b>.jpg</li>';
+		str = str + '<li><b>상품소재컷</b> : 상품코드_<b>F1</b>.jpg</li>';
+		str = str + '<li><b>상품라벨컷</b> : 상품코드_<b>L1</b>.jpg, (상품코드_<b>L2</b>.jpg)</li>';
 		str = str + '</ul>';
 		str = str + '</div></div></div></div>';
 

+ 13 - 7
src/main/webapp/WEB-INF/views/marketing/ReviewDetailForm.html

@@ -81,7 +81,7 @@
 										</a>
 									</th:block>
 								</div>
-								<div class="chk">
+								<div class="chk" th:if="*{reviewGb == 'P'}">
 									<i>동영상 노출 상태 설정</i>
 									<span class="switchBox switch-base">
 										<input type="checkbox" id="chkConfirmYn" value="Y" th:checked="*{confirmYn == 'Y' ? true : false}" th:disabled="*{confirmYn == 'Y' ? true : false}" onclick="fnUpdateVideoReviewDisplay(this);"><label for="chkConfirmYn"><span>Ball</span></label><!-- default: 영상 숨김 -->
@@ -263,13 +263,19 @@
 	// 상품 동영상 노출 처리
 	var fnUpdateVideoReviewDisplay = function(obj) {
 		if ($('#divPicList').find('iframe').length > 0 && $(obj).is(':checked')) {
-			var actionUrl = '/marketing/review/video/display/update/' + $('#reviewDetailForm input[name=reviewSq]').val();
-			$.post(actionUrl
-				, null
-				, function(result) {
-					$(obj).attr('disabled', true);
+			mcxDialog.confirm("동영상이 노출되며 즉시 포인트가 지급됩니다. 계속 진행하시겠습니까?", {
+				cancelBtnText: "취소",
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					var actionUrl = '/marketing/review/video/display/update/' + $('#reviewDetailForm input[name=reviewSq]').val();
+					$.post(actionUrl
+						, null
+						, function(result) {
+							$(obj).attr('disabled', true);
+						}
+						, 'json');
 				}
-				, 'json');
+			});
 		}
 	}
 	

+ 11 - 7
src/main/webapp/WEB-INF/views/marketing/ReviewForm.html

@@ -181,6 +181,17 @@
 		},
 		{headerName: "상품평 제목", field: "reviewTitle", width: 200, cellClass: 'text-center', hide: true},
 		{headerName: "상품평 내용", field: "reviewContent", width: 500, cellClass: 'text-center', hide: true},
+		{
+			headerName: "포인트지급", cellClass: 'text-center',
+			children: [
+				{headerName: "지급예정포인트", field: "giveDuePnt", width: 120, cellClass: 'text-center'},
+				{
+					headerName: "포인트지급상태", field: "pntGiveStat", width: 120, cellClass: 'text-center',
+					cellEditorParams: { values: gagaAgGrid.extractValues(pntGiveStatList) },
+					valueFormatter: function (params) { return gagaAgGrid.lookupValue(pntGiveStatList, params.value); }
+				}
+			]
+		},
 		{
 			headerName: "베스트", cellClass: 'text-center',
 			children: [
@@ -206,13 +217,6 @@
 			cellRenderer: function(params) { return params.value == 'N' ? '미노출' : '노출'; }
 		},
 		{headerName: "삭제여부", field: "delYn", width: 90, cellClass: 'text-center', hide: true},
-		{
-			headerName: "지급예정포인트", field: "giveDuePnt", width: 120, cellClass: 'text-center'},
-		{
-			headerName: "포인트지급상태", field: "pntGiveStat", width: 120, cellClass: 'text-center',
-			cellEditorParams: { values: gagaAgGrid.extractValues(pntGiveStatList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(pntGiveStatList, params.value); }
-		},
 		{
 			headerName: "확인", cellClass: 'text-center',
 			children: [