Просмотр исходного кода

Merge remote-tracking branch 'origin/bin2107' into card007

# Conflicts:
#	src/main/resources/config/application-tsit.yml
card007 5 лет назад
Родитель
Сommit
c9fdb0ab6a

+ 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);
 	}
 

+ 0 - 2
src/main/java/com/style24/admin/biz/web/TsaDisplayController.java

@@ -870,8 +870,6 @@ public class TsaDisplayController extends TsaBaseController {
 	 */
 	@GetMapping("/lookbook/banner/picker/popup/form")
 	public ModelAndView lookbookBannerPickerForm(@RequestParam(value = "lookbookbSq") Integer lookbookbSq, @RequestParam(value = "imgNm") String imgNm) {
-		log.info("lookbookbSq>>{}",lookbookbSq);
-		log.info("imgNm>>{}",imgNm);
 		ModelAndView mav = new ModelAndView();
 		mav.addObject("lookbookbSq", lookbookbSq);
 		mav.addObject("imgNm", imgNm);

+ 2 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsaCustomer.xml

@@ -214,8 +214,8 @@
 		    , MK_AGREE_DT = NOW()
 		    , MK_AGREE_YN = #{mkAgreeYn}
 		    </if>
-		    <if test="homeZipcode != null and homeZipcode != ''">
-		    , HOME_ZIPCODE = #{homeZipcode}
+		    <if test="encodedHomeZipcode != null and encodedHomeZipcode != ''">
+		    , HOME_ZIPCODE = #{encodedHomeZipcode}
 		    </if>
 		    <if test="encodedHomeBaseAddr != null and encodedHomeBaseAddr != ''">
 		    , HOME_BASE_ADDR = #{encodedHomeBaseAddr}

+ 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 - 2
src/main/resources/config/application-tsit.yml

@@ -23,8 +23,7 @@ domain:
     image: //ts5000.ipdisk.co.kr:8999
 #    cdnimage: //tdimage.style24.com
     cdnimage: //ts5000.ipdisk.co.kr:8999
-#    uximage: //tdimage.style24.com
-    uximage: //ts5000.ipdisk.co.kr:8999
+    uximage: //tdadmin.style24.com
 
 upload:
     dext.target.path: /TSIT/servers/files/data/style24/dext

+ 110 - 16
src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html

@@ -9,6 +9,7 @@
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
+
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  =============================================
  * 1.0  2021.2.23    bin2107     최초 작성
@@ -64,6 +65,7 @@
 		gagajf.ajaxJsonSubmit('/display/contents/preview/list', jsonData, fnCreatePopLayout);
 	}
 
+	// 데이터 뿌리기
 	var createIdx = 0;
 	var fnCreatePopLayout = function(result) {
 		var html = '';
@@ -100,19 +102,23 @@
 			html += '</td>';
 			if(contentsLoc!='SCM002' && contentsLoc!='SCM003'){
 				html += '<td class="aL">';
-				if(contentsLoc!='SMM005'  && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012'){
+				if(contentsLoc!='SMM005'  && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012' && contentsLoc!='SMM001' && contentsLoc!='SOM001' && contentsLoc!='SMM003' && contentsLoc!='SMM004'  && contentsLoc!='SMM006'
+						&& contentsLoc!='SBM007' && contentsLoc!='SBM008' && contentsLoc!='SBM009' && contentsLoc!='SBM010' && contentsLoc!='SBM011' && contentsLoc!='SBM013' && contentsLoc!='SBM017' && contentsLoc!='SBM018' && contentsLoc!='SBM019'
+						&& contentsLoc!='SOM003' && contentsLoc!='SOM004'  && contentsLoc!='SCM004' && contentsLoc!='SBM004'){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddTitlePopRow(this);">타이틀추가</button>';
 				}
-				if(contentsLoc=='SMM001' || contentsLoc=='SMM002' || contentsLoc=='SBM004' || contentsLoc=='SBMM004' || contentsLoc=='SCM001' || contentsLoc=='SOM001'){
+				if(contentsLoc=='SMM002' || contentsLoc=='SBMM004' || contentsLoc=='SCM001'){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddSubTextPopRow(this);">서브텍스트추가</button>';
 				}
 				if(contentsLoc=='SBM005' || contentsLoc=='SBMM005'){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddBrandDescRow(this);">브랜드소개추가</button>';
 				}
-				if(contentsLoc!='SMM005' && contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001' && contentsLoc!='SGNB002'  && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012'){
+				if(contentsLoc!='SMM005' && contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001' && contentsLoc!='SGNB002'  && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012' && contentsLoc!='SMM001' && contentsLoc!='SOM001' && contentsLoc!='SMM003' && contentsLoc!='SMM004' && contentsLoc!='SMM006'
+					&& contentsLoc!='SBM007' && contentsLoc!='SBM008' && contentsLoc!='SBM009' && contentsLoc!='SBM010' && contentsLoc!='SBM011' && contentsLoc!='SBM013' && contentsLoc!='SBM017' && contentsLoc!='SBM018' && contentsLoc!='SBM019' && contentsLoc!='SOM003' && contentsLoc!='SOM004'  && contentsLoc!='SCM004' && contentsLoc!='SBM004'){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddImgPopRow(this);">이미지추가</button>';
 				}
-				if(contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012'){
+				if(contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012' && contentsLoc!='SMM001' && contentsLoc!='SOM001' && contentsLoc!='SMM003' && contentsLoc!='SMM006'  && contentsLoc!='SCM004' && contentsLoc!='SBM004'
+						&& contentsLoc!='SBM007' && contentsLoc!='SBM008' && contentsLoc!='SBM009' && contentsLoc!='SBM010' && contentsLoc!='SBM011' && contentsLoc!='SBM013' && contentsLoc!='SBM017' && contentsLoc!='SBM018' && contentsLoc!='SBM019' && contentsLoc!='SOM003' && contentsLoc!='SOM004' ){
 					html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddLinkPopRow(this);">링크추가</button>';
 				}
 				html += '<button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteContentsRow(this);">삭제</button></td>';
@@ -387,7 +393,7 @@
 					}
 					if(contentsLoc!='SGNB001'){
 						if(imgPath!=null && imgPath!='null' && imgPath!='' ){
-							html += fnAddImgPopRow(imgPath);
+							html += fnAddImgPopRow(imgPath, j);
 						}
 					}
 					if(strVar!=null && strVar!='null' && strVar!='' ){
@@ -550,20 +556,43 @@
 		html += '<input name="dispOrd" type="text" class="w80"placeholder="전시순서" style="margin-left:5px; text-align:center"/>';
 		html += '</td>';
 		html += '<td class="aL">';
-		if(contentsLoc!='SCM002' && contentsLoc!='SCM003' && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012'){
+		if(contentsLoc!='SCM002' && contentsLoc!='SCM003' && contentsLoc!='SMM011' && contentsLoc!='SBM012' && contentsLoc!='SBMM012' && contentsLoc!='SMM003' && contentsLoc!='SMM004' && contentsLoc!='SMM006'
+				&& contentsLoc!='SBM007' && contentsLoc!='SBM008' && contentsLoc!='SBM009' && contentsLoc!='SBM010' && contentsLoc!='SBM011' && contentsLoc!='SBM013' && contentsLoc!='SBM017' && contentsLoc!='SBM018' && contentsLoc!='SBM019'
+				&& contentsLoc!='SOM003' && contentsLoc!='SOM004'  && contentsLoc!='SCM004' ){
 			if(contentsLoc!='SMM005'){
-				html += '<button type="button" class="btn btn-base btn-lg" id="addTitle'+dataIdx+'" onclick="fnAddTitlePopRow(this);">타이틀추가</button>';
+				html += '<button type="button" class="btn btn-base btn-lg"';
+				if(contentsLoc=='SMM001' || contentsLoc=='SOM001' || contentsLoc=='SBM004'){
+					html += ' style="display:none;" ';
+				}
+				html+= ' id="addTitle'+dataIdx+'" onclick="fnAddTitlePopRow(this);">타이틀추가</button>';
 			}
 			if(contentsLoc=='SMM001' || contentsLoc=='SMM002' || contentsLoc=='SBM004' || contentsLoc=='SBMM004' || contentsLoc=='SCM001' || contentsLoc=='SOM001'){
-				html += '<button type="button" class="btn btn-base btn-lg" id="addSubText'+dataIdx+'" onclick="fnAddSubTextPopRow(this);">서브텍스트추가</button>';
+				html += '<button type="button" class="btn btn-base btn-lg"';
+				if(contentsLoc=='SMM001' || contentsLoc=='SOM001'|| contentsLoc=='SBM004'){
+					html += ' style="display:none;" ';
+				}
+				html += ' id="addSubText'+dataIdx+'" ';
+				if(contentsLoc=='SBM004'){
+					html += ' style="display:none;" ';
+				}
+				html += ' onclick="fnAddSubTextPopRow(this);">서브텍스트추가</button>';
 			}
 			if(contentsLoc=='SBM005' || contentsLoc=='SBMM005'){
 				html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddBrandDescRow(this);">브랜드소개추가</button>';
 			}
 			if(contentsLoc!='SBM005' && contentsLoc!='SBMM005' && contentsLoc!='SGNB001') {
-				html += '<button type="button" class="btn btn-base btn-lg" id="addImg'+dataIdx+'" onclick="fnAddImgPopRow(this);">이미지추가</button>';
+				html += '<button type="button" class="btn btn-base btn-lg"';
+				if(contentsLoc=='SMM001' || contentsLoc=='SOM001' || contentsLoc=='SBM004'){
+					html += ' style="display:none;" ';
+				}
+				html += ' id="addImg'+dataIdx+'" onclick="fnAddImgPopRow(this);">이미지추가</button>';
+			}
+			if(contentsLoc=='SMM001' || contentsLoc=='SOM001' || contentsLoc=='SBM004'){
+				html += '<button type="button" style="display: none;" class="btn btn-base btn-lg" id="addMobImg'+dataIdx+'" onclick="fnAddMobImgPopRow(this);">모바일이미지추가</button>';
 			}
+			if(contentsLoc!='SMM001' && contentsLoc!='SOM001' && contentsLoc!='SBM004'){
 				html += '<button type="button" class="btn btn-base btn-lg" id="addLink'+dataIdx+'" onclick="fnAddLinkPopRow(this);">링크추가</button>';
+			}
 		}
 		html += '<button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteContentsRow(this);">삭제</button></td>';
 		html += '</tr>';
@@ -733,11 +762,12 @@
 			changeYear: true,
 			defaultDate: $('.schDate').val()
 		});
-		if(contentsLoc=='SMM001' || contentsLoc=='SOM001'){
+		if(contentsLoc=='SMM001' || contentsLoc=='SOM001' || contentsLoc=='SBM004'){
 			$("#addTitle"+dataIdx).click();
 			$("#addSubText"+dataIdx).click();
 			$("#addLink"+dataIdx).click();
 			$("#addImg"+dataIdx).click();
+			$("#addMobImg"+dataIdx).click();
 		}
 
 		if(contentsLoc=='SGNB001'){
@@ -1088,7 +1118,9 @@
 		var html = '<tr name="linkPopRow">';
 		html += '<th>링크 (없으면 #)</th>';
 		html += '<td><input name="link" type="text" maxlength="200" required="required" data-valid-name="링크" value="'+val+'"/></td>';
-		html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		if(contentsLoc!='SMM001' && contentsLoc!='SOM001'){
+			html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		}
 		html += '</tr>';
 		if(typeof param == 'object'){
 			if(contentsLoc=='SMM005'){
@@ -1117,7 +1149,9 @@
 		var html = '<tr name="subTextPopRow">'
 		html += '<th>서브텍스트</th>';
 		html += '<td><input type="text" name="subText" maxlength="200" value="'+val+'"/></td>';
-		html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		if(contentsLoc!='SMM001' && contentsLoc!='SOM001'){
+			html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		}
 		html += '</tr>';
 		if(typeof param == 'object'){
 			if($(param).closest("table").find("tbody").find("tr[name=subTextPopRow]").length>3){
@@ -1155,7 +1189,7 @@
 	 * 이미지 추가
 	 */
 	var imgIndex = 0;
-	var fnAddImgPopRow = function (param){
+	var fnAddImgPopRow = function (param, idx){
 		var src = '';
 		var imgPath = '';
 		if(typeof param!='object'){
@@ -1163,7 +1197,11 @@
 			imgPath = param;
 		}
 		var html = '<tr name="imgPopRow">';
-		html += '<th>이미지';
+		if(idx>1){
+			html += '<th>모바일용 이미지';
+		}else{
+			html += '<th>이미지';
+		}
 		html += '</th>';
 		html += '<td><div class="uFile w300">';
 		html += '<input id="filePop_'+imgIndex+'" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, '+imgIndex+')"/>';
@@ -1179,7 +1217,61 @@
 		}
 		html += '<img id="bannerPreViewUrlPop_'+imgIndex+'" src="'+src+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src\'));"/>';
 		html += '</div></td>';
-		html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		if(contentsLoc!='SMM001' && contentsLoc!='SOM001'){
+			html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		}
+		html += '</tr>';
+		if(typeof param == 'object'){
+			if(contentsLoc=='SMM005'){
+				if($(param).closest("table").find("tbody").find("tr[name=imgPopRow]").length>1){
+					mcxDialog.alert("이미지는 최대 2개까지 등록 가능합니다");
+					return;
+				}
+			}else{
+				if($(param).closest("table").find("tbody").find("tr[name=imgPopRow]").length>3){
+					mcxDialog.alert("이미지는 4개까지 등록 가능합니다");
+					return;
+				}
+			}
+			imgIndex++;
+			$(param).closest("table").find("tbody").append(html);
+		}else{
+			imgIndex++;
+			return html;
+		}
+	}
+
+	/**
+	 * 모바일용 이미지 추가
+	 */
+	var imgMobIndex = 0;
+	var fnAddMobImgPopRow = function (param){
+		var src = '';
+		var imgPath = '';
+		if(typeof param!='object'){
+			src = $("#uploadDefaultUrlPop").val().replace('/contents/', '')+param;
+			imgPath = param;
+		}
+		var html = '<tr name="imgPopRow">';
+		html += '<th>모바일용 이미지';
+		html += '</th>';
+		html += '<td><div class="uFile w300">';
+		html += '<input id="filePop_'+imgMobIndex+'" name="file" type="file" class="uFileInput w300" onchange="fnPopFileUpload(this, '+imgMobIndex+')"/>';
+		html += '<label for="filePop_'+imgMobIndex+'" class="uFileLabel">파일선택</label>';
+		html += '<input type="hidden" name="imgPath" value="'+imgPath+'"/>';
+		html += '<input type="hidden" name="newImgFile" value="" />';
+		html += '</div>';
+		html += '<div id="imgViewPop_'+imgMobIndex+'" class=';
+		if(src!=''){
+			html += '"on">';
+		}else{
+			html += '"off">';
+		}
+		html += '<img id="bannerPreViewUrlPop_'+imgMobIndex+'" src="'+src+'" style="height:100px; max-width:500px;"  onclick="cfnOpenImagePreViewPopup(\'bannerPreimgViewPop\',$(this).attr(\'src\'));"/>';
+		html += '</div></td>';
+		if(contentsLoc!='SMM001' && contentsLoc!='SOM001'){
+			html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		}
 		html += '</tr>';
 		if(typeof param == 'object'){
 			if(contentsLoc=='SMM005'){
@@ -1209,7 +1301,9 @@
 		var html = '<tr name="titlePopRow">';
 		html += '<th>타이틀</th>';
 		html += '<td><input name="title" type="text" maxlength="200" data-valid-name="타이틀" value="'+val+'"/></td>';
-		html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		if(contentsLoc!='SMM001' && contentsLoc!='SOM001'){
+			html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
+		}
 		html += '</tr>';
 		if(typeof param == 'object'){
 			if($(param).closest("table").find("tbody").find("tr[name=titlePopRow]").length>3){

+ 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: [